How rayanechentouf/haasna_school works
ENT is a school-management portal for students, teachers, and administrative staff. Users sign in through the role-aware web app; its API serves role-specific dashboards and workflows for attendance, grades, homework, schedules, and administration, persisting school records in a relational database. The README also documents communications, reports, and data import/export. Sampled source confirms the API/router boundary, token-based login, client requests, search, and database setup; relationships among unsampled route families are shown only where the app's router registration or README supports them.
Main entry points: main.py FastAPI app · database.py DB sessions · App.jsx Role dashboards · auth.py Authentication
Components 31
Web application
- Role dashboards
frontend/src/App.jsx - Login/session
frontend/src/contexts/AuthContext.jsx - API client
frontend/src/api/client.js - Global search
frontend/src/components/GlobalSearch.jsx
Identity and access
- Authentication
backend/app/routes/auth.py - Users and roles
backend/app/routes/users.py
School operations
- Student records
backend/app/routes/students.py - Teacher records
backend/app/routes/teachers.py - Classes and subjects
backend/app/routes/classes.py - Attendance
backend/app/routes/attendance.py - Absence justifications
backend/app/routes/attendance_justifications.py - Timetables
backend/app/routes/schedules.py
Learning workflows
- Grades and exams
backend/app/routes/grades.py - Homework
backend/app/routes/homework.py - Submissions
backend/app/routes/submissions.py - Remarks
backend/app/routes/remarks.py
API and persistence
- Role dashboards
backend/app/routes/dashboard.py - Reports and exports
backend/app/routes/reports.py - Import and export
backend/app/routes/data_io - Search
backend/app/routes/search.py - School settings
backend/app/routes/school_settings.py - Communication
backend/app/routes/emails.py - Notifications
backend/app/routes/notifications.py - Audit logs
backend/app/routes/audit.py - FastAPI app
backend/app/main.py - Domain models
backend/app/models - DB sessions
backend/app/core/database.py - Relational database
Other components
- Student
- Teacher
- Administrator
Connections 43
- Student → Role dashboards: uses portal
- Teacher → Role dashboards: uses portal
- Administrator → Role dashboards: uses portal
- Role dashboards → Login/session: routes login
- Login/session → Authentication: posts credentials
- Login/session → Role dashboards: sets session
- Role dashboards → API client: requests data
- API client → FastAPI app: sends HTTP
- FastAPI app → Authentication: dispatches
- FastAPI app → Users and roles: dispatches
- FastAPI app → Student records: dispatches
- FastAPI app → Teacher records: dispatches
- FastAPI app → Classes and subjects: dispatches
- FastAPI app → Attendance: dispatches
- FastAPI app → Absence justifications: dispatches
- FastAPI app → Timetables: dispatches
- FastAPI app → Grades and exams: dispatches
- FastAPI app → Homework: dispatches
- FastAPI app → Submissions: dispatches
- FastAPI app → Remarks: dispatches
- FastAPI app → Role dashboards: dispatches
- FastAPI app → Reports and exports: dispatches
- FastAPI app → Import and export: dispatches
- FastAPI app → Search: dispatches
- FastAPI app → School settings: dispatches
- FastAPI app → Communication: dispatches
- FastAPI app → Notifications: dispatches
- FastAPI app → Audit logs: dispatches
- Global search → API client: queries
- Search → Domain models: queries records
- Authentication → Domain models: reads/writes users
- Authentication → DB sessions: opens session
- Student records → DB sessions: opens session
- Teacher records → DB sessions: opens session
- Classes and subjects → DB sessions: opens session
- Attendance → DB sessions: opens session
- Timetables → DB sessions: opens session
- Grades and exams → DB sessions: opens session
- Homework → DB sessions: opens session
- Role dashboards → DB sessions: opens session
- Search → DB sessions: opens session
- DB sessions → Relational database: connects
- Domain models → Relational database: maps records