← All templates

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

Open in Molecule

What is inside

  • auth
  • ai-tutoring
  • quiz-generation
  • rag-search
  • study-progress
  • streak-tracking
  • subscriptions

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

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • ANTHROPIC_API_KEY Anthropic API key for Claude tutoring and quiz generation
  • OPENAI_API_KEY OpenAI 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