Study Buddy v2 is a Next.js learning platform for exam preparation. It combines practice questions, mock exams, progress tracking, AI-assisted study support, subscriptions, and school/admin workflows in a single app.
- Next.js 16 App Router
- React 18
- TypeScript
- Tailwind CSS
- Prisma + PostgreSQL
- Supabase Auth
- OpenAI API
- Study materials: subject/topic browsing and topic-level practice drills
- Past questions: answer submission, grading, and explanations
- Mock exams: start, save progress, submit, and grade full exam instances
- Progress: subject progress, practice accuracy, and exam history
- AI: quick chat, saved AI question threads, and study recommendations
- Accounts and billing: auth, profile, subscriptions, and payments
- Admin and schools: content upload, user lookup, and school membership management
study-buddy-v2/
├── app/ # Pages and API routes
├── components/ # Shared UI components
├── lib/ # Auth, Prisma, Supabase, and feature helpers
├── prisma/ # Schema, migrations, and seed data
├── docs/ # Supporting documentation
└── public/ # Static assets
/landing page/dashboard/materials/materials/practice/[topicId]/exams/exams/[instanceId]/progress/chat- auth pages under
/login,/sign-up,/forgot-password,/reset-password/update
All app APIs live under app/api/v1.
Main domains:
- auth and account
- profile
- schools
- AI
- past questions
- mock exams
- progress
- subscriptions
- payments
- admin content
See app/api/v1/README.md for the route-level reference.
The schema is defined in prisma/schema.prisma.
Key models:
User,UserProfile,AdminUserSubject,Topic,PastQuestionPastQuestionAttemptMockExamTemplate,MockExamInstance,MockExamAnswerAiQuestion,AiQuestionMessage,RecommendationProgressTrackSubscription,TransactionSchool,SchoolStudent
Install dependencies:
npm installRun the app:
npm run devApply migrations:
npx prisma migrate deployGenerate Prisma client if the schema has changed:
npx prisma generateSeed the database:
npx prisma db seedThe app expects environment variables for:
- Supabase URL and anon key
- database connection strings
- OpenAI API key
- payment provider secrets
- optional cron secret for recommendation generation
CODEBASE_BREAKDOWN.md: broad codebase mapdocs/WEBSITE_GUIDE.md: path-by-path app walkthroughAI_FEATURES_GUIDE.md: AI-specific implementation notesapp/api/v1/README.md: API contracts