How tensorsiitm/tensors-school-app works
This is a teacher-and-student school management app: users sign in, then use role-specific mobile screens to manage or view school records. The backend exposes API routes whose controllers implement authentication, student/class administration, attendance, exams and marks, timetables, and announcements or leave requests, with PostgreSQL-backed records. The frontend API service connects screens to the backend; authentication utilities and local token storage support sessions. The README is empty, and sampled sources do not establish every screen-to-endpoint mapping, so those links are shown only at the shared service boundary.
Main entry points: db.js PostgreSQL · AppNavigator.jsx App navigator · auth.js Access middleware · index.js API server
Components 25
Mobile app
- App navigator
school-app/frontend/src/navigation/AppNavigator.jsx - Teacher screens
school-app/frontend/src/screens - Student screens
school-app/frontend/src/screens - API service
school-app/frontend/src/services/api.js - Session utilities
school-app/frontend/src/utils/auth.js - Token storage
school-app/frontend/src/utils/storage.js
API and access
- API server
school-app/backend/index.js - Route registry
school-app/backend/routes/index.js - Auth routes
school-app/backend/routes/authRoutes.js - Authentication
school-app/backend/controllers/authController.js - Access middleware
school-app/backend/middleware/auth.js
School records
- PostgreSQL
school-app/backend/config/db.js - Student records
school-app/backend/controllers/studentController.js - Class records
school-app/backend/controllers/classController.js - Attendance
school-app/backend/controllers/attendanceController.js - Teacher records
school-app/backend/controllers/teacherController.js
Academic work
- Exams
school-app/backend/controllers/examController.js - Marks and results
school-app/backend/controllers/marksController.js - Subjects
school-app/backend/controllers/subjectController.js - Timetables
school-app/backend/controllers/timetableController.js - Marks routes
school-app/backend/routes/marksRoutes.js
Communication
- Announcements and leave
school-app/backend/controllers/notificationController.js - Notification routes
school-app/backend/routes/notificationRoutes.js
Other components
- Teacher
- Student
Connections 27
- Teacher → App navigator: uses app
- Student → App navigator: uses app
- App navigator → Teacher screens: navigates
- App navigator → Student screens: navigates
- Teacher screens → API service: requests data
- Student screens → API service: requests data
- Session utilities → Token storage: stores token
- API service → API server: HTTP requests
- API server → Route registry: dispatches
- Route registry → Auth routes: mounts routes
- Auth routes → Authentication: dispatches
- Authentication → PostgreSQL: reads/writes
- Authentication → Access middleware: creates tokens
- API server → Access middleware: applies access
- Notification routes → Access middleware: checks roles
- Notification routes → Announcements and leave: dispatches
- Announcements and leave → PostgreSQL: reads/writes
- Marks routes → Access middleware: checks roles
- Marks routes → Marks and results: dispatches
- Marks and results → PostgreSQL: reads/writes
- Student records → PostgreSQL: reads/writes
- Class records → PostgreSQL: reads/writes
- Attendance → PostgreSQL: reads/writes
- Exams → PostgreSQL: reads/writes
- Subjects → PostgreSQL: reads/writes
- Timetables → PostgreSQL: reads/writes
- Teacher records → PostgreSQL: reads/writes