A local-first, Umineko-themed entry test & board exam preparation tracker for Pakistani students. Built with React 19, TanStack Router, and Tailwind CSS v4.
✨ Features · 📸 Screenshots · 🚀 Getting Started · 📖 Usage Guide · 🗺️ Roadmap · 🤝 Contributing
Track preparation for all major Pakistani university entry tests:
| Test | Institution |
|---|---|
| GIKI | Ghulam Ishaq Khan Institute |
| NUST | National University of Sciences & Technology |
| PIEAS | Pakistan Institute of Engineering & Applied Sciences |
| FAST-NU | FAST National University |
| Air | Air University |
| USAT | Undergraduate Studies Admission Test |
| SAT | Scholastic Assessment Test |
| IELTS | International English Language Testing System |
| TCAT | Taxila Competency Assessment Test (sometimes referred to as the UET Taxila Entry Test) |
Prepare for Federal Board (FBISE) intermediate exams across all major programs:
| Program | Subjects |
|---|---|
| Pre-Medical | Biology · Chemistry · Physics |
| Pre-Engineering | Mathematics · Chemistry · Physics |
| ICS (Physics) | Mathematics · Computer Science · Physics |
| ICS (Statistics) | Mathematics · Computer Science · Statistics |
Note: English, Urdu, and Pakistan Studies are included as compulsory subjects across all FBISE programs.
- Global daily goals — set targets like 200 MCQs, 4 study hours, review sessions, or past paper practice
- Per-subject goals — fine-tune targets for each individual subject
- All goals are fully customizable and persist locally
- Built-in Pomodoro timer with configurable work/break intervals
- Auto-logs study hours on completion — no manual entry needed
- Session history tracked per subject
- Streak tracking — maintain and visualize your daily study streak
- 14-day history view — see your progress over the past two weeks
- Visual charts powered by Recharts
- Umineko-inspired palette — golden amber, deep crimson, midnight blue, and regal purple
- Minimalist mode — clean black-and-white aesthetic
- Dark / Light mode — manual toggle in the header
- OS preference detection — follows your system theme by default
| Dashboard | Tests & Subjects | Pomodoro Timer |
|---|---|---|
![]() |
![]() |
![]() |
Before you begin, make sure you have the following installed:
| Tool | Version | Notes |
|---|---|---|
| Node.js | ≥ 20.x | Download — LTS recommended |
| npm | ≥ 10.x | Bundled with Node.js |
| Git | Any | Download |
Tip: Use nvm (Linux/macOS) or nvm-windows to manage Node versions easily.
1. Clone the repository
git clone https://github.com/cevique/Witchs-Ledger.git2. Navigate into the project folder
cd witchs-ledger3. Install dependencies
npm installThis will install all production and development dependencies, including React 19, TanStack Router, Radix UI, Tailwind CSS v4, and the full Vite toolchain. Expect around 300–500 MB in node_modules.
4. Start the development server
npm run devOpen your browser and go to http://localhost:5173 (or whichever port Vite picks). You're ready to study.
| Command | Description |
|---|---|
npm run dev |
Start the Vite development server with hot module replacement |
npm run build |
Production build (outputs to dist/) |
npm run build:dev |
Development build (useful for debugging bundled output) |
npm run preview |
Preview the production build locally |
npm run lint |
Run ESLint across the entire codebase |
npm run format |
Auto-format all files with Prettier |
| Layer | Technology |
|---|---|
| Framework | React 19 |
| Routing | TanStack Router v1 |
| Server State | TanStack Query v5 |
| Build Tool | Vite 7 |
| Styling | Tailwind CSS v4 |
| UI Primitives | Radix UI (full suite) |
| Charts | Recharts |
| Forms | React Hook Form + Zod |
| Icons | Lucide React |
| Date Utilities | date-fns |
| Notifications | Sonner |
| Language | TypeScript 5.8 |
| Deployment | Cloudflare Pages (via @cloudflare/vite-plugin) |
| Storage | Local-first (localStorage / IndexedDB) |
Go to Tests & Subjects → select all the entry tests or FBISE programs you're preparing for. Each selected test/subject gets its own goal and progress tracking.
Go to Goals → configure:
- Daily MCQ target (default: 200, fully changeable)
- Daily study hours (default: 4 hours)
- Review sessions
- Past Papers / Model Papers
You can set goals both globally and per-subject.
Either manually log your study sessions, or just run the Pomodoro timer — it auto-logs hours when a session completes.
The Dashboard shows your current streak and an overview of recent activity. The History page provides a full 14-day breakdown.
Use the theme switcher in the header to switch between the Umineko color palette, minimalist black/white, dark mode, or light mode. By default, the app respects your OS preference.
- Entry test selection (GIKI, NUST, PIEAS, TCAT, FAST-NU, Air, USAT, SAT, IELTS)
- FBISE board exam support with all compulsory subjects
- Global + per-subject daily goals (MCQs, hours, review, past papers)
- Pomodoro timer with auto-logging
- Streak tracking & 14-day history
- Umineko theme (gold/red/blue/purple) + minimalist B&W
- Dark / Light mode with OS preference detection
- Server-side auth — multi-user support with email/password login (coming soon)
- Cloud sync & cross-device support
- Study group / leaderboard features
- Notifications & reminders
- Mobile app (PWA)
- Export progress reports (PDF)
Contributions are warmly welcome! Whether it's a bug fix, new feature, or a typo in the docs — every PR matters.
Steps to contribute:
# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/cevique/Witchs-Ledger.git
# 3. Create a feature branch
git checkout -b feature/your-feature-name
# 4. Make your changes, then commit
git commit -m "feat: add your feature description"
# 5. Push and open a Pull Request
git push origin feature/your-feature-namePlease follow the existing code style (npm run lint and npm run format before committing).
If this tracker helped you get into your dream university, consider:
- Starring the repo — it genuinely helps with visibility ⭐
- Sharing it with other students preparing for entry tests
- Opening issues to report bugs or suggest features
- Submitting a PR to improve the codebase
If you'd like to support continued development:
This project is licensed under the AGPL v3.0 License — see the LICENSE file for details.
Forks MUST stay open. You are free to use, modify, and distribute this project, as long as attribution is maintained.
AGPL v3 closes the SaaS loophole. If someone runs this code as a web service, they must still publish source.
"Then I'll tell you something crucial. No matter how many times you repeat it, the future cannot be changed." — Beatrice, Umineko no Naku Koro ni
Made with ☕ and existential dread by a fellow Pakistani student.


