A full-stack study management platform for CAT (Common Admission Test) preparation. Plan daily sessions, track mock test performance, log errors, manage topics, and stay focused — all in one place.
- Daily Study Planning — Structured day-by-day tasks with time slots, topics, durations, and resource references
- Focus Mode — Distraction-free study interface with a built-in timer, problem tracking, and task notes
- Mock Test Tracker — Log scores, percentiles, and section-wise accuracy; visualize trends with charts
- Error Log — Capture mistakes by type (concept gap, calculation, silly, time pressure) and mark them resolved
- Progress Dashboard — Phase-based preparation tracking, topic completion rates, and monthly targets
- Calendar View — Monthly overview with per-day completion indicators and section breakdowns
- Topic Management — Track mastery and confidence levels across 60+ CAT topics
- Math Support — KaTeX rendering for LaTeX math expressions in notes and problems
- Carry Forward — Move incomplete tasks to a future date with one click
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 + shadcn/ui |
| Database | SQLite via Prisma ORM |
| Charts | Recharts |
| Math rendering | KaTeX + remark-math |
| Icons | Lucide React |
- Node.js 18+
- npm
# 1. Clone the repository
git clone https://github.com/athulrajhere/cat-study-planner.git
cd cat-study-planner
# 2. Install dependencies
npm install
# 3. Set up the environment
cp .env.example .envEdit .env and set:
DATABASE_URL="file:./dev.db"# 4. Set up the database
npx prisma migrate dev --name init
# 5. Seed with a sample study plan and topics
npm run seed
# 6. Start the development server
npm run devOpen http://localhost:3000 in your browser.
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
SQLite file path (e.g. file:./dev.db) |
Yes |
NEXT_PUBLIC_PRIVATE_ROUTES |
Set to true to enable private plan pages locally |
No |
cat-study-planner/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── api/ # 18 REST API endpoints
│ │ ├── calendar/ # Monthly calendar view
│ │ ├── day/[date]/ # Daily task management
│ │ ├── focus/[date]/ # Focus mode
│ │ ├── mocks/ # Mock test tracker
│ │ ├── progress/ # Analytics dashboard
│ │ ├── errors/ # Error log
│ │ └── topics/ # Topic progress
│ ├── components/ # React components (30+)
│ │ └── ui/ # shadcn/ui base components
│ └── lib/ # Prisma client, utilities, types
├── prisma/
│ ├── schema.prisma # Database schema (7 models)
│ └── seed.ts # Seed script for plans and topics
└── public/ # Static assets
Seven Prisma models power the app:
- DailyPlan — One record per study day
- DailyTask — Individual tasks within a plan (section, topic, time slot, completion)
- TaskNote — Markdown notes attached to tasks
- MockTest — Full mock test results with section-wise breakdown
- ErrorLog — Mistakes with type classification and lesson notes
- Problem — Problem/solution pairs linked to tasks
- TopicProgress — Mastery tracking with confidence scores
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run seed # Seed database with sample study plan and topics
npm run lint # Run ESLintThe seed script at prisma/seed.ts contains the full study plan. Edit it to match your own schedule, then re-run:
npm run seedEach task supports:
- Section (
quant/varc/lrdi) - Time slot, duration, topic, description
- Practice targets (problems, passages, sets)
- Resource reference (book, platform)
The app uses SQLite, making it best suited for local or self-hosted use. For production deployment:
- Set
DATABASE_URLin your hosting environment - Run
npx prisma migrate deployon first deploy - Build with
npm run build
Note: SQLite is not recommended for multi-user hosted deployments. Consider switching to PostgreSQL via the Prisma schema if needed.
MIT


