What is excluded from these diagrams
Not shown: Admin menu items hidden in code (Course Approvals, Assignments, Communications); orphan pages with no navigation link (e.g. location_summary); direct URL-only pages unless reached through a linked button in the app.
1. Public entry points
How each role reaches the application from the marketing site.
Workforce landing] HOME --> KLP[kids.php
K-12 landing] STLP -->|Get Started| SREG[student/register.php] STLP -->|Login| SLOG[student/login.php] STLP -->|Logged in| SCAT[student/course_catalog.php] KLP -->|Get Started| KREG[kids/register.php] KLP -->|Login| KLOG[kids/login.php] KLP -->|Logged in parent| KENR[kids/enroll_courses.php] KLP -->|Workforce link| SCAT ADMIN_EP[Direct URL] --> ALOG[admin/login.php] style SREG fill:#0d7377,color:#fff style SLOG fill:#0d7377,color:#fff style KREG fill:#2563eb,color:#fff style KLOG fill:#2563eb,color:#fff style ALOG fill:#7c3aed,color:#fff
2. Admin — login & sidebar navigation
Only items visible in admin sidebar (includes/menus/admin_menu.php).
3. Admin — create & publish a course
Linked path from Course Management row actions and wizard buttons.
Search · filter · list] -->|Add Course btn| AC[add_course.php
6-step wizard] CM -->|Row: Content Studio| CBS[course_builder_content_studio.php] CM -->|Row: Demo Lessons| CDL[course_demo_lessons.php] CM -->|Row: Programmes| CP[course_programmes.php] CM -->|Manage Categories link| CAT[course_categories.php] AC -->|Step: Curriculum| CBS CBS -->|Lesson blocks| LB[lesson_block_quiz / text / zoom] AC -->|Publish| CM style CM fill:#7c3aed,color:#fff
4. Admin — programme batch & student allotment
Buttons on course_programmes.php and drill-down pages.
List programmes per course] -->|Allot students| PAS[programme_allot_students.php
Assign · shift · credentials] CP -->|Manage schedule| PS[programme_sessions.php
Per-lesson date & Zoom] CP -->|Manage lessons & quiz| PLA[programme_lesson_access.php
Open/close lessons] PS -->|Link| PLA PLA -->|Back| PS PAS -->|Send credentials| MAIL[Email via MailHelper
info@domain] PAS --> R1[programme_allotment_report.php] PAS --> R2[programme_students_report.php] style CP fill:#7c3aed,color:#fff
5. Admin — users, demos, carts & settings
Common operational flows with middle actions.
Info · enrollments · docs] STU -->|Bulk enroll| ENR[api/admin/users/bulk_enroll] end subgraph Instructors INS[instructors.php] -->|Assign courses| IC[instructor_courses.php] IC -->|Assign workshops btn| IW[instructor_workshops.php] end subgraph Kids / Parents KID[kids.php] -->|Parent row| PP[parent_profile.php
Children tab] end subgraph Demo DR[demo_requests.php
Review requests] --> DS[demo_sessions.php
Create session] DS -->|Send invitations| INV[api/demo_requests/send_invitations] DS --> DSR[demo_sessions_report.php] end subgraph Carts PC[pending_carts.php] --> PCU[pending_cart_user.php] PCU --> PCC[pending_cart_checkout.php
Complete purchase] end subgraph Settings SET[settings.php] --> T1[Toggle email notifications] SET --> T2[Toggle student activation] SET --> TE[Send test email] end style STU fill:#7c3aed,color:#fff style SET fill:#7c3aed,color:#fff
6. Student — auth & sidebar menu
All items in student_menu.php plus Account section in student_sidebar.php.
required?} ACT -->|Yes| EM[Activation email] EM --> AV[activate.php?token=] ACT -->|No / Bypassed| LOG AV --> LOG[login.php] end LOG -->|api/auth/login.php| DASH[student_dashboard.php] DASH --> NAV[Sidebar MENU] NAV --> N1[Browse Workshops] NAV --> N2[Browse Courses] NAV --> N3[My Workshops] NAV --> N4[My Courses] NAV --> N5[Term Calendar] NAV --> N6[Cart] NAV --> N7[Materials] NAV --> N8[Learning Access] NAV --> N9[Assignments] NAV --> N10[Certificates] NAV --> N11[Payments] NAV --> N12[Profile] NAV --> N13[Settings] DASH --> ACC[Account section] ACC --> CPW[change_password.php] ACC --> OUT[Logout] style DASH fill:#0d7377,color:#fff
7. Student — course purchase & learning
Catalog → details → cart/checkout → lessons. My Courses links to lesson player.
Search · filter · wishlist] -->|Course card| DET[course_details.php] DET -->|Free course| ENR[api/student/enroll_course
action=enroll] DET -->|Paid| CART[api/cart/add.php] CART --> CRT[cart.php
Review items] CRT --> CHK[checkout.php
Apply coupon · pay] CHK --> PAY[api/payments/create_payment.php] PAY --> OK[payment_success.php] PAY --> ENR2[api/student/enroll_course
after payment] ENR --> MC[my_courses.php] ENR2 --> MC OK --> MC MC -->|Course title / image click| LP[lesson_player.php] LP --> MOD[course_modules.php
Module list] LP --> TST[lesson_test_intro.php
→ test player → result] MC --> DET style CAT fill:#0d7377,color:#fff style MC fill:#0d7377,color:#fff
8. Student — workshops & dashboard links
Workshop flow via linked pages (workshop_details not in sidebar but linked from catalog & my workshops).
9. Parent — registration, menu & child management
parent_menu_student.php + Account section in parent_sidebar.php. All under modules/kids/.
Parent + first child info] -->|api/auth/register.php| LOG[kids/login.php] LOG -->|Email + password| OTP[OTP step in browser UI] OTP --> DASH[parent_dashboard.php
Overview widgets] DASH --> CH[children_list.php] DASH --> ADD[add_child.php
Username · password · grade] DASH --> ENR[enroll_courses.php] DASH --> SCH[schedules.php] DASH --> PRG[child_progress_select.php] CH -->|Per child buttons| PROF[child_profile.php] CH --> SET[child_settings.php
Login on/off · time limits] CH --> CMC[child_my_courses.php
Parent view · access toggle] PRG --> PRV[child_progress_view.php] DASH --> ACC[Account] ACC --> CPW[change_password.php] ACC --> PAY[payments/payment_history.php] style DASH fill:#2563eb,color:#fff
10. Parent — enroll child in kids course
Grade-matched enrollment only (audience=kids).
api/kids/get_courses.php] BROWSE --> MATCH{Grade matches
course grade_label?} MATCH -->|No| BROWSE MATCH -->|Yes| API[api/kids/enroll_child_course.php] API --> DONE[Child enrolled] DONE --> CMC[child_my_courses.php
Parent can enable/disable access] CMC --> SET[child_settings.php
Optional: daily limit · hours] style ENR fill:#2563eb,color:#fff
11. Child (Kids) — login & learning
child_menu_student.php only (4 items + logout). No self-registration.
Child username + password] -->|api/auth/login.php| CHK{child_account_enabled
& parent schedule?} CHK -->|Blocked| X[Login denied / lesson blocked] CHK -->|OK| DASH[child_dashboard.php] DASH --> MC[child_my_courses.php] DASH --> SCH[child_schedules.php] DASH --> PROF[child_my_profile.php] MC -->|Open course| GUARD{Parent allowed
this course?} GUARD -->|No| X GUARD -->|Yes| LP[child_lesson_player.php] LP --> USG[api/kids/log_usage.php
Track session time] LP --> PRG[api/progress/update_progress.php] NOTE[Programme batch students] --> PLOG[programme_login.php
From credentials email] PLOG --> LP style DASH fill:#ea580c,color:#fff style LP fill:#ea580c,color:#fff
12. Cross-role: how a student gets programme access
Admin allotment → email → student or programme login → lessons.
Gated programme content] style A1 fill:#7c3aed,color:#fff style S2 fill:#0d7377,color:#fff