Skip to content

athulrajhere/cat-study-planner

Repository files navigation

CAT Study Planner

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.

Dashboard


Features

  • 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

Focus Mode

  • 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

Progress

  • 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

Tech Stack

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

Getting Started

Prerequisites

  • Node.js 18+
  • npm

Installation

# 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 .env

Edit .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 dev

Open http://localhost:3000 in your browser.

Environment Variables

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

Project Structure

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

Database Schema

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

Scripts

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 ESLint

Customising the Study Plan

The seed script at prisma/seed.ts contains the full study plan. Edit it to match your own schedule, then re-run:

npm run seed

Each task supports:

  • Section (quant / varc / lrdi)
  • Time slot, duration, topic, description
  • Practice targets (problems, passages, sets)
  • Resource reference (book, platform)

Deployment

The app uses SQLite, making it best suited for local or self-hosted use. For production deployment:

  1. Set DATABASE_URL in your hosting environment
  2. Run npx prisma migrate deploy on first deploy
  3. 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.

License

MIT

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages