How irsyamokta/gabara works
Gabara is a role-based learning management system for students, mentors, and administrators. The main learner journey is account access, joining a class, then using its learning content and completing assignments; mentors manage classes and learning activities, while administrators oversee users and announcements. Laravel controllers provide Inertia pages and interact with Eloquent models backed by relational storage. The README documents email verification, role permissions, profile management, and Cloudinary media storage. Some domain modules are represented from the file tree; their internal wiring was not sampled, so uncertain links are omitted.
Main entry points: web.php Web Routes · Models Learning Records · HandleInertiaRequests.php Inertia Bridge · ClassController.php Class Management
Components 25
Public Entry
- Web Routes
routes/web.php - Homepage
app/Http/Controllers/HomepageController.php - Homepage UI
resources/js/Pages/Homepage.tsx
Accounts and Roles
- Auth Screens
resources/js/Pages/Auth/Login.tsx - Session Access
app/Http/Controllers/Auth/AuthenticatedSessionController.php - Registration
app/Http/Controllers/Auth/RegisteredUserController.php - User Records
app/Models/User.php - Email Verification
app/Http/Controllers/Auth/VerifyEmailController.php - Profile Management
app/Http/Controllers/ProfileController.php
Classes and Learning
- Class Management
app/Http/Controllers/ClassController.php - Class Pages
resources/js/Pages/Classes/ClassDetail.tsx - Class Enrollment
app/Http/Controllers/EnrollmentController.php - Course Content
app/Models/Material.php - Meetings
app/Http/Controllers/MeetingController.php
Learning Activity
- Assignments
app/Http/Controllers/AssignmentController.php - Submissions
app/Http/Controllers/SubmissionController.php - Class Discussions
app/Models/Discussion.php
Application Core
- Role Dashboard
app/Http/Controllers/DashboardController.php - Dashboard Screens
resources/js/Pages/Student/Dashboard.tsx - Announcements
app/Http/Controllers/AnnouncementController.php - Learning Records
app/Models - Inertia Bridge
app/Http/Middleware/HandleInertiaRequests.php
Other components
- Learner or Staff
- MySQL
- Cloudinary Media
Connections 34
- Learner or Staff → Homepage UI: browses
- Homepage UI → Web Routes: navigates
- Learner or Staff → Auth Screens: signs in
- Auth Screens → Web Routes: submits credentials
- Web Routes → Session Access: dispatches
- Web Routes → Registration: dispatches
- Registration → User Records: creates user
- Registration → User Records: assigns role
- Web Routes → Email Verification: dispatches
- Learner or Staff → Web Routes: requests pages
- Web Routes → Homepage: dispatches
- Homepage → Inertia Bridge: renders page
- Web Routes → Role Dashboard: dispatches
- Role Dashboard → Learning Records: reads role data
- Role Dashboard → Inertia Bridge: renders dashboard
- Inertia Bridge → Dashboard Screens: delivers props
- Web Routes → Class Management: dispatches
- Class Management → Learning Records: reads and writes
- Class Management → Inertia Bridge: renders class pages
- Inertia Bridge → Class Pages: delivers props
- Web Routes → Class Enrollment: dispatches
- Class Enrollment → Learning Records: checks and creates enrollment
- Web Routes → Meetings: dispatches
- Web Routes → Assignments: dispatches
- Web Routes → Submissions: dispatches
- Web Routes → Announcements: dispatches
- Web Routes → Profile Management: dispatches
- Meetings → Learning Records: reads and writes
- Assignments → Learning Records: reads and writes
- Submissions → Learning Records: reads and writes
- Announcements → Learning Records: reads and writes
- Profile Management → User Records: updates profile
- Class Management → Cloudinary Media: uploads media
- Learning Records → MySQL: persists records