How ryannpy/yourdeadlines works
YourDeadline is a student academic-planning app: users manage semesters and courses, then track deadlines, schedules, attendance, and course files. Protected pages provide the workspace, with server actions representing mutations and Supabase providing authentication and persistence. The tree documents the feature areas, but most page and action implementations were not sampled, so their detailed call and storage links are omitted; the schedule page, forms, authentication flow, and middleware are connected only where source excerpts support the relationship.
Main entry points: page.tsx Schedule View · middleware.ts Route Guard · auth.ts Sign-out Action · client.ts Browser Client
Components 23
Access and Navigation
- Route Guard
src/middleware.ts - Session Refresh
src/lib/supabase/middleware.ts - Workspace Navigation
src/components/layout/Navigation.tsx - Sign-out Action
src/app/actions/auth.ts - Registration
src/app/register/page.tsx
Academic Planning
- Semester Management
src/app/(protected)/semesters/page.tsx - Course Management
src/app/(protected)/semesters/[id]/courses/page.tsx - Schedule View
src/app/(protected)/schedule/page.tsx - Schedule Editor
src/components/schedule/ScheduleForm.tsx - Schedule Actions
src/app/actions/schedules.ts - Recurrence Helpers
src/lib/schedule/recurrence.ts
Study Tracking
- Dashboard
src/app/(protected)/dashboard/page.tsx - Deadline Tracking
src/app/(protected)/deadlines/page.tsx - Deadline Actions
src/app/actions/deadlines.ts - Attendance Tracking
src/app/(protected)/attendance/page.tsx - Attendance Actions
src/app/actions/attendance.ts - Course Files
src/app/(protected)/files/page.tsx - File Editor
src/components/files/FileForm.tsx - File Actions
src/app/actions/files.ts
Backend Services
- Browser Client
src/lib/supabase/client.ts - Server Client
src/lib/supabase/server.ts - Supabase
Other components
- Student
Connections 10
- Student → Route Guard: requests
- Route Guard → Session Refresh: refreshes session
- Workspace Navigation → Sign-out Action: signs out
- Registration → Browser Client: creates client
- Browser Client → Supabase: authenticates
- Schedule View → Server Client: creates client
- Schedule View → Recurrence Helpers: uses dates
- Schedule Editor → Schedule Actions: creates or updates
- File Editor → File Actions: creates or updates
- Sign-out Action → Server Client: creates client