How phanikumar122/mentora works
Mentora is a role-based academic portal for students, teachers, parents, and administrators. Users sign in, receive role-specific dashboards, then manage academic records or use shared learning features; requests cross a React API client into Spring REST controllers and persist through repositories. Real-time chat is a separate WebSocket path. The README documents the broader product capabilities; sampled source confirms selected authentication, attendance, materials, and messaging behavior, so unsampled controller-to-storage wiring is not expanded.
Main entry points: api.ts API client · App.tsx Routes and dashboards · ChatController.java Real-time messaging · AuthController.java Authentication API
Components 28
Web Client
- Routes and dashboards
mentora-frontend/src/App.tsx - Login and session
mentora-frontend/src/pages/auth/Login.tsx - API client
mentora-frontend/src/services/api.ts - Admin portal
mentora-frontend/src/pages/admin/AdminUsers.tsx - Student portal
mentora-frontend/src/pages/student/StudentDashboard.tsx - Teacher portal
mentora-frontend/src/pages/teacher/TeacherDashboard.tsx - Parent portal
mentora-frontend/src/pages/parent/ParentDashboard.tsx - Shared learning pages
mentora-frontend/src/pages/shared/AssignmentsPage.tsx
Identity and Access
- Auth state
mentora-frontend/src/context/AuthContext.tsx - Authentication API
mentora-backend/src/main/java/com/mentora/controller/AuthController.java - JWT security
mentora-backend/src/main/java/com/mentora/security/JwtAuthFilter.java - User lookup
mentora-backend/src/main/java/com/mentora/security/UserDetailsServiceImpl.java - User records
mentora-backend/src/main/java/com/mentora/repository/UserRepository.java
Academic Operations
- Academic structure
mentora-backend/src/main/java/com/mentora/controller/AcademicController.java - User administration
mentora-backend/src/main/java/com/mentora/controller/UserController.java - Assignments and grades
mentora-backend/src/main/java/com/mentora/controller/AssignmentController.java - Attendance analytics
mentora-backend/src/main/java/com/mentora/controller/AttendanceController.java - Attendance records
mentora-backend/src/main/java/com/mentora/repository/AttendanceRepository.java
Learning and Community
- Notice board
mentora-backend/src/main/java/com/mentora/controller/AnnouncementController.java - Study materials
mentora-backend/src/main/java/com/mentora/controller/StudyMaterialController.java - Material records
mentora-backend/src/main/java/com/mentora/repository/StudyMaterialRepository.java - Discussion forum
mentora-backend/src/main/java/com/mentora/controller/DiscussionController.java - Real-time messaging
mentora-backend/src/main/java/com/mentora/controller/ChatController.java - Message records
mentora-backend/src/main/java/com/mentora/repository/ChatMessageRepository.java - WebSocket transport
mentora-backend/src/main/java/com/mentora/config/WebSocketConfig.java
Other components
- Portal users
- Relational database
- STOMP clients
Connections 37
- Portal users → Routes and dashboards: use portal
- Routes and dashboards → Login and session: route login
- Routes and dashboards → Student portal: route by role
- Routes and dashboards → Teacher portal: route by role
- Routes and dashboards → Parent portal: route by role
- Routes and dashboards → Admin portal: route by role
- Routes and dashboards → Shared learning pages: route features
- Login and session → Auth state: submit credentials
- Auth state → API client: request login
- API client → Authentication API: HTTP requests
- Authentication API → User lookup: authenticate user
- User lookup → User records: load account
- User records → Relational database: read users
- Authentication API → User records: register account
- API client → JWT security: send bearer token
- Student portal → API client: fetch academic data
- Teacher portal → API client: manage classes
- Parent portal → API client: view ward data
- Admin portal → API client: manage users
- Shared learning pages → API client: use learning features
- API client → Academic structure: HTTP requests
- API client → User administration: HTTP requests
- API client → Assignments and grades: HTTP requests
- API client → Attendance analytics: HTTP requests
- API client → Notice board: HTTP requests
- API client → Study materials: HTTP requests
- API client → Discussion forum: HTTP requests
- API client → Real-time messaging: HTTP messages
- Attendance analytics → Attendance records: save and query
- Attendance records → Relational database: read and write
- Study materials → Material records: save and retrieve
- Material records → Relational database: read and write
- Real-time messaging → Message records: persist messages
- Message records → Relational database: read and write
- STOMP clients → WebSocket transport: connect STOMP
- WebSocket transport → Real-time messaging: dispatch messages
- Real-time messaging → STOMP clients: broadcast messages