How ai-catalyst-salman/kahani-events-lms-backend works
Kahani Events Training Platform is a FastAPI backend for employee training. Learners sign in, browse courses and videos, record completions, and access quizzes subject to authentication and progress rules; administrators manage training content and users and review platform metrics. Supabase provides authentication and persistent data, while the API’s auth dependency resolves user roles and protects restricted operations. The tree and excerpts document analytics and an AI quiz-generation route as additional capabilities. The AI route is not included by the sampled application router setup, so its integration with the live API is uncertain.
Main entry points: main.py FastAPI application · supabase_client.py Supabase client · core/auth.py Token and role guard · api/auth.py Login and profile
Components 20
API entry
- FastAPI application
app/main.py
Learner training
- Course browsing
app/api/courses.py - Completion tracking
app/api/progress.py - Quiz access
app/api/quizzes.py
Administration
- Training analytics
app/api/analytics.py - Admin operations
app/api/admin.py - Admin schemas
app/schemas/admin.py
Identity and data
- Login and profile
app/api/auth.py - Token and role guard
app/core/auth.py - Login rate limiter
app/core/rate_limit.py - Auth schemas
app/schemas/auth.py - Supabase client
app/core/supabase_client.py - Supabase
AI quiz generation
- Video quiz generation route
app/api/quiz_router.py - Transcription and quiz AI
app/services/ai_quiz_service.py - Generated quiz schemas
app/schemas/quiz_schemas.py - Groq Whisper
- Google Gemini
Other components
- Learner
- Administrator
Connections 29
- Learner → FastAPI application: sends requests
- Administrator → FastAPI application: sends requests
- FastAPI application → Login and profile: dispatches routes
- FastAPI application → Course browsing: dispatches routes
- FastAPI application → Completion tracking: dispatches routes
- FastAPI application → Quiz access: dispatches routes
- FastAPI application → Admin operations: dispatches routes
- FastAPI application → Training analytics: dispatches routes
- Login and profile → Login rate limiter: checks attempts
- Login and profile → Token and role guard: authenticates profile
- Login and profile → Supabase client: signs in
- Token and role guard → Supabase client: verifies token
- Login and profile → Auth schemas: validates payload
- Admin operations → Token and role guard: requires admin
- Course browsing → Supabase client: reads courses
- Completion tracking → Token and role guard: requires user
- Completion tracking → Supabase client: records completion
- Quiz access → Token and role guard: checks access
- Quiz access → Supabase client: reads quiz data
- Training analytics → Token and role guard: requires admin
- Training analytics → Supabase client: reads metrics
- Admin operations → Supabase client: manages records
- Admin operations → Admin schemas: validates payloads
- Supabase client → Supabase: queries
- Video quiz generation route → Transcription and quiz AI: transcribes and generates
- Video quiz generation route → Supabase client: saves questions
- Transcription and quiz AI → Groq Whisper: transcribes audio
- Transcription and quiz AI → Google Gemini: generates and grades
- Transcription and quiz AI → Generated quiz schemas: validates output