How srisaidhakshini/wave works
Wave is a student task manager whose main workflow is to sign in, plan and organize deadline-driven tasks, then work through task-linked Pomodoro sessions and review progress. The client-side store coordinates task, category, session, settings, timer, and reminder state; the pages and shared shell expose the task list, board, calendar, focus, categories, and analytics. The README documents browser-local demo persistence and optional Supabase authentication, database sync, and realtime updates. Several feature-page implementations were not sampled, so their links rely on README documentation rather than inspected source.
Main entry points: store.tsx App state and timer · Shell.tsx App shell · login/page.tsx Sign in · tasks/page.tsx Task list
Components 26
App experience
- Sign in
app/login/page.tsx - App shell
components/Shell.tsx - Context panel
components/ContextPanel.tsx - Settings and export
app/app/settings/page.tsx
Task planning
- Task list
app/app/tasks/page.tsx - Task editor
components/TaskForm.tsx - Task card
components/TaskCard.tsx - Kanban board
app/app/board/page.tsx - Calendar view
app/app/calendar/page.tsx - Categories
app/app/categories/page.tsx
Focus and insights
- Dashboard
app/app/page.tsx - Focus page
app/app/focus/page.tsx - Focus dialog
components/FocusDialog.tsx - Analytics
app/app/analytics/page.tsx - Charts
components/Charts.tsx
State and sync
- App state and timer
lib/store.tsx - Task and stats utilities
lib/utils.ts - Supabase sync
lib/db.ts
Browser and backend
- Browser storage
- Notifications and audio
- Service worker
public/sw.js - Supabase Auth
- Postgres with RLS
- Supabase Realtime
Other components
- Student
- Google OAuth
Connections 30
- Student → Sign in: signs in
README.md - Student → Task list: manages tasks
README.md - Sign in → App state and timer: requests sign-in
app/login/page.tsx - Sign in → Google OAuth: starts OAuth
README.md - App shell → Context panel: renders
components/Shell.tsx - App shell → Task editor: opens
components/Shell.tsx - Task list → App state and timer: reads and updates
app/app/tasks/page.tsx - Task list → Task card: renders
app/app/tasks/page.tsx - Task card → App state and timer: uses task state
components/TaskCard.tsx - Task editor → App state and timer: edits task state
components/TaskForm.tsx - Kanban board → App state and timer: reads and updates
app/app/board/page.tsx - Calendar view → App state and timer: reads task state
app/app/calendar/page.tsx - Categories → App state and timer: manages categories
app/app/categories/page.tsx - Dashboard → App state and timer: reads and updates
app/app/page.tsx - Dashboard → Charts: renders
app/app/page.tsx - Focus page → App state and timer: uses timer state
app/app/focus/page.tsx - Focus dialog → App state and timer: controls focus
components/FocusDialog.tsx - Analytics → App state and timer: reads task and session state
app/app/analytics/page.tsx - Analytics → Charts: renders
app/app/analytics/page.tsx - Settings and export → App state and timer: updates settings
app/app/settings/page.tsx - App state and timer → Task and stats utilities: uses helpers and seed data
lib/store.tsx - App state and timer → Supabase sync: loads and persists changes
lib/store.tsx - App state and timer → Browser storage: persists demo and timer
README.md - App state and timer → Notifications and audio: schedules reminders and alerts
README.md - App state and timer → Supabase Auth: uses session
README.md - Supabase sync → Postgres with RLS: loads and writes rows
README.md - Postgres with RLS → Supabase Realtime: publishes changes
README.md - Supabase Realtime → Supabase sync: triggers reload
README.md - Supabase Auth → Google OAuth: OAuth flow
README.md - App shell → Service worker: registers app worker