Skip to content

sinhaabhiraj0/UPSC-Tracker

Repository files navigation

UPSC 2026 Preparation App

A comprehensive UPSC preparation tracking application with REVISION MODE support, built for multiple users.

Features

Multi-User Support

  • Two default users: Abhiraj and Ajay
  • Add new users dynamically
  • Individual progress tracking for each user
  • User-specific stats and accountability

Current Features (v1.0)

  • User selection homepage with profile cards
  • Dashboard with exam countdowns:
    • Prelims: May 24, 2026
    • Mains: August 20, 2026
  • Phase indicator (6 phases from Foundation to Mains Final)
  • Quick stats display:
    • Today's study hours
    • Weekly progress
    • Topics completed (out of 642 total)
    • Study streak counter

Complete Syllabus Coverage

  • MATHS Optional: 218 topics
    • Paper I: 118 topics (Linear Algebra, Calculus, ODE, PDE, Statics, Dynamics, etc.)
    • Paper II: 100 topics (Abstract Algebra, Real Analysis, Complex Analysis, etc.)
  • GS Subjects: 424 topics
    • Geography: 82 topics
    • History: 104 topics
    • Polity: 89 topics
    • Economy: 74 topics
    • Environment: 43 topics
    • Science & Tech: 17 topics
    • Ethics (GS4): 15 topics

Upcoming Features

  • Flexible subject selector (choose MATHS or GS topics daily)
  • Library schedule time block tracker (10 AM - 6:30 PM weekdays)
  • MATHS Optional topic-wise tracker with problem-solving counter
  • GS subjects topic-wise tracker with answer writing integration
  • Daily accountability & streak system
  • Answer writing log
  • Mock test scheduler
  • Progress analytics with charts
  • Weekly/monthly reviews

Tech Stack

Backend

  • Express.js with TypeScript
  • SQLite database (better-sqlite3)
  • Excel file import (ExcelJS)
  • RESTful API

Frontend

  • React 18 with TypeScript
  • Vite (fast dev server)
  • TailwindCSS (styling)
  • Lucide React (icons)
  • date-fns (date handling)
  • Axios (HTTP client)
  • Zustand (state management - planned)
  • Recharts (analytics - planned)

Setup Instructions

Prerequisites

  • Node.js (v18 or higher)
  • npm

Installation

  1. Navigate to project directory:

    cd /Users/abhiraj/Documents/upsc-prep-app
  2. Backend Setup:

    cd backend
    npm install
    npm run dev

    The backend will:

    • Initialize SQLite database
    • Import 642 topics from Excel file
    • Start server on http://localhost:3000
  3. Frontend Setup (in a new terminal):

    cd frontend
    npm install
    npm run dev

    The frontend will start on http://localhost:5173

  4. Open the app:

    • Navigate to http://localhost:5173 in your browser
    • Select your user (Abhiraj or Ajay) or create a new user
    • Start tracking your UPSC preparation!

Project Structure

upsc-prep-app/
├── backend/
│   ├── src/
│   │   ├── config/
│   │   │   └── database.ts          # SQLite setup & schema
│   │   ├── controllers/
│   │   │   └── users.controller.ts  # User API logic
│   │   ├── routes/
│   │   │   └── users.routes.ts      # API routes
│   │   ├── services/
│   │   │   └── excel-import.service.ts  # Import topics
│   │   └── index.ts                 # Express server
│   ├── package.json
│   └── tsconfig.json
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── UserSelection.tsx    # User selection page
│   │   │   └── Dashboard.tsx        # Main dashboard
│   │   ├── services/
│   │   │   └── api.ts               # API client
│   │   ├── types/
│   │   │   └── index.ts             # TypeScript types
│   │   ├── App.tsx                  # Main app component
│   │   ├── main.tsx                 # Entry point
│   │   └── index.css                # Global styles
│   ├── package.json
│   ├── vite.config.ts
│   └── tailwind.config.js
└── README.md

Database Schema

The app uses SQLite with the following key tables:

  • users: Multi-user support (id, name, color_code, last_active)
  • subjects: 9 subjects (MATHS Paper I/II, Geography, History, etc.)
  • topics: 642 topics imported from Excel
  • topic_progress: Per-user progress tracking
  • time_blocks: Library schedule (weekday/weekend)
  • daily_accountability: Daily check-ins and streaks
  • answer_writing_log: Answer practice tracking
  • mock_tests: Test scheduling and results
  • current_affairs: Daily CA tracking
  • weekly_reviews: Weekly reflection

API Endpoints

Users

  • GET /api/users - Get all users
  • GET /api/users/:id - Get user by ID
  • GET /api/users/:id/stats - Get user statistics
  • POST /api/users - Create new user
  • PUT /api/users/:id/activity - Update last active
  • DELETE /api/users/:id - Delete user

More endpoints will be added as features are implemented.

Usage

User Selection

  1. On first launch, you'll see the user selection screen
  2. Click on Abhiraj or Ajay to continue, or create a new user
  3. Each user has individual stats displayed:
    • Current streak
    • Topics started
    • Week hours
    • Monthly answers

Dashboard

  • View days remaining until Prelims and Mains
  • See current preparation phase
  • Track today's study hours
  • Monitor weekly progress
  • View topics completed (out of 642)
  • Check current streak

Switching Users

  • Click "Switch User" button in dashboard to return to user selection

REVISION MODE Advantage

This app is optimized for REVISION MODE - for those who have previously studied the subjects:

  • 3-4x faster than first-time learning
  • Focus on speed over perfection
  • Problem-solving focus (30-40 problems per MATHS topic)
  • Answer writing practice from day one
  • Smart recommendations based on revision status
  • Phase-wise progression optimized for revision

Exam Dates

  • Prelims 2026: May 24, 2026
  • Mains 2026: August 20, 2026

Target Scores

  • Prelims: 100-110 / 200 (Cut-off: ~95-100)
  • MATHS Mains: 380-420 / 500
  • GS Mains: 450-500 / 1000
  • Overall Mains: 850-930 / 1400

Development

Backend

cd backend
npm run dev  # Development with auto-reload
npm run build  # Build TypeScript
npm start  # Production

Frontend

cd frontend
npm run dev  # Development server
npm run build  # Production build
npm run preview  # Preview production build

Contributing

This is a personal project for UPSC preparation. Feel free to adapt it for your own use!

License

MIT

Notes

  • The app automatically imports topics from UPSC_COMPLETE_Syllabus_Coverage_final.xlsx on first run
  • Database file is created at backend/upsc_prep.db
  • User selections are saved in browser localStorage
  • All study data is stored locally in SQLite

Good luck with your UPSC 2026 preparation! 🎯📚

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages