How karthik-scs/incrito_lms works
Incrito LMS is a cohort-based learning platform with a Next.js interface and a separate Express/Prisma API. A typical journey is sign-in, course discovery and cohort enrollment, then lesson access and progress toward certificates; role-specific dashboards and administration support that journey. The README also documents distinct community, direct-chat, scheduling, reporting, and certificate-design capabilities. Sampled code confirms the auth client, enrollment route/controller/service flow, and storage administration calls; other feature connections are included only where documented, since their implementation was not sampled.
Main entry points: authClient.ts API client · sessions/page.tsx Bookings and group calls · login/page.tsx Sign-in and auth state · AdminLayout.tsx Role-aware app shell
Components 20
Web experience
- Sign-in and auth state
app/(auth)/login/page.tsx - Role-aware app shell
components/layout/AdminLayout.tsx - API client
lib/authClient.ts
Learning and cohorts
- Course browsing and lessons
app/courses - Cohort management
app/cohorts
Collaboration and scheduling
- Communities and discussion
app/community - Direct messaging
app/chat/page.tsx - Bookings and group calls
app/sessions/page.tsx - Calendar
app/calendar/page.tsx - One-to-one calling
components/calls/CallManager.tsx
Certificates and reporting
- Certificates and designer
app/courses/[slug]/certificate/page.tsx - Admin analytics and reports
app/admin/reports/page.tsx
API and persistence
- Enrollment endpoints
server/src/routes/enrollments.routes.ts - Enrollment handlers
server/src/controllers/enrollment.controller.ts - Enrollment rules
server/src/services/enrollment.service.ts - PostgreSQL via Prisma
server/src/lib/prisma.ts - Storage administration
components/settings/UserStorageTab.tsx - Storage handlers
server/src/controllers/storage.controller.ts - Storage operations
server/src/services/storage.service.ts
Other components
- Learner or staff
Connections 22
- Learner or staff → Sign-in and auth state: signs in
README.md - Sign-in and auth state → API client: requests auth
app/(auth)/login/page.tsx - Role-aware app shell → API client: loads identity
- Learner or staff → Role-aware app shell: uses platform
README.md - Course browsing and lessons → API client: loads courses
app/courses/page.tsx - Cohort management → API client: manages cohorts
app/cohorts/page.tsx - Learner or staff → Course browsing and lessons: learns courses
README.md - Enrollment endpoints → Enrollment handlers: dispatches
server/src/routes/enrollments.routes.ts - Enrollment handlers → Enrollment rules: calls
server/src/controllers/enrollment.controller.ts - Enrollment rules → PostgreSQL via Prisma: reads and writes
server/src/services/enrollment.service.ts - API client → Enrollment endpoints: calls API
- Communities and discussion → API client: loads community
app/community/[id]/page.tsx - Direct messaging → API client: calls API
app/chat/page.tsx - Bookings and group calls → API client: loads sessions
app/sessions/page.tsx - Bookings and group calls → One-to-one calling: offers calls
- One-to-one calling → API client: signals calls
components/calls/CallManager.tsx - Calendar → API client: loads calendar
app/calendar/page.tsx - Certificates and designer → API client: loads certificates
- Admin analytics and reports → API client: loads reports
- Storage administration → Storage handlers: calls storage API
- Storage handlers → Storage operations: calls
server/src/controllers/storage.controller.ts - Storage operations → PostgreSQL via Prisma: reads and writes