How aryamaandash/track-my-studying works
Track My Studying is a personal study-journal web app. A user registers or signs in, records study sessions, then reviews progress in the dashboard; they can revise or remove entries and keep weekly reflections. The graph separates account access, study-record workflows, progress views, and shared infrastructure. PostgreSQL persistence, Redis-backed rate limiting, and the sampled session-data and authentication code are supported by the README and excerpts; several page/component connections are inferred from their product roles, so uncertain wiring is omitted.
Main entry points: actions.ts Study actions · auth.ts Auth services · prisma.ts Prisma client · page.tsx Study dashboard
Components 25
Accounts
- Login page
app/login/page.tsx - Register page
app/register/page.tsx - Auth endpoint
app/api/auth/[...nextauth]/route.ts - Auth services
auth.ts - Account settings
app/settings/page.tsx
Study journal
- Study dashboard
app/dashboard/page.tsx - Session entry form
components/StudyEntryForm.tsx - Study actions
app/actions.ts - Session history
app/remove-hours/page.tsx - Edit session
components/EditStudySessionButton.tsx - Remove session
components/RemoveStudySessionButton.tsx - Weekly reflections
app/weekly-reflection/page.tsx - Reflection form
components/WeeklyReflectionForm.tsx - Reflection actions
app/weekly-reflection/actions.ts
Progress views
- Study calendar
components/StudyCalendar.tsx - Calendar endpoint
app/api/study-sessions/calendar/route.ts - Study charts
components/StudyCharts.tsx - Chart endpoint
app/api/study-sessions/chart/route.ts - Study data cache
lib/study-cache.ts - Session aggregation
lib/study-session-data.ts
Shared infrastructure
- Prisma client
lib/prisma.ts - PostgreSQL
- Rate limiting
lib/rate-limit.ts - Upstash Redis
Other components
- Visitor
Connections 38
- Visitor → Login page: opens
- Visitor → Register page: opens
- Login page → Auth endpoint: submits credentials
- Register page → Study actions: creates account
- Auth endpoint → Auth services: dispatches
- Auth services → Prisma client: reads account
- Auth services → Rate limiting: checks attempts
- Visitor → Study dashboard: opens signed-in view
- Study dashboard → Auth services: checks session
- Study dashboard → Session entry form: presents entry
- Session entry form → Study actions: submits session
- Edit session → Study actions: updates session
- Remove session → Study actions: deletes session
- Session history → Auth services: checks session
- Session history → Prisma client: reads history
- Study actions → Auth services: checks session
- Study actions → Rate limiting: checks writes
- Study actions → Prisma client: writes records
- Study actions → Study data cache: invalidates study data
- Visitor → Weekly reflections: opens reflections
- Weekly reflections → Auth services: checks session
- Weekly reflections → Prisma client: reads reflections
- Weekly reflections → Reflection form: presents entries
- Reflection form → Reflection actions: submits reflection
- Reflection actions → Prisma client: persists reflection
- Study dashboard → Study calendar: shows calendar
- Study calendar → Calendar endpoint: requests month data
- Calendar endpoint → Auth services: checks session
- Calendar endpoint → Study data cache: gets calendar data
- Study dashboard → Study charts: shows progress
- Study charts → Chart endpoint: requests timeframe data
- Chart endpoint → Auth services: checks session
- Chart endpoint → Study data cache: gets chart data
- Study data cache → Session aggregation: loads aggregates
- Session aggregation → Prisma client: queries sessions
- Prisma client → PostgreSQL: reads and writes
- Rate limiting → Upstash Redis: checks counters
- Account settings → Study actions: requests account changes