How preetambara/spms works
SPMS is a role-based academic management web client for students, faculty, and administrators. Users enter through login, authenticated routes select their portal, and portal views present academic records and management workflows. The main domains cover student courses, attendance, assignments, exams and results; faculty class operations, grading and performance; and administration of people, subjects and notices. Services and browser storage provide an internal integration layer. The sampled code confirms routing, authentication and API-client behavior; many portal views and service implementations were not sampled, so those links are documented or omitted accordingly.
Main entry points: apiClient.js HTTP client · AppRoutes.jsx Role routes · authService.js Auth service · App.jsx App providers
Components 23
Application entry
- App providers
src/App.jsx - Role routes
src/routes/AppRoutes.jsx - Access guard
src/routes/ProtectedRoute.jsx
Identity and state
- Login
src/pages/Login.jsx - Authentication state
src/context/AuthContext.jsx - Notice state
src/context/NoticesContext.jsx
Academic portals
- Student portal
src/pages/student - Faculty portal
src/pages/faculty - Admin console
src/pages/admin - Notice board
src/pages/shared/NoticeBoard.jsx
Data and services
- Auth service
src/services/authService.js - Admin services
src/services/adminService.js - Faculty services
src/services/facultyService.js - Student services
src/services/studentService.js - Notice service
src/services/noticeService.js - HTTP client
src/services/apiClient.js - Demo academic data
src/data/mockData.js - Browser storage wrapper
src/utils/storage.js - API endpoint map
src/constants/apiEndpoints.js - Storage keys
src/constants/storageKeys.js
Other components
- Students, faculty, admins
- REST backend
- Local storage
Connections 30
- Students, faculty, admins → App providers: use portal
- App providers → Authentication state: provides
src/App.jsx - App providers → Notice state: provides
src/App.jsx - App providers → Role routes: renders
src/App.jsx - Role routes → Login: routes to
src/routes/AppRoutes.jsx - Role routes → Access guard: protects routes
src/routes/AppRoutes.jsx - Role routes → Student portal: routes to
src/routes/AppRoutes.jsx - Role routes → Faculty portal: routes to
src/routes/AppRoutes.jsx - Role routes → Admin console: routes to
src/routes/AppRoutes.jsx - Role routes → Notice board: routes to
src/routes/AppRoutes.jsx - Login → Authentication state: requests login
src/pages/Login.jsx - Authentication state → Auth service: calls
src/context/AuthContext.jsx - Auth service → HTTP client: posts login
src/services/authService.js - Auth service → API endpoint map: uses
src/services/authService.js - Auth service → Browser storage wrapper: reads and writes
src/services/authService.js - Access guard → Authentication state: checks identity
src/routes/ProtectedRoute.jsx - Notice state → Notice service: loads notices
src/context/NoticesContext.jsx - Student services → HTTP client: calls
src/services/studentService.js - Faculty services → HTTP client: calls
src/services/facultyService.js - Admin services → HTTP client: uses
- Notice service → HTTP client: calls
src/services/noticeService.js - HTTP client → REST backend: sends requests
src/services/apiClient.js - HTTP client → Browser storage wrapper: reads token
src/services/apiClient.js - HTTP client → Storage keys: uses
src/services/apiClient.js - Auth service → Demo academic data: offline fallback
src/services/authService.js - Faculty services → Demo academic data: uses fallback data
src/services/facultyService.js - Student services → Demo academic data: uses fallback data
src/services/studentService.js - Notice service → Demo academic data: uses fallback data
src/services/noticeService.js - Browser storage wrapper → Local storage: reads and writes
src/utils/storage.js - Browser storage wrapper → Storage keys: uses