How erjoneox/elearningplatform works
EduFlow is a course-learning platform for students, instructors, and administrators. Users authenticate, browse courses, enroll, and access course lessons and materials; they can take quizzes and submit assignments, while instructors manage course content and grade work. The React client calls an Express API, whose controllers enforce domain rules and use SQL-backed models. The index documents additional user, category, progress, and dashboard capabilities. Some backend routes and controllers were not sampled, so those branches are shown only where the source index establishes their wiring.
Main entry points: models SQL data models · axios.js HTTP client · App.jsx Application routes · CourseDetails.jsx Course details
Components 22
Web client
- Application routes
frontend/src/App.jsx - Authentication state
frontend/src/context/AuthContext.jsx - HTTP client
frontend/src/api/axios.js - Course browsing
frontend/src/pages/Courses.jsx - Course details
frontend/src/pages/CourseDetails.jsx - Quiz interface
frontend/src/components/CourseQuizzes.jsx - Dashboard
frontend/src/pages/Dashboard.jsx
API and access
- Express API
backend/app.js - Authentication routes
backend/routes/authRoutes.js - Authentication
backend/controllers/authController.js - Token and role checks
backend/middleware/authMiddleware.js - Enrollment routes
backend/routes/enrollmentRoutes.js - Enrollment management
backend/controllers/enrollmentController.js
Course learning
- Course management
backend/controllers/courseController.js - Lessons and materials
backend/controllers/lessonController.js
Assessment and records
- Assignments and grading
backend/controllers/assignmentController.js - Quizzes and attempts
backend/controllers/quizController.js - Learning progress
backend/controllers/progressController.js - Dashboard data
backend/controllers/dashboardController.js
Persistence
- SQL data models
backend/models - SQL Server
Other components
- Platform user
Connections 26
- Platform user → Application routes: uses
- Application routes → Authentication state: provides auth
frontend/src/App.jsx - Application routes → Course browsing: routes to
frontend/src/App.jsx - Application routes → Course details: routes to
frontend/src/App.jsx - Application routes → Dashboard: routes to
frontend/src/App.jsx - Authentication state → HTTP client: requests
frontend/src/context/AuthContext.jsx - Course browsing → HTTP client: requests
frontend/src/pages/Courses.jsx - Course details → HTTP client: requests
frontend/src/pages/CourseDetails.jsx - Course details → Quiz interface: renders
frontend/src/pages/CourseDetails.jsx - Quiz interface → HTTP client: requests
frontend/src/components/CourseQuizzes.jsx - Dashboard → HTTP client: requests
frontend/src/pages/Dashboard.jsx - HTTP client → Express API: calls API
- Express API → Authentication routes: mounts
backend/app.js - Express API → Enrollment routes: mounts
backend/app.js - Authentication routes → Authentication: dispatches
backend/routes/authRoutes.js - Enrollment routes → Enrollment management: dispatches
backend/routes/enrollmentRoutes.js - Enrollment routes → Token and role checks: checks access
backend/routes/enrollmentRoutes.js - Authentication → SQL data models: uses users
backend/controllers/authController.js - Enrollment management → SQL data models: reads and writes
backend/controllers/enrollmentController.js - Course management → SQL data models: uses course and user data
backend/controllers/courseController.js - Lessons and materials → SQL data models: uses lesson data
backend/controllers/lessonController.js - Assignments and grading → SQL data models: uses assignment data
backend/controllers/assignmentController.js - Quizzes and attempts → SQL data models: uses quiz data
backend/controllers/quizController.js - Learning progress → SQL data models: uses progress data
backend/controllers/progressController.js - Dashboard data → SQL data models: uses dashboard data
- SQL data models → SQL Server: queries