How asimomran/internship works
CourseTrack is a learning platform for student course enrollment and progress tracking, with admin course management and analytics. The main flow is sign-in, enroll or open a course, record module/video activity, and view updated progress; admins create courses and review platform metrics. The graph follows the React app through Spring controllers and the shared course-tracking service to JPA repositories. README details are minimal, and some controller/service wiring is inferred only where the sampled code or UI explicitly supports the capability.
Main entry points: App.jsx App and Routing · api.js API Client · CourseTrackService.java Course Tracking · repositories JPA Repositories
Components 19
Learner and Admin UI
- App and Routing
frontend/src/App.jsx - Sign-in UI
frontend/src/components/AuthScreen.jsx - Student Dashboard
frontend/src/components/StudentDashboard.jsx - Course Detail
frontend/src/components/CourseDetail.jsx - Admin Dashboard
frontend/src/components/AdminDashboard.jsx - API Client
frontend/src/lib/api.js
Identity and Access
- Authentication
backend/src/main/java/com/learnflow/backend/controllers/AuthController.java - JWT Security
backend/src/main/java/com/learnflow/backend/security/SecurityConfig.java - User Lookup
backend/src/main/java/com/learnflow/backend/security/UserDetailsServiceImpl.java
Course and Learning
- Course Catalog
backend/src/main/java/com/learnflow/backend/controllers/CourseController.java - Enrollment
backend/src/main/java/com/learnflow/backend/controllers/EnrollmentController.java - Study Sessions
backend/src/main/java/com/learnflow/backend/controllers/SessionController.java - Progress Updates
backend/src/main/java/com/learnflow/backend/controllers/ProgressController.java - Course Tracking
backend/src/main/java/com/learnflow/backend/services/CourseTrackService.java
Progress and Analytics
- Dashboard API
backend/src/main/java/com/learnflow/backend/controllers/DashboardController.java
Persistence
- JPA Repositories
backend/src/main/java/com/learnflow/backend/repositories - Application Database
Other components
- Learner
- Administrator
Connections 31
- Learner → Sign-in UI: signs in
- Administrator → Sign-in UI: signs in
- Sign-in UI → App and Routing: submits credentials
- App and Routing → API Client: requests
- API Client → Authentication: calls auth API
- Authentication → JPA Repositories: reads and saves users
- Authentication → Course Tracking: builds session user
- Authentication → JWT Security: authenticates and issues JWT
- JWT Security → User Lookup: loads account
- User Lookup → JPA Repositories: finds user
- App and Routing → Student Dashboard: renders learner view
- App and Routing → Admin Dashboard: renders admin view
- App and Routing → Course Detail: renders course view
- Learner → Student Dashboard: views dashboard
- Administrator → Admin Dashboard: manages courses
- Student Dashboard → App and Routing: opens course
- Course Detail → App and Routing: submits activity
- App and Routing → API Client: loads and updates data
- API Client → Course Catalog: requests courses
- API Client → Enrollment: enrolls learner
- Enrollment → JPA Repositories: reads and saves enrollment
- API Client → Progress Updates: updates module or video
- Progress Updates → Course Tracking: delegates progress
- API Client → Study Sessions: records study time
- Study Sessions → JPA Repositories: reads and saves sessions
- Course Catalog → Course Tracking: serves course details
- Course Tracking → JPA Repositories: reads and updates learning data
- App and Routing → Dashboard API: loads dashboard
- Dashboard API → Course Tracking: requests metrics
- Course Tracking → Dashboard API: returns summaries
- JPA Repositories → Application Database: persists entities