Plan your prep, track every subtopic, schedule study blocks, and clock the hours — all in one calm, glassy Mac app.
CATalyst is a focused, offline‑first desktop app for people preparing for India’s MBA entrance exams (CAT and XAT). It turns a huge, intimidating syllabus into something you can actually work through: a readiness score you can watch climb, a daily task list, a weekly planner, and a built‑in study timer that logs every session.
No accounts, no cloud, no distractions — just your prep, stored locally on your Mac with SwiftData.
Your morning at a glance — a rotating motivational quote, today’s tasks, your study streak, per‑section readiness, and overall progress across the full syllabus.
Every section (VARC, DILR, QA, and XAT‑specific Decision Making) broken down into topics and subtopics. Mark subtopics as mastered and watch each section’s readiness update live.
A clean daily task list with a quick‑add field and a progress ring. Add a task in one line, or open the detailed editor for notes, sections, and scheduling.
A weekly planner. Drop study blocks onto any day, jump between weeks, and build a recurring routine that generates blocks for you.
Every study session you clock with the Punch Clock timer, laid out on a dated timeline — your honest record of hours put in.
- Readiness scoring — overall and per‑section (VARC · DILR · QA · Decision Making), computed from the subtopics you’ve mastered out of the full 72‑subtopic syllabus.
- Exam filter — flip the whole app between All · CAT · XAT so you only see what matters for your target exam.
- Today view — quick‑add tasks inline, or open a full editor. A ring shows how much of today you’ve cleared.
- Syllabus tracker — drill into any section → topic → subtopic and mark mastery; progress ripples up to the dashboard.
- Weekly schedule — plan study blocks per day, navigate week to week, and use the recurring planner to auto‑generate a routine.
- Punch Clock — a study timer that lives in the sidebar; punch in to start a session, punch out and it lands in your Activity log.
- Activity timeline — a dated history of every session, with durations and totals.
- Native glass design — built for the latest macOS with a dark, translucent, distraction‑free aesthetic and subtle haptics.
- 100% local & private — all data lives on‑device via SwiftData. No sign‑in, no network, no telemetry.
Most aspirants juggle prep across spreadsheets, sticky notes, and generic to‑do apps. CATalyst is purpose‑built around the CAT/XAT syllabus:
- The syllabus is pre‑seeded — you don’t set up sections and topics, you just start tracking.
- Progress is measurable — “readiness %” beats a vague feeling of being behind.
- Effort is logged automatically — the Punch Clock turns study time into a visible streak.
| Area | Choice |
|---|---|
| Language | Swift 6.2 |
| UI | SwiftUI (NavigationSplitView, custom glass components) |
| Persistence | SwiftData (ModelContainer, on‑device) |
| Platform | macOS 26+ |
| Packaging | Swift Package Manager executable → .app bundle |
Prerequisites: macOS 26+ and Xcode 26+ (Swift 6.2 toolchain).
# clone
git clone https://github.com/romeet9/CATalyst.git
cd CATalyst
# build & run the app bundle (kills old instances, packages, relaunches)
./Scripts/compile_and_run.sh
# …or just build the binary with SwiftPM
swift build -c releaseTo produce a distributable .app:
./Scripts/package_app.sh releaseThe bundle is written to CATalyst.app in the project root.
Sources/CATalyst/
├─ CATalystApp.swift # @main App, SwiftData ModelContainer + seeding
├─ Shared/ # RootView (split nav), Theme, PunchClock, glass UI, rings
├─ Models/ # SwiftData models (see below) + ExamFilter, enums
├─ Persistence/ # SyllabusSeed (pre-seeded syllabus), Maintenance
└─ Features/
├─ Dashboard/ # greeting, quote, streak, readiness cards
├─ Today/ # task list, quick-add, task editor
├─ Syllabus/ # section → topic → subtopic mastery
├─ Schedule/ # weekly planner, block + recurring editors
└─ Activity/ # study-session timeline
Scripts/ # compile_and_run, package_app, launch, make_icon
CATalyst persists everything locally through SwiftData:
| Model | Represents |
|---|---|
ExamSection |
A top‑level section (VARC, DILR, QA, Decision Making) |
Topic / Subtopic |
The syllabus tree under each section, with mastery flags |
StudyTask |
A to‑do item (daily or scheduled) |
ScheduledBlock |
A planned study block on the weekly calendar |
StudySession |
A logged Punch Clock session (start, end, duration) |
PatternEntry |
Study‑pattern data behind streaks and stats |
On first launch the syllabus is seeded automatically, so the app is useful the moment it opens.
🤖 Built with Claude Code




