The idea and core concepts What is the platform? ArabGT Academy is a learning platform for any automotive course: mechanics, content creation, photography, EVs and more. Nothing is built around one course; courses are assembled from units and lessons of many kinds.
The whole team works in one workspace, /admin, and menus and data change with each role and its scope. Learners have their own area, with GTai, an assistant that answers only from the course's content.
Content is in Arabic and English and follows the language switch. This is a prototype: data lives in a local file, video comes from YouTube, and no real email is sent.
Who uses it? (demo personas) Learner learner@demo.agtYousef: a content-creation cohort, a finished course and a self-paced one Instructor suhaib@demo.agtSuhaib: only his courses and cohorts Teaching assistant noor@demo.agtNoor: her cohorts, grading and questions Super admin admin@demo.agtEvery screen Content manager content@demo.agtCourses, cohorts and applications Support support@demo.agtLearners, users and questions Accountant accounts@demo.agtPayments and reports only
Course status Draft → Published A course publishes after a checklist: title, price and lessons learners can see. Draft lessons never block publishing. A lesson's kind is fixed once created; to change it, delete the draft and add a new one. Cohort status Registration open → Upcoming → Running → Finished Each cohort owns its schedule. Postponing a lecture shifts later dates and notifies learners. Lectures are filmed as the cohort runs, so some units show as “to be filmed”. Application Draft → Submitted Accepted → pays Waitlisted Scholarship Rejected The waitlist runs oldest first. When a seat frees up the next one is accepted and then pays; the seat isn't held while they pay. Submission and review Submitted → Awaiting review → Released Accepted → lesson complete Resubmit An AI draft stays a draft; a person approves it before the learner sees it. The rubric freezes after the first review, so earlier grades don't shift. Certificate Required share done → Issued → Publicly verifiable Revoked (verifies as “revoked”) One certificate per learner per course, issued automatically at the share the course sets. Rules worth knowing Roles are data: built from sections and actions, plus the instructor's and TA's scope (their cohorts and courses). A lesson opens by rule: at once, on a date, days after enrolling, or after the previous one. A locked lesson says why and when. Every AI feature has a switch, globally and per course, and every model call is logged. Nothing AI-made reaches learners without a person, except GTai's answers from the course content. Every admin write is recorded in the audit log automatically. A learner's work appears in the gallery only with their consent; withdrawing it hides the work at once. Prices, payment and refunds Each course has its own price in US dollars, and a cohort may have its own. Coupons, bundles, offers and company seats come on top. Cohort courses go through an application: learners pay once accepted. Self-paced courses are bought directly. Refunds are allowed within a window set in settings (7 days in the demo data), and access to the course ends on refund. End-to-end journeys A course from start to finish 1 Admin Admin creates the course and picks its category, which brings its custom fields 2 Instructor The instructor builds units and lessons, and fills the question bank (with AI drafts they review) 3 Admin Admin publishes after the checklist and opens a cohort with dates and seats 4 Learner The learner applies, then pays once accepted 5 Automatic Lessons open on the cohort's schedule, with reminders before lectures 6 Learner The learner studies, asks GTai and hands in assignments 7 Instructor The instructor or TA grades and releases the review to the learner 8 Automatic The certificate issues at the required share, and the top learners are ranked for the ArabGT opportunity Buying a self-paced course 1 Visitor A visitor browses the catalog and watches a free lesson signed out 2 Learner They sign up and pay (with a coupon if they have one) 3 Automatic A welcome page and email, and the course appears in My learning 4 Learner They can ask for a refund within the window from Purchases 5 Admin Admin handles the refund; access ends and it's logged Postponing a lecture 1 Instructor The instructor postpones a lecture from the cohort's schedule, with a reason 2 Automatic Later dates move with it, and the change is logged 3 Automatic Learners of that cohort only get a notice and an email 4 Learner The learner sees the new date in their schedule and course home An assignment from hand-in to grade 1 Learner The learner hands in (text, link, file or video) with an optional note 2 Automatic It joins the grading queue of the staff whose scope covers it 3 TA The TA grades against the rubric, with an AI draft when switched on 4 Instructor The instructor releases the grade or asks for a resubmission 5 Automatic The learner is notified, and the lesson completes when accepted Before you start: the demo tools Sign in The sign-in page has quick buttons: learner, instructor, teaching assistant and admin. Other accounts sign in with their email and the password demo1234, e.g. content@demo.agt. You can also create a new account from Sign up. Try it: Sign in with the Learner button, then open My learning.
Reset the demo data Press Reset demo data at the bottom of the sign-in page to put everything back to the start, with today's dates: courses, orders, submissions and every change you made. It asks first, then signs you out. npm run reset does the same from the terminal. Run it too after pulling an update, so its new demo data shows. Language and theme The language (ع / EN) and theme (light / dark) switches sit at the top of every page. Content follows the chosen language, and every course is written in both. Visitor A visitor is not signed in. They browse courses, coaches and the gallery, watch free lessons and can check any certificate.
1 Home pageOpens with a course search, then the six fields, the courses and the ways to learn. Upcoming cohorts show their start date and seats left, worked out on every visit. Learner stories come next, then the work gallery with a selection of learners' projects, then the team and the FAQ. Each coach in the team section links to their profile, with "All coaches" below it; the footer links the coaches and the gallery too. Admins edit every section from homepage management, with no code changes. Try it: Type “photo” in the search box and press Enter.
Open the page ↗ 2 Catalogue and filtersFilter by field, type, level and price, with a text search. Each field adds its own filters once you pick it. Filters live in the page link, so a search can be shared as it is. Cards show type, price and lessons, plus start date and seats left for cohorts. Try it: Pick “Level: Beginner” and watch the link change.
Open the page ↗ 3 A self-paced course pageHours per week, length, lessons, price and refund policy at a glance. The curriculum says how lessons open: all from day one, or unit by unit. The free lesson is tagged "Free" in the curriculum with a "Watch now" link, and "Watch a free lesson" sits under the enrol button. When the course has an open company deal, "Join through your company" takes the company code; the invite link opens it with the code filled in. The coach card on the side opens their profile. Reviews come from real learners who finished at least half the course. Self-paced courses can be refunded within 7 days of payment. Try it: Open the first lesson in the curriculum: it is a free preview.
Open the page ↗ 4 A cohort course pageShows the cohort number, start date, apply-by date and seats left. Applying is free, you pay only if accepted, and refunds are full before the start. “How to apply” lists the steps; a new unit opens every week for the cohort. The cohort prize shows when the course has a final project. Try it: Press “Apply to the cohort” to see that applying asks you to sign in.
Open the page ↗ 5 A free lesson, signed outA lesson marked “Free preview” plays for anyone, with no account. A banner says that enrolling keeps progress and notes and opens the other lessons. Other lessons show as locked, with a link to the course page. Visitors see the lesson files only; notes and questions are for enrolled learners. Try it: Click a locked lesson in the curriculum to see where it takes you.
Open the page ↗ 6 CoachesEach coach shows a photo, a short headline and their number of courses. It also counts their learners' pieces in the gallery, if any. A coach's page gathers their courses and their learners' work. Try it: Open one coach's page.
Open the page ↗ 7 Academy galleryCoaches pick the pieces from cohort work, so the gallery is curated, not every submission. Work appears only with its maker's consent, and disappears as soon as they withdraw it. Filter by course, then by cohort. Try it: Pick the car content creation course, then open a piece.
Open the page ↗ 8 Certificate verificationPublic: anyone checks a certificate by link or code, with no account. It shows only the holder's name, the course and the issue date. A revoked certificate shows “Revoked certificate” and its date; it is never deleted. “Check another code” verifies a new code on the spot. Try it: Change one character of the code and press “Verify”.
Open the page ↗ 9 Sign in and sign upOne account for ArabGT and the Academy, with email and password. “Demo sign-in” buttons open the platform as learner, instructor, TA or admin in one click. Signing in returns you to the page you asked for. The sign-up link sits below the form and asks you to accept the terms. Try it: Press “Learner” under “Demo sign-in”.
Open the page ↗ Learner Yousef is in a car content creation cohort, finished the reels editing course and is working through thumbnail design. He sees his lessons, assignments, schedule and certificates.
1 Dashboard“Pick up where you left off” comes first, with the minute he stopped at. “This week” lists the current unit's lessons, its assignment and the next live session. “Next lesson” counts down to when it opens. Shows the coach's latest note and progress in each course. Try it: Press “Continue lesson” to go back to the same minute.
Open the page ↗ 2 My learningAll his courses in one place: cohort courses by cohort number, the rest as self-paced. The progress strip has one segment per lesson, so done and left read at a glance. A finished course is tagged “Completed” with a “Review course” button. Try it: Open the completed reels editing course.
Open the page ↗ 3 Course homeShows overall progress, the next lesson and a link to the cohort schedule. Each unit has a meter, and each lesson its state: done, open, or locked with its opening date. Course attachments sit on the side; unit attachments sit under that unit's lessons. The side also holds course announcements and the teaching team. Try it: Open the “Reel script template” in unit 2's attachments.
Open the page ↗ 4 Lesson playerThe video resumes where the learner stopped. “Lesson parts” split the video; clicking one jumps to its moment. A new note is tied to the current moment, and its time jumps back to it. The lesson bar states its completion rule, e.g. complete when you mark it. Try it: Click “The three-shot rule” in the lesson parts.
Open the page ↗ 5 Lesson attachmentsThe “Attachments” tab lists the lesson's files and links, then the unit's. The lesson transcript can be downloaded as a text file from the same tab. Tabs are links, so a page link can open a given tab directly. Try it: Open the “Transcript” tab and click any timed line.
Open the page ↗ 6 Questions for the coachA question goes to the teaching team's inbox and stays tied to the lesson. The coach's reply shows under the question, or “Waiting for a reply”. A notification arrives with the reply, so there is no need to keep checking. Questions about your own work or grades go to the coach; content questions suit GTai. Try it: Write a question and press “Send to coach”.
Open the page ↗ 7 A locked lessonLessons unlock by rule: on a date, a set time after enrolling, or after the previous lesson. The lock says why the lesson is locked and when it opens, in the cohort's time zone. Locked lessons stay visible in the curriculum, so learners know what is coming. GTai does not know a lesson's content before it opens. Try it: Press “Back to your current lesson”.
Open the page ↗ 8 The GTai assistantGTai answers from this course's content only, and politely declines anything outside it. Answers carry “Watch from” links to the moment in the video. GTai never writes the assignment for the learner and gives no official grades. Suggestions to start: a summary, a simpler explanation, an example, a practice quiz. Try it: Press “Summarize this lesson”.
Open the page ↗ 9 GTai historyEvery GTai conversation is kept, with the course and lesson it started in. Each shows the last answer, when it was, and the message count. Any conversation can be opened and continued. Try it: Open the “three-shot rule” conversation.
Open the page ↗ 10 My assignmentsGrouped into To submit, Waiting for feedback and Done. Time left shows, turns amber three days out, and late work is marked “Late”. An assignment appears once its unit opens, with the learner's own cohort date. Work sent back carries a “Resubmission requested” tag. Try it: Open “The reel script”.
Open the page ↗ 11 Submitting, with a GTai checkSteps show the path: answer, GTai check, send, coach feedback. The brief, the rubric and the attempts left show before you write. GTai compares the answer with the rubric and suggests fixes, with no grade and no ghost-writing. Publishing consent is optional; it only matters if the work is featured. Try it: Write a few lines and press “Check with GTai”.
Open the page ↗ 12 Coach feedback and resubmissionFeedback shows once the coach releases it: a score out of 10, per-criterion scores and a comment. Accepted work closes; a requested resubmission opens “Send a new version”, past any attempt cap. Every version is kept with its feedback, and any earlier one can be shown. Try it: Scroll to “Your versions” and show version 1.
Open the page ↗ 13 My scheduleEach cohort has its own schedule; learners see their cohort's dates, not another's. Lectures, deadlines and live sessions together, in the cohort's time zone. A postponement moves later dates too, shows “Postponed” with the old date struck out, and notifies. “Add to my calendar” downloads an .ics file for Google, Apple or Outlook. Try it: Switch the calendar to the week view.
Open the page ↗ 14 NotificationsEach notice has a kind: review, deadline, reply, new lesson, schedule change and more. Clicking a notice opens its place in the platform and marks it read. Unread ones carry a dot; mark them one by one or all at once. In-app notices always arrive; email follows the learner's settings. Try it: Click the schedule change notice.
Open the page ↗ 15 CheckoutPay in full or in parts, with the date of each part. Offers and coupons don't stack: the larger discount wins, and the page says so. The order summary states the refund window before you pay. Payment is a test; card details are never stored. Try it: Choose “3 parts” and look at the dates.
Open the page ↗ 16 Welcome after paymentConfirms the enrolment and the invoice number. GTai asks two questions: the learner's goal and level. GTai lays out a week from the course's own lessons, day by day, without changing the coach's order: it decides how many lessons each day holds, where a practice day goes, when the assignment starts, and why each step matters for the learner's goal. With AI off, rules build the plan: beginners go slower with a practice day, people in the field go faster and start the assignment sooner. The plan is saved once. The learner can skip and go straight to the course. Try it: Pick a goal and a level, then press “Plan my week”.
Open the page ↗ 17 My purchasesEvery order with its invoice number, amount and status. The “Refund” column says until when a refund can be asked, or that it has closed. The header shows the number of orders and the total paid. Try it: Open the car content creation invoice.
Open the page ↗ 18 Invoice and refund requestThe invoice is ready to print or save as PDF. Refunds are open 7 days from payment and, for cohorts, only before the start. The team reviews each refund request and replies; its status shows here. Try it: Press print to see the invoice copy.
Open the page ↗ 19 Applying to a cohortThe application saves itself as a draft while you type, to finish later. It asks for up to 5 photos of your work, at any level. The side sums up start, length, price and seats, then what happens next. Applying is free; you pay after acceptance and follow the status on its own page. Try it: Type a line under “Why do you want to join” and watch “Saved automatically”.
Open the page ↗ 20 My certificatesA certificate is issued automatically once the course requirements are met. One certificate per learner per course, with a code that never changes. Each certificate carries a QR code beside the seal: scanning it opens this certificate's public verify page. “On the way to a certificate” shows progress against what ongoing courses require. Try it: Press “View and download” on the reels editing certificate.
Open the page ↗ 21 The certificate and sharing itThe full certificate shows; “Download PDF” saves it via the print dialog. The Share menu posts to LinkedIn, X, Facebook or WhatsApp, or copies the verify link. The verify link opens a public page that proves the certificate is genuine. Try it: Press “Copy verification link” and open it in a private window.
Open the page ↗ 22 The ArabGT opportunityEach cohort, the team picks its best learners to work with; the card describes the offer and how many are picked. The status sits inside the same card: Nominated, Shortlisted, Selected, plus the next step. Each criterion shows where the learner stands, with no numeric ranking. The final pick is made by the coach and the academy team. Open the page ↗ 23 My workEverything the learner submitted, with the score and the coach's comment. Picked pieces carry “In the gallery” and a link to it. The learner controls consent; withdrawing it hides their work from the gallery at once. Try it: Press “Withdraw consent”, then “Allow showing”.
Open the page ↗ 24 My profileShows name, country and join date, and an “ArabGT nominee” badge when nominated. Gathers reviewed work and certificates, each with its code and a public verify link. Open the page ↗ 25 SettingsSections: profile, language and theme, notifications, password, privacy and emails. A side index jumps to any section. A profile photo uploads as soon as you pick it, with no save button. The learner picks which notices also come by email, and sees the emails sent to them. Try it: Click “Privacy” in the side index.
Open the page ↗ 26 Account overviewQuick numbers: courses and completed, certificates, unread notices and total purchases. Links to purchases, settings, notifications, certificates, work and the opportunity. Recent orders sit at the bottom. Open the page ↗ Instructor The instructor works in the same /admin workspace but sees only their own courses and cohorts. They handle course content, grading, questions and learner follow-up.
1 OverviewThe page follows permissions: no sales numbers for an instructor, and "My cohorts" appears because they teach. "Needs attention" gathers what waits for them: lectures to film, overdue grading, unanswered questions and learners at risk. Each cohort shows progress, submission rate, how many are at risk, and the next lesson to unlock. "Reviews waiting for your approval" lists the TA's reviews; learners see them only after you approve. Try it: Press "Start grading" to open the oldest submission in the queue.
Open the page ↗ 2 My coursesOnly the courses they coach or teach a cohort of appear; the scope comes from their teaching, not a manual setting. There is no "New course" button; creating courses belongs to admin staff. Search and filter by status, type and category, then open a course to edit its content. Open the page ↗ 3 The course pageThe course is split into tabs: details, custom fields, curriculum, assignments, pricing, team and certificate. "Course page link" previews the address as you type, and it stays the same if the title changes. Course settings and publishing are saved by admin staff; the instructor works in the curriculum, assignments and lesson tools. The "Publish checklist" card shows what is missing, and each missing item links to where it is fixed. Try it: Open the Curriculum tab to see the units and lessons.
Open the page ↗ 4 Curriculum builderOrder units and lessons by drag and drop or the move buttons; the whole order is saved at once. "Add lesson" asks for the type first, from eleven kinds, each with a one-line hint. A lesson's kind is fixed once created; to change it, delete the draft and add a new one. "Missing content" flags incomplete lessons; attachments can be added to the course and to each unit. Try it: Press "+ Add lesson" in any unit to see the lesson kinds.
Open the page ↗ 5 Lesson editorThe editor follows the lesson kind: for video, a YouTube link in any form and chapters as minutes:seconds. "Rules" set when the lesson opens and how it completes; only the rules this kind can meet are offered. A lesson is published only once its content is complete, and only drafts can be deleted. The lesson has its own attachments, and "Preview as learner" shows it as a learner sees it. Open the page ↗ 6 Lesson toolsThe lesson is transcribed once and the text is saved; the assistant, questions and chapters all use it. Upload the video, an SRT or VTT caption file, or edit the text by hand. For a YouTube video, the transcript is not pulled in automatically yet: YouTube blocks it without the channel owner's sign-in. Download the caption file from YouTube Studio and upload it here. Pulling it in automatically is planned: by connecting the ArabGT channel account once, or from the protected video hosting at launch. Chapters, summary and self-check questions are suggested from the text; learners see only what you approve. "Lesson readiness" shows what is done: video, transcript, summary, questions and publishing. Try it: Press "Show the full text" to read the saved transcript.
Open the page ↗ 7 Preview as learnerShows the course home as a learner who just enrolled sees it, with zero progress and locked lessons. Drafts are listed for staff only, and a locked lesson still opens, with the lock reason above it. The banner at the top takes you back to the curriculum without leaving /admin. Open the page ↗ 8 An assignment and its rubricEach assignment has one answer type, a bilingual brief, a due date, a pass mark and resubmission rules. Each criterion is scored out of 10, and the weights add up to 100%. After the first review, criteria, weights and answer type freeze so earlier grades don't shift; wording stays editable. The assignment's AI switches turn the GTai pre-check and the grading draft on or off. Open the page ↗ 9 Question bankThe course's questions in one place, filtered by topic, type, level and status. Quizzes and exams draw their questions from the bank, and use approved questions only. The "AI question drafts" card writes from one lesson's text or from a whole unit. The drafts banner says how many wait for review and opens the review screen. Try it: Press "Review drafts".
Open the page ↗ 10 Review question draftsEvery draft on one screen with its answer shown, grouped by course and the lesson it came from. Each draft has Approve, Edit (which returns you here) or Reject (which removes the draft). AI drafts are only drafts; no learner sees a question until a person approves it. "Approve all" approves everything shown, once you have read it. Open the page ↗ 11 Quiz settingsA quiz or exam lesson sets its questions and settings in the "Questions and settings" card. Questions come as a fixed list or a random draw from the bank's approved questions, by topic and level. Set the time limit, attempts, pass mark and when answers are revealed; the quiz can't be published before its settings are saved. Essay and file questions go to the grading queue to be marked by hand. Open the page ↗ 12 CohortsOnly the cohorts the instructor teaches appear, with start date, seats, TA and status. Creating a new cohort belongs to admin staff. Open a cohort to see its schedule, learners and change log. Open the page ↗ 13 A cohort's scheduleEach cohort owns its schedule, so one cohort never follows another cohort's dates. The calendar shows month, week or list; a postponed item keeps its original date beside it. A lecture with no content is marked "to be filmed" and opens the lesson editor. Postponing and moving learners are saved by admin staff; the instructor extends one learner's deadline from the Learners tab. Try it: Open the Change log to see the postponement and its reason.
Open the page ↗ 14 To be filmedScheduled lectures whose content is not uploaded or published yet, soonest first. Lectures past their date come first, marked "Overdue". Cohort lectures are often filmed while the cohort runs, which is why drafts never block publishing. Open the page ↗ 15 Live sessionsUpcoming and past cohort sessions, with the meeting link, attendance rate and recording. A new session is added to the cohort's schedule and learners are notified. After a session, mark attendance and add the recording link. Dates change from the cohort schedule, so the change is logged and learners are notified. Open the page ↗ 16 Grading queueEvery submission in one place, split into To grade, Awaiting approval, Resubmission requested and Done. "Draft ready" means a grading draft was prepared in the background after the submission. Each submission has a grader: the cohort's TA by default, then the instructor, then the course coach. The "Quiz answers" tab holds essay and file answers from quizzes in the same queue. Try it: Open a submission marked "Draft ready".
Open the page ↗ 17 Grading a submissionThe learner's answer, its versions, the video's technical check, and whether they checked it with GTai first. The grading draft suggests scores and a note per criterion; "Use the draft in the form" only fills the form. The draft is staff-only; nothing reaches the learner until a person reviews and sends it. The weighted score updates live, and the outcome is suggested from the pass mark: accepted or resubmit. Open the page ↗ 18 Approving a TA's reviewA TA's review waits for the instructor's approval; the learner neither sees it nor is notified before then. The instructor can change scores and feedback before "Approve and send". Once sent, the record shows who graded it and who approved it. Open the page ↗ 19 Questions inboxLearner questions from your courses' lessons, with the lesson and the video minute they asked at. Tabs: Waiting, Assigned to me, Answered and Hidden. Assign a question to a colleague, reply to it, or hide it if it doesn't belong. Try it: Write a short reply to the oldest question and press "Send reply".
Open the page ↗ 20 Learners at riskOnly learners in your courses and cohorts appear here. Three reasons to follow up: inactive for some days, behind the schedule, or a missed assignment. Filter by how long they've been inactive, and open a profile for the details. Open the page ↗ 21 A learner's profileProgress by module, assignments and grades with a link to grading, and lesson questions. The instructor sees only the courses in their scope, and no payments. The instructor can nominate the learner to the talent team with a short note. Account actions such as manual enrolment and revoking access belong to support and admin staff. Open the page ↗ 22 CertificatesA certificate is issued automatically once the learner completes the required share of lessons. One certificate per learner and course; a revoked one stays on record and verifies as "revoked". Manual issuing and revoking need publish permission on courses, held by staff such as the content manager. "Templates" set the certificate's design and text in both languages; each course picks its template. Open the page ↗ 23 The ArabGT opportunityThe system suggests a ranking from the chosen criteria, such as grades, deadlines and attendance. The cohort's own instructor makes the final pick, up to the cohort's number of places. Learners never see this ranking or their score; only the learner picked is notified. Try it: Press "Pick" beside a suggested learner and add a note for the team.
Open the page ↗ 24 GalleryThe latest reviewed version of each assignment, best first. A piece shows in the public gallery only if its maker consented. Picking and ordering work belongs to admin talent staff; the instructor sees their learners' work. Open the page ↗ Teaching assistant The TA works in the same workspace, but only in their own cohorts. They grade, answer questions and follow up learners, without editing courses.
1 The TA's overviewOnly the two cohorts they assist appear, with progress, submissions and learners at risk. The side menu is shorter: no courses, question bank or applications. Grading, questions and follow-up are the daily work. Open the page ↗ 2 Reviews awaiting approvalThe TA sees their cohorts' submissions, plus any explicitly assigned to them. A TA's review is not published directly; it waits here until the instructor approves it. The review can still be edited until it is approved. Open the page ↗ 3 Grading without final releaseThe same grading tools: rubric, draft and feedback for the learner. The button is "Send for approval" instead of "Send to the learner". Quiz essay answers graded by a TA count immediately. Try it: Press "Use the draft in the form", then check the scores before sending.
Open the page ↗ 4 Extending a learner's deadlineThe TA opens their cohorts and sees each learner's progress and extensions. An extension is a date for one learner, and applies when it is after the cohort's date. Moving a learner to another cohort and postponing dates belong to admin staff. Open the page ↗ 5 Cohort questionsQuestions from their own cohorts' learners only, from the course's lessons. The TA replies, assigns the question to the instructor, or hides it. "Assigned to me" collects what was handed to them. Open the page ↗ 6 Following up learnersLearners who are inactive, behind or missed an assignment, in their cohorts only. The profile is read-only for a TA: progress, grades and questions, with no account actions. Open the page ↗ Content manager The content manager runs courses, cohorts and applications across the academy. Grading is not part of the role by default; a super admin can add it on the roles screen.
1 New courseA new course starts as a draft, so learners can't see it until it is published. "Course page link" is optional: left empty, it is made from the English title, and the full address previews live. "Capstone project" makes the last assignment a final project that counts toward picking the top learners. "Certificate" issues a verifiable certificate automatically once the required share of lessons is done. Try it: Type an English title and watch the link change below it.
Open the page ↗ 2 Course status and the publish checklistThe content manager saves the course settings: details, pricing, team and certificate. The "Publish checklist" checks required fields, at least one unit and published lesson, and every published lesson complete. Draft lessons are counted and listed, but never block publishing. "Publish course" puts it in the catalog; "Unpublish" takes it out. Open the page ↗ 3 All cohortsThe content manager sees every course's cohorts, with instructor, TA, seats and apply-by date. "New cohort" sets the start, length, seats, lesson unlock day and the cohort's time zone. The cohort price and waitlist are set in the cohort's Details tab. Open the page ↗ 4 Postponing a datePick any upcoming lecture, deadline or live session, then choose the new date. The preview lists everything that moves: later items if you choose, and the unit's assignment always. If the schedule runs past the cohort's end, the cohort is extended automatically. Confirming notifies every learner in the cohort, and the change and its reason are logged. Try it: Choose a date two days later and check the preview before confirming.
Open the page ↗ 5 WaitlistThe drone cohort is full, with three applicants on the waitlist. The waitlist is the applications marked waitlisted, in the order they were added. When a seat frees up, "Give a seat" accepts the first in line, who then pays from their application page. The seat is not held while they pay. Open the page ↗ 6 Deciding an applicationThe applicant's answers and work, and whether they agreed to their work being published. The decision: accept, waitlist, scholarship or reject, and the learner is notified each time. An accepted learner pays from their application page; a scholarship enrols them at once. When the cohort is full, the application can't be accepted; waitlist it or add seats. Try it: Open Applications and filter by "To review".
Open the page ↗ Super admin: running the academy The super admin (admin@demo.agt) holds every permission. They see every admin section and run the team, settings, sales and AI.
1 OverviewIt opens with Needs action: applications to review, cohorts filling up, failed payments. Each item links straight to its page. Today shows sales, new enrolments and active learners in your scope. The page adapts to permissions: without sales access, the sales figure and chart are simply not there. Unscoped staff also see academy-wide recent activity and cohorts starting soon, with seats taken. Try it: Click 90 days under Trends to see sales and enrolments over a longer period.
Open the page ↗ 2 UsersOne list for every account: learners, instructors and staff, newest first. Search by name or email, filter by role, or show disabled accounts only. Each account shows its role by name from Roles & permissions, so custom roles appear here too. Try it: Pick Staff in the role filter to see team accounts only.
Open the page ↗ 3 User pageRana is a content manager scoped to one course. Scope sets which courses and cohorts she sees on every page. An empty scope means every course. Lists, details and pickers follow it, and actions check it again. Nobody changes their own role, disables their own account, or gives a role with permissions they lack. Create new password stops the old one at once; the temporary one is shown only once. Try it: Open the Role menu and see which roles you can assign.
Open the page ↗ 4 New userName, email and role only. Learner comes first, as the usual case. The role list shows only the roles you may hand out. A temporary password is created and shown once. Copy it and send it to the user. Open the page ↗ 5 Roles & permissionsRoles are data, not code. Team roles lists each role, where it works and how many hold it. Locked built-in roles, such as super admin and instructor, re-sync from code whenever the data loads. Learner accounts sit apart in their own card: the learner role needs no permissions, so there is nothing to manage. Add role builds a custom team role from sections and actions. Try it: Click Add role to see the empty permission matrix.
Open the page ↗ 6 Role editorOne matrix: sections in rows, actions in columns: view, create, edit, publish, delete. Every page and server action checks the permission. Hiding a button is not the protection. You cannot grant or remove a permission you don't hold. Every admin role gets the overview automatically. A role assigned to users cannot be deleted, and locked roles are view only. Open the page ↗ 7 SettingsCategories group the courses. Each has an Arabic and English name and a count of custom fields. A category used by courses cannot be removed; it shows how many courses use it instead. Terms and refunds sets the terms text, the refund period in days and the support email, shown at checkout. Try it: Click Manage category next to Content creation.
Open the page ↗ 8 A category and its custom fieldsCustom fields appear in the Custom fields tab of every course in this category. Ten types, from short text to image and link. Each field can be required, on the course page, or a catalogue filter. A field's key is fixed once added, and a field with values cannot change type. Deleting a field removes its values for good, and warns you how many courses are affected. Open the page ↗ 9 HomepageThe public page's sections are data, so a new section slots into the list without touching the page. Reorder or hide sections. The hero stays at the top and the footer at the bottom. The “Not shown: no content” badge flags an empty section visitors won't see. What you save goes into a draft. Publishing needs its own permission, and changes can be discarded. Try it: Click Edit next to Hero.
Open the page ↗ 10 Editing a part: HeroEach part has an editor built from its schema: Arabic and English fields, and image pickers with previews. The hero sets both headline lines, the intro line, the photo and the search box text. Invalid input keeps the form and marks the fields to fix. Open the page ↗ 11 Draft previewThe public page as it will look once published, rendered from the draft. The top bar says whether unpublished changes exist, with a link to the other language. Visitors see nothing of the draft until someone with the right clicks Publish changes. Open the page ↗ 12 AI centreOne switch per feature for the whole platform: the assistant, pre-submission review, question and grading drafts, and more. "First-week plan" is a learner feature: after buying, GTai lays out the course's first lessons day by day for the learner's goal and level, without changing the coach's order. Switched off, rules build the plan. Every feature goes through one gateway that applies the switches and logs each model call. With no API key a banner shows, the platform still works, and each AI feature says it's unavailable. The assistant's fixed limits always apply: it answers from course content only and never grades. Try it: Switch the assistant name between GTai and Milla, then save.
Open the page ↗ 13 AI in one courseAny feature can be switched off for one course. Here course description drafts are off for Mechanics for beginners. A feature can't be on for a course while it's off for the whole platform. Course instructions set the assistant's tone and what to avoid. Learners never see them. What the assistant reads counts the published lessons, transcripts and files it answers from. Open the page ↗ 14 Usage and costEvery request is recorded: calls, failures, input and output tokens, and cache reads. The cost is an estimate at the list prices shown below, not an invoice. Broken down by feature, by course and per day, over 7, 30 or 90 days. Open the page ↗ 15 Assistant log: one conversationThe assistant log gathers learners' conversations to review answer quality, filtered by course or flagged replies. Each reply shows its source: AI answer, from the transcript, or out of scope. Here a learner asked about a camera price; the reply is flagged, with who flagged it and when. Try it: Click Flag for review on another reply.
Open the page ↗ 16 AnnouncementsEach announcement goes to everyone, a course or a cohort, with how many it reached, who posted it and when. Filter by audience or course. Editing the text later sends no new notification. Deleting removes it from course pages; notifications already sent stay. Open the page ↗ 17 New announcementEvery active learner in the audience gets it: an in-app notification and a logged email through the Announcement template. Choose the audience and the form shows how many learners it will reach before you post. The Arabic title and text are required; English is optional. Open the page ↗ 18 Notification templatesSix templates drive the real notices and emails: welcome, reminder, postponement, submission accepted, certificate, announcement. Send reminders for the next 24 hours reminds cohorts of what's coming, never sending the same one twice. No real email is sent in this prototype; each one is recorded in the email log. Try it: Click Edit next to Welcome.
Open the page ↗ 19 Editing a templateThe in-app text, email subject and email body, in Arabic and English, with a live preview. Click a variable, such as the learner's name, to insert it. Unknown variables are refused on save. Switching a template off stops both the notice and the email for that event. Send a test to me sends the saved version to you; Reset to default restores the original wording. Open the page ↗ 20 Email logEvery logged email: date, recipient, template and subject. Search by recipient name or email, or filter by template. An email isn't logged when the learner switched that kind of email off. Open the page ↗ 21 OrdersEach order with its invoice number, learner, purchase, amount and status: paid, refunded or failed. Paid, refunded and net at the top follow the search and filters. Orders with a refund request carry a tag; tabs lead to coupons, bundles, offers and company seats. Try it: Search for an invoice number such as AGT-2026-00075.
Open the page ↗ 22 Order detailsThe order lines, price, discount and the coupon or offer applied, then the total. A refund request from the learner: approve and refund, or decline with a reason the learner sees. A refund returns the full amount and notifies the learner, and can also remove their course access. The refund window shows its end date, taken from the refund period in Settings. Open the page ↗ 23 InvoiceA printable invoice for every completed order, here for a two-course bundle. Invoice numbers run in order of payment date. Payments are test payments; the invoice is not a tax document, and shows the support email. Open the page ↗ 24 Refund requestsRequests learners sent within the refund window, oldest first. The learner's reason shows in the list; open the order from there to decide. The pending count shows on the tab across every Sales page. Open the page ↗ 25 Coupons and offersDiscount codes, percent or fixed, for one course or all, with a usage limit and an end date. A coupon used in orders can't be deleted or recoded; pause it instead. Offers, in the next tab, apply a dated discount automatically. Discounts don't stack: the larger one wins. Open the page ↗ 26 BundlesPrices are per course; a bundle sells several courses together for one price below their total. A bundle holds published self-paced courses with a price, two at least. Each bundle shows its saving, sales count and whether it's published. Open the page ↗ 27 Company seatsA company buys seats; its staff join with the company code on the course page. The join code is created on save, with the list of people who joined below it. The invite link opens the course page with the code filled in; an employee signs in or signs up and comes straight back. It works for any course, not only invite-only ones. "Add employees by email": one person per line, the name optional. Existing learners are enrolled at once; new emails get an account with a one-time password shown once. Staff accounts are never enrolled through a deal. Seats can't drop below those who joined, and a deal with members can't be deleted. Open the page ↗ 28 Revenue reportsNet revenue, paid, refunded, orders and average order, for 30 days, 90 days, 12 months or all time. Monthly revenue, then the split by course and by country. Company deals are shown apart from card sales. Try it: Click Export CSV to download the chosen period.
Open the page ↗ 29 Learning reportsEnrolments, active learners, completion, average grade, certificates and grading turnaround. A table by course and one by cohort, with the learners at risk in each. Figures follow your scope. Revenue lives in Sales reports, for those allowed to see it. Try it: Choose a course and Last 12 months, then click Export CSV.
Open the page ↗ 30 Audit logEvery admin write is recorded automatically: who did it, in which section, with which permission, and when. Each entry lists the records changed, added, edited or removed, and how many learners were notified. Filter by person, section or date range. Try it: Pick Rana Khalil under Person to see only her changes.
Open the page ↗ Support Support staff (support@demo.agt) help learners and follow up applications. Their menu is shorter: no sales, settings or roles.
1 Support's overviewThe same page with less in it: no sales figure and no sales chart. Needs action shows support's work: applications to review, accepted but unpaid, unanswered questions, learners at risk. The side menu lists only the sections the role allows, with no Sales, Settings or Roles. Open the page ↗ 2 UsersSupport sees and searches every account, to find the learner asking for help quickly. Creating accounts is not a support permission; the page refuses it even when opened directly. Try it: Type Yousef in the search and open his account.
Open the page ↗ 3 Helping a learnerThe learner's enrolments, progress in each course and payments on one page. Support can fix the name, disable or enable the account, and create a new temporary password. In the Role menu, roles with permissions support lacks are disabled, so there's no escalation. Open the page ↗ 4 Announcements, view onlySupport sees what learners were told, so answers match the announcement. There's no New announcement button: the role can only view Communication. Open the page ↗ 5 A template, view onlySupport reads the welcome message exactly as learners get it, in Arabic and English. The form is view only: editing and test sends are for those with edit rights. Open the page ↗ Accountant The accountant (accounts@demo.agt) follows payments and refunds. They see Sales and Reports, and view courses and users without changing them.
1 The accountant's overviewToday's and this month's sales at the top, and a sales chart under Trends. Needs action shows payments not completed, with a link to Sales. No grading or application items, because the role doesn't hold them. Opening a link outside the role, such as the gallery, brings them back here. The server checks every page and action, not just hidden links. Try it: Open /admin/gallery with this account and see where you land.
Open the page ↗ 2 Deciding a refund requestThe accountant can view and edit Sales: they approve a refund or decline it with a reason. The refund reason is picked from a list, with an internal note when needed. Every refund is recorded in the audit log under the accountant's name. Try it: Click Approve and refund to see the order turn Refunded.
Open the page ↗ 3 Coupons without createNo Add coupon button: creating and deleting are separate permissions the accountant doesn't hold. They can edit or pause an existing coupon, since edit is theirs. Open the page ↗ 4 A user, view onlyThe accountant sees a learner's payments and enrolments to match them with orders. The account form is disabled with “You can view only”, and the sign-in and password cards are hidden. Open the page ↗