How bavishkmr/xenotrack works
Xenotrack is an institute-management web application. Admins and staff sign in, then manage members, programs/groups, attendance, fees and payments; dashboards, reports, receipts, settings and audit logs support that work. The React app routes pages through shared authentication and API services to Express route/controller modules, which enforce access and operate on PostgreSQL through a compatibility layer. The README documents several capabilities whose page or controller implementation was not sampled; those branches are represented at their exact tree directories, with uncertain internal links omitted.
Main entry points: app.js Express API · App.jsx App routing · index.js API services · database.js PostgreSQL access
Components 29
Web application
- App routing
frontend/src/App.jsx - Session context
frontend/src/context/AuthContext.jsx - API services
frontend/src/services/index.js - HTTP client
frontend/src/services/api.js - Member management
frontend/src/pages/MembersPage.jsx - Member profiles
frontend/src/pages/MemberProfile.jsx - Programs and groups
frontend/src/pages/GroupsPage.jsx - Group detail
frontend/src/pages/GroupDetail.jsx - Attendance pages
frontend/src/pages/MarkAttendance.jsx - Fee records
frontend/src/pages/FeeRecordsPage.jsx - Settings
frontend/src/pages/SettingsPage.jsx - Login
frontend/src/pages/LoginPage.jsx
API and access
- Express API
backend/src/app.js - Auth routes
backend/src/routes/auth.js - Authentication
backend/src/controllers/authController.js - Authorization
backend/src/middleware/auth.js - Token utilities
backend/src/config/jwt.js
Institute operations
- Member API
backend/src/controllers/memberController.js - Programs and groups API
backend/src/controllers/programController.js - Attendance API
backend/src/controllers/attendanceController.js - Fee plans and records
backend/src/controllers/feeController.js - Payments and receipts
backend/src/controllers/paymentController.js - Staff management
backend/src/controllers/staffController.js
Reporting and settings
- Dashboards
backend/src/controllers/dashboardController.js - Reports
backend/src/controllers/reportController.js - Institute settings
backend/src/controllers/settingsController.js - Activity audit
backend/src/utils/activityLogger.js
Persistence
- PostgreSQL access
backend/src/config/database.js
Other components
- Admin or staff
Connections 48
- Admin or staff → App routing: uses
frontend/src/App.jsx - App routing → Session context: provides session
frontend/src/App.jsx - App routing → Login: routes to
frontend/src/App.jsx - Session context → API services: calls auth
frontend/src/context/AuthContext.jsx - API services → HTTP client: sends requests
frontend/src/services/index.js - App routing → Member management: routes to
frontend/src/App.jsx - App routing → Member profiles: routes to
frontend/src/App.jsx - App routing → Programs and groups: routes to
frontend/src/App.jsx - App routing → Group detail: routes to
frontend/src/App.jsx - App routing → Attendance pages: routes to
frontend/src/App.jsx - App routing → Fee records: routes to
frontend/src/App.jsx - App routing → Settings: routes to
frontend/src/App.jsx - Member management → API services: requests data
frontend/src/pages/MembersPage.jsx - Member profiles → API services: requests data
frontend/src/pages/MemberProfile.jsx - Programs and groups → API services: requests data
frontend/src/pages/GroupsPage.jsx - Group detail → API services: requests data
frontend/src/pages/GroupDetail.jsx - Fee records → API services: requests data
frontend/src/pages/FeeRecordsPage.jsx - Settings → API services: requests data
frontend/src/pages/SettingsPage.jsx - Login → API services: auth requests
- HTTP client → Express API: HTTP API
- Express API → Auth routes: mounts
backend/src/app.js - Auth routes → Authentication: dispatches
backend/src/routes/auth.js - Auth routes → Authorization: applies auth
backend/src/routes/auth.js - Authorization → Token utilities: verifies token
backend/src/middleware/auth.js - Authorization → PostgreSQL access: reloads user
backend/src/middleware/auth.js - Authentication → PostgreSQL access: reads and writes
backend/src/controllers/authController.js - Authentication → Token utilities: uses tokens
backend/src/controllers/authController.js - Express API → Member API: routes requests
backend/src/app.js - Express API → Programs and groups API: routes requests
backend/src/app.js - Express API → Attendance API: routes requests
backend/src/app.js - Express API → Fee plans and records: routes requests
backend/src/app.js - Express API → Payments and receipts: routes requests
backend/src/app.js - Express API → Staff management: routes requests
backend/src/app.js - Express API → Dashboards: routes requests
backend/src/app.js - Express API → Reports: routes requests
backend/src/app.js - Express API → Institute settings: routes requests
backend/src/app.js - Member API → PostgreSQL access: queries
backend/src/controllers/memberController.js - Programs and groups API → PostgreSQL access: queries
backend/src/controllers/programController.js - Attendance API → PostgreSQL access: queries
backend/src/controllers/attendanceController.js - Payments and receipts → PostgreSQL access: transactions
backend/src/controllers/paymentController.js - Institute settings → PostgreSQL access: queries
backend/src/controllers/settingsController.js - Dashboards → PostgreSQL access: queries
backend/src/controllers/dashboardController.js - Member API → Activity audit: logs actions
backend/src/controllers/memberController.js - Programs and groups API → Activity audit: logs actions
backend/src/controllers/programController.js - Attendance API → Activity audit: logs actions
backend/src/controllers/attendanceController.js - Payments and receipts → Activity audit: logs actions
backend/src/controllers/paymentController.js - Institute settings → Activity audit: logs actions
backend/src/controllers/settingsController.js - Activity audit → PostgreSQL access: writes logs
backend/src/utils/activityLogger.js