AI Study Buddy
AI-first · React + Node (Express) · 19 @molecule/* packages
Personalized AI tutoring with quiz generation, RAG-powered explanations, and study progress tracking — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (19)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - StudySession
/study/:id(signed in) - Flashcards
/flashcards(signed in) - Quiz
/quiz/:id(signed in) - Courses
/courses(signed in) - Settings
/settings(signed in) - CourseDetail
/courses/:id(signed in) - DeckDetail
/flashcards/:id(signed in) - QuizResults
/quiz/:id/results(signed in) - Progress
/progress(signed in) - Profile
/profile(signed in) - Notifications
/notifications(signed in) - Billing
/billing(signed in) - Search
/search(signed in)
Data model (13 tables)
- ai_chat_messages — id, session_id, user_id, sender, text, citations, created_at
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- flashcard_decks — id, user_id, topic_id, name, description, card_count, last_reviewed_at, created_at, …
- flashcard_reviews — id, flashcard_id, user_id, rating, reviewed_at
- flashcards — id, deck_id, user_id, front_md, back_md, hint, ease_factor, interval_days, …
- notifications — id, user_id, type, title, body, href, unread, created_at
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- quiz_attempts — id, quiz_id, user_id, score, correct_count, total_count, answers, created_at
- quiz_questions — id, quiz_id, position, question, options, correct_index, explanation, created_at
- quizzes — id, user_id, topic_id, title, difficulty, question_count, best_score, attempt_count, …
- study_materials — id, topic_id, user_id, title, content, material_type, source_ref, embedding_status, …
- study_sessions — id, user_id, topic_id, session_type, question, answer, cards_reviewed, ai_messages_count, …
- topics — id, user_id, title, description, subject, color, material_count, mastery_score, …
API (9 handlers)
- billing
api/src/handlers/billing.ts - dashboard
api/src/handlers/dashboard.ts - decks
api/src/handlers/decks.ts - notifications
api/src/handlers/notifications.ts - profile
api/src/handlers/profile.ts - progress
api/src/handlers/progress.ts - quizzes
api/src/handlers/quizzes.ts - search
api/src/handlers/search.ts - topics
api/src/handlers/topics.ts
Subscription tiers
free / pro / team — gated by: maxQuizzes, maxTopics, advancedFeatures, canExport, retentionDays
Built from 19 @molecule/* packages
@molecule/api-ai-agents@molecule/api-ai-agents-llm@molecule/api-ai-anthropic@molecule/api-ai-embeddings-openai@molecule/api-ai-rag@molecule/api-ai-rag-llm@molecule/api-ai-vector-store-pgvector@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-resource-payment@molecule/api-resource-user@molecule/app-ai-assistant@molecule/app-billing-react@molecule/app-kpi-card-react@molecule/app-markdown@molecule/app-stepper
Required secrets
DATABASE_URLPostgreSQL connection stringANTHROPIC_API_KEYAnthropic API key for Claude tutoring and quiz generationOPENAI_API_KEYOpenAI API key for embeddings and RAG indexing
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing