How shawnstudio-org/spis-web works
SPIS Web is a Next.js frontend for managing students and turning mock-test reports into analysis, prescriptions, practice, and progress tracking. Users register or sign in, manage student profiles, submit reports, then review diagnosis and study guidance; the dashboard and plan settings provide account-level views. The README documents these capabilities, but most page implementations and the API client were not sampled, so links for those features reflect documented routes and visible API usage rather than inspected internal details.
Main entry points: api.js API client · diagnosis/page.js Diagnosis · auth-client.js Auth guard · students/page.js Student profiles
Components 20
Identity and account
- Sign in
src/app/login/page.js - Register
src/app/register/page.js - Auth guard
src/lib/auth-client.js - Plan settings
src/app/settings/plan/page.js
Student workspace
- Dashboard
src/app/dashboard/page.js - Student profiles
src/app/students/page.js
Learning insights
- Report entry
src/app/students/[id]/reports/new/page.js - Report history
src/app/students/[id]/reports/page.js - Diagnosis
src/app/students/[id]/diagnosis/page.js - Prescriptions
src/app/students/[id]/prescriptions/page.js - Daily practice
src/app/students/[id]/daily-practice/page.js - Progress tracking
src/app/students/[id]/progress/page.js - Study strategy
src/app/students/[id]/strategy/page.js - Advanced report
src/app/students/[id]/reports/new/advanced/page.js
App services
- API client
src/lib/api.js - Student context
src/lib/use-student-page.js - View models
src/lib/view-models.js - App shell
src/components/AppShell.jsx
Other components
- Parent or tutor
- SPIS Worker API
Connections 30
- Parent or tutor → Sign in: signs in
- Parent or tutor → Register: creates account
- Sign in → API client: authenticates
- Register → API client: registers
- Sign in → Auth guard: stores token
- Register → Auth guard: stores token
- Auth guard → API client: checks session
- Plan settings → API client: reads and updates
- Parent or tutor → Student profiles: manages students
- Student profiles → Auth guard: checks session
- Student profiles → API client: loads and edits
- Dashboard → API client: loads overview
- Parent or tutor → Report entry: submits report
- Report entry → Auth guard: checks session
- Report entry → API client: submits report
- Advanced report → API client: submits report
- Report history → API client: loads reports
- Diagnosis → Student context: loads student context
- Student context → Auth guard: checks session
- Diagnosis → API client: analyzes report
- Diagnosis → API client: generates prescription
- Diagnosis → API client: updates items
- Diagnosis → View models: normalizes results
- Prescriptions → API client: loads prescriptions
- Daily practice → API client: loads practice
- Progress tracking → API client: loads progress
- Study strategy → API client: loads strategy
- API client → SPIS Worker API: sends requests
- Student profiles → App shell: renders within
- Diagnosis → App shell: renders within