How namtrungdn310/tpro-classio works
TPRO Classio is an operations platform for an English-language learning centre. Staff use its dashboard to manage students and enrollments, classes and teaching schedules, attendance, fees and payments, then review operational and financial history. The frontend sends requests through a same-origin proxy to the FastAPI backend; backend services implement domain operations against PostgreSQL. Authentication, role controls, and external Google and Pay2S integrations are distinct supporting capabilities. The README documents broad capabilities; sampled excerpts are partial, so detailed wiring between several backend subsystems is not established here.
Main entry points: main.py FastAPI application · api API clients · services Domain services · route.ts Session proxy
Components 26
Staff workspace
- Dashboard
frontend/src/app/(dashboard)/page.tsx - Student management
frontend/src/app/(dashboard)/students/page.tsx - Class management
frontend/src/app/(dashboard)/classes/page.tsx - Attendance
frontend/src/app/attendance/page.tsx - Fee management
frontend/src/app/(dashboard)/fees/page.tsx - Banking
frontend/src/app/(dashboard)/banking/page.tsx - Reports
frontend/src/app/(dashboard)/report/page.tsx - Staff management
frontend/src/app/(dashboard)/staff/page.tsx - API clients
frontend/src/lib/api - Session proxy
frontend/src/app/api/proxy/[...path]/route.ts
Learning operations
- Students and enrollment
backend/app/routers/students.py - Classes and schedule
backend/app/routers/classes.py - Attendance operations
backend/app/routers/attendance.py - Staff and payroll
backend/app/routers/staff.py
Finance operations
- Fees and payments
backend/app/routers/fees.py - Banking operations
backend/app/routers/banking.py - Payment webhook
backend/app/routers/pay2s_webhook.py - Reporting
backend/app/routers/reports.py
Backend platform
- Domain services
backend/app/services - FastAPI application
backend/app/main.py - PostgreSQL
backend/app/core/database.py
Identity and integrations
- Sign-in and setup
frontend/src/app/login/page.tsx - Authentication
backend/app/routers/auth
Other components
- Centre staff
- Google identity
- Pay2S
Connections 40
- Centre staff → Dashboard: uses
- Centre staff → Student management: manages
- Centre staff → Class management: manages
- Centre staff → Attendance: records
- Centre staff → Fee management: manages
- Centre staff → Banking: reviews
- Centre staff → Reports: reviews
- Centre staff → Staff management: manages
- Dashboard → API clients: requests data
- Student management → API clients: requests data
- Class management → API clients: requests data
- Attendance → API clients: requests data
- Fee management → API clients: requests data
- Banking → API clients: requests data
- Reports → API clients: requests data
- Staff management → API clients: requests data
- API clients → Session proxy: sends requests
- Session proxy → FastAPI application: forwards requests
- FastAPI application → Students and enrollment: dispatches
- FastAPI application → Classes and schedule: dispatches
- FastAPI application → Attendance operations: dispatches
- FastAPI application → Staff and payroll: dispatches
- FastAPI application → Fees and payments: dispatches
- FastAPI application → Banking operations: dispatches
- FastAPI application → Payment webhook: dispatches
- FastAPI application → Reporting: dispatches
- Students and enrollment → Domain services: uses
- Classes and schedule → Domain services: uses
- Attendance operations → Domain services: uses
- Staff and payroll → Domain services: uses
- Fees and payments → Domain services: uses
- Banking operations → Domain services: uses
- Reporting → Domain services: uses
- Domain services → PostgreSQL: reads and writes
- Centre staff → Sign-in and setup: signs in
- Sign-in and setup → Session proxy: starts session
- Session proxy → Authentication: forwards auth
- Authentication → Domain services: uses
- Authentication → Google identity: verifies identity
- Payment webhook → Pay2S: receives events