How aticha-meet/edu-flow-app works
EduFlow is a web app for managing courses and student/teacher profiles, with an exam-taking and results experience. The principal flow is a user using the Next.js interface, which sends user, profile, or course requests to the Express API; API controllers delegate those requests to domain services. The README documents Prisma/PostgreSQL and OAuth, while the tree also shows exam pages and result components. Exam persistence and several service internals are not sampled, so their wiring is left unspecified.
Main entry points: router.ts API router · page.tsx Exam experience · route.ts Auth route · layout.tsx Next.js app
Components 22
Web interface
- Next.js app
apps/edu-flow-front/src/app/(main)/layout.tsx - Course pages
apps/edu-flow-front/src/app/(main)/course/page.tsx - Exam experience
apps/edu-flow-front/src/app/(main)/exam/page.tsx - Exam review
apps/edu-flow-front/src/components/exam/ExamReview.tsx - Exam state
apps/edu-flow-front/src/store/examStore.ts - PDF export
apps/edu-flow-front/src/utils/generateExamPDF.ts - Login page
apps/edu-flow-front/src/app/login/page.tsx
API services
- Express API
apps/edu-flow-api/src/main.ts - API router
apps/edu-flow-api/src/router.ts - User controller
apps/edu-flow-api/src/pkg/user/user.controller.ts - User service
apps/edu-flow-api/src/pkg/user/user.service.ts - Course controller
apps/edu-flow-api/src/pkg/course/course.controller.ts - Course service
apps/edu-flow-api/src/pkg/course/course.service.ts - Student profiles
apps/edu-flow-api/src/pkg/student-profile/student-profile.controller.ts - Student service
apps/edu-flow-api/src/pkg/student-profile/student-profile.service.ts - Teacher profiles
apps/edu-flow-api/src/pkg/teacher-profile/teacher-profile.controller.ts - Teacher service
apps/edu-flow-api/src/pkg/teacher-profile/teacher-profile.service.ts
Identity
- Auth route
apps/edu-flow-front/src/app/api/auth/[...nextauth]/route.ts - OAuth config
apps/edu-flow-front/src/utils/OauthConfig.ts
Other components
- User
- PostgreSQL
- Google OAuth
Connections 20
- User → Next.js app: uses
- Next.js app → Course pages: navigates
- User → Exam experience: takes exam
- Exam experience → Exam state: updates
- Exam experience → Exam review: shows results
- Exam review → PDF export: requests export
- User → Login page: signs in
- Login page → Auth route: authenticates
- Auth route → OAuth config: uses
- Auth route → Google OAuth: OAuth
- Express API → API router: mounts
- API router → User controller: routes requests
- API router → Course controller: routes requests
- API router → Student profiles: routes requests
- API router → Teacher profiles: routes requests
- User controller → User service: calls
- Course controller → Course service: calls
- Student profiles → Student service: calls
- Teacher profiles → Teacher service: calls
- Course pages → Express API: requests courses