How kugelblitz84/edu_app_backend works
Edu App Backend is a feature-first NestJS API for identity and institution workflows, exam administration and delivery, and global institution review. Users and administrators enter through HTTP endpoints; controllers validate requests and delegate to feature use cases. The exam workflow spans exam setup and invitations, discovery/access, and live attempts through recovery, submission, grading, and results. Authentication provides login, registration, password reset, and session management. The tree and README establish additional capabilities, but sampled implementation excerpts are limited; uncertain internal repository and integration wiring is omitted.
Main entry points: live-exam.controller.ts Attempt API · session.service.ts Session service · register.controller.ts Registration API · pass-reset.controller.ts Password reset API
Components 31
Identity
- Login API
src/features/auth/login/presentation/login.controller.ts - Login use case
src/features/auth/login/domain/usecases/login.usecase.ts - Registration API
src/features/auth/register/presentation/controllers/register.controller.ts - User registration
src/features/auth/register/domain/use-cases/register-user.use-case.ts - Institution registration
src/features/auth/register/domain/use-cases/register-institution.use-case.ts - Password reset API
src/features/auth/pass-reset/presentation/controllers/pass-reset.controller.ts - Password reset
src/features/auth/pass-reset/domain/use-cases/pass-reset.usecase.ts - Session API
src/core/auth/auth.controller.ts - Session service
src/core/auth/services/session.service.ts - Access tokens
src/core/auth/services/access-token.service.ts - User profile API
src/features/user-profile/presentation/profile.controller.ts
Exam workflows
- Exam administration API
src/features/exams/admin-exam/presentation/exam.controllers.ts - Exam management
src/features/exams/admin-exam/domain/exam.usecases.ts - Exam invitations
src/features/exams/admin-exam/domain/exam-invitation.usecases.ts - Exam catalog API
src/features/exams/user-exam/presentation/exam.controller.ts - Catalog and access
src/features/exams/user-exam/domain/user-exam.usecases.ts - Attempt API
src/features/exams/exam-live/presentation/live-exam.controller.ts - Start attempt API
src/features/exams/exam-live/presentation/live-exam.controller.ts - Start attempt
src/features/exams/exam-live/domain/usecases/start-attempt.usecase.ts - Recover attempt
src/features/exams/exam-live/domain/usecases/recover-attempt.usecase.ts - Submit attempt
src/features/exams/exam-live/domain/usecases/submit-attempt.usecase.ts - Grade attempt
src/features/exams/exam-live/domain/usecases/grade-attempt.usecase.ts - Attempt results
src/features/exams/exam-live/domain/usecases/get-attempt-result.usecase.ts - Live exam gateway
src/features/exams/exam-live/realtime/live-exam.gateway.ts - Socket authentication
src/features/exams/exam-live/realtime/socket-auth.service.ts
Institution governance
- Institution review API
src/features/global_admin/presentation/global-admin.controller.ts - Institution review
src/features/global_admin/domain/usecases.ts
Platform services
- Prisma database
src/core/database/prisma.service.ts - Health endpoint
src/features/health/health.controller.ts - Health service
src/features/health/health.service.ts
Other components
- API client
Connections 29
- API client → Login API: submits login
- Login API → Login use case: executes login
- API client → Registration API: registers
- Registration API → User registration: creates user
- Registration API → Institution registration: creates institution
- API client → Password reset API: requests reset
- Password reset API → Password reset: handles reset
- Password reset API → Session service: deletes sessions
- API client → Session API: refreshes or logs out
- Session API → Session service: rotates or revokes
- Session service → Prisma database: reads and writes sessions
- Session service → Access tokens: generates tokens
- API client → Exam administration API: manages exams
- Exam administration API → Exam management: manages exam
- Exam administration API → Exam invitations: generates invitations
- API client → Exam catalog API: browses or requests access
- Exam catalog API → Catalog and access: queries or authorizes
- API client → Start attempt API: starts attempt
- Start attempt API → Start attempt: starts attempt
- API client → Attempt API: recovers, submits, views result
- Attempt API → Recover attempt: recovers attempt
- Attempt API → Submit attempt: submits attempt
- Attempt API → Attempt results: gets result
- API client → Live exam gateway: connects live
- Live exam gateway → Socket authentication: authenticates socket
- API client → Institution review API: reviews institutions
- Institution review API → Institution review: lists or decides
- API client → Health endpoint: checks health
- Health endpoint → Health service: checks status