Skip to content

Study Plan

A learner picks a subject, chapters and a schedule. Kwilo generates a plan that orders and schedules the chapters across weeks, and each chapter becomes a readable lesson with a quiz.

Practice Hub is for doing. Study Plan is for planning a path through a syllabus.

Three levels

Route What the learner sees
/studyplan Their plans, with edit and archive. An empty state with a create button when there are none.
/studyplan/:planId Plan header and three tabs: Weekly (default), Syllabus (chapter states: done, current, generating, locked), Progress
/studyplan/:planId/lesson/:sequence The lesson: generated content blocks, an inline quiz that records progress, and a next-lesson link

Chapters generate in the background after the plan is created, so a new plan fills in over a few moments.

Create and edit

/studyplan/create reads subjects and class from learning preferences and asks only for what's plan-specific: subject, chapters (called "topics" in the UI), optional attachments and schedule.

Editing uses the same page with the subject locked. Saving rescopes and regenerates the plan in place.

Grounding

For classes 1 to 12, chapters come from indexed NCERT textbooks (824 chapters). A plan's layout is drafted from chapter structure, and each lesson is written from the full text of its chapter. If a chapter can't be grounded, the lesson is still generated, just without the textbook context.

Free and Pro

Plan Active plans at once
Free 1
Pro 3

"Active" means generating or ready. Archiving a plan frees the slot and keeps progress. Editing never counts against the cap. At the cap, the create page disables generation and explains why.

Where it lives

Learner code lives in MySetu-AI/kwiloai-b2c; paths below are relative to its apps/web/src and apps/backend/src.

  • Web: pages/b2c/StudyPlan/ (list, StudyPlanCreatePage, StudyPlanDetailPage, StudyPlanLessonPage)
  • API: api/v1/study_plan.py, api/v1/generated_study_plans.py
  • Backend: services/generated_study_plan.py