How codinghubindia/questfy works
Questfy is a gamified skill-development web app. A user enters through public pages, signs in or signs up, then reaches a protected dashboard to manage skills, generate and work through quests, and review progress or preferences. The React router in src/App.tsx owns route dispatch; useAuth coordinates authentication and profile setup through Supabase. The README documents Gemini quest generation and the Supabase-backed product capabilities, though the quest and settings implementation excerpts were not sampled, so those links are documentation-based.
Main entry points: App.tsx Route dispatcher · supabase.ts Supabase services · Dashboard.tsx Mission dashboard · Quests.tsx Quest management
Components 19
App and access
- Route dispatcher
src/App.tsx - Login and signup
src/pages/Login.tsx - Auth callback
src/pages/AuthCallback.tsx - Auth state
src/hooks/useAuth.ts - Landing page
src/pages/Home.tsx
Learning experience
- Dashboard shell
src/components/layout/DashboardLayout.tsx - Mission dashboard
src/pages/dashboard/Dashboard.tsx - Skill matrix
src/pages/dashboard/Skills.tsx - Quest management
src/pages/dashboard/Quests.tsx - Progress analytics
src/pages/dashboard/Progress.tsx - Profile settings
src/pages/dashboard/Settings.tsx
Backend services
- Supabase services
src/services/supabase.ts - Questfy data
supabase/migrations - Gemini AI
Shared interface
- Quest card
src/components/ui/QuestCard.tsx - Loading screen
src/components/ui/Loading.tsx - Button primitive
src/components/ui/Button.tsx - Card primitive
src/components/ui/Card.tsx
Other components
- Learner
Connections 23
- Learner → Route dispatcher: opens app
- Route dispatcher → Login and signup: routes unauthenticated
src/App.tsx - Route dispatcher → Landing page: routes public
src/App.tsx - Route dispatcher → Auth callback: routes callback
src/App.tsx - Route dispatcher → Dashboard shell: protects dashboard
src/App.tsx - Route dispatcher → Mission dashboard: routes dashboard
src/App.tsx - Route dispatcher → Skill matrix: routes skills
src/App.tsx - Route dispatcher → Quest management: routes quests
src/App.tsx - Route dispatcher → Progress analytics: routes progress
src/App.tsx - Route dispatcher → Profile settings: routes settings
src/App.tsx - Route dispatcher → Auth state: checks auth
src/App.tsx - Route dispatcher → Loading screen: renders loading
src/App.tsx - Auth state → Supabase services: calls auth and profile
src/hooks/useAuth.ts - Mission dashboard → Supabase services: loads dashboard data
src/pages/dashboard/Dashboard.tsx - Supabase services → Questfy data: reads and writes
README.md - Quest management → Gemini AI: requests quest generation
README.md - Quest management → Supabase services: manages quest records
README.md - Skill matrix → Supabase services: stores skill progress
README.md - Progress analytics → Supabase services: reads progress history
README.md - Profile settings → Supabase services: manages preferences
README.md - Quest management → Quest card: renders quests
src/components/ui/QuestCard.tsx - Mission dashboard → Card primitive: uses cards
src/pages/dashboard/Dashboard.tsx - Mission dashboard → Button primitive: uses actions
src/pages/dashboard/Dashboard.tsx