Conquer

A study tracker that plays like a retro RPG

Inspiration

I wanted studying to feel less like a chore and more like a game. There is a particular retro, whimsical charm to the games I grew up with, and building Conquer was my way of chasing that feeling. It takes me straight back to my childhood, sitting for hours with Pokémon games with my brother, grinding levels and feeling genuinely rewarded for the time I put in. I asked myself: what if preparing for an exam felt like that? What if every hour of studying leveled you up, and every exam was a boss you set out to conquer?

What it does

Conquer is a study tracker that turns exam prep into a game you actually want to play. Every exam is something you set out to conquer.

  • Level up with XP. Gather experience points as you study and watch your character climb from Novice all the way to Legend.
  • Study with intention. A focus timer lets you sit down and study deliberately, with your progress shown visually as you go.
  • See your syllabus and your time. Break your syllabus into subjects, topics, and subtopics, and review how much time you have spent each day.
  • Count down to exam day. Set exam dates and watch the countdown every single day so the goal always stays in sight.
  • Make it yours. Switch between fun color themes and read motivational quotes to keep the momentum going.

How we built it

I built Conquer incrementally, one feature at a time, treating each piece as a small playable slice before moving on to the next. I started with the core loop: tracking study sessions and turning them into progress, and layered on the syllabus planner, the timer, exam countdowns, theming, and the leveling system from there.

The look and feel. The whole app leans into a pixel-art, retro-game aesthetic. I built a small library of reusable "pixel" UI pieces - buttons, cards, fonts, progress bars, characters - so every screen feels like it belongs in the same game world. Progress bars fill in visible segments, characters level up, and the color themes let the player reskin their world.

The tech stack.

  • React 18 for the UI, with Vite as the build tool and dev server for fast iteration.
  • Zustand for lightweight, predictable state management.
  • Firebase for authentication and cloud data persistence, so your progress follows you.
  • date-fns for streaks, daily logs, and exam countdowns, and dnd-kit for drag-and-drop reordering of study topics.
  • Hand-written CSS for the pixel-art styling - no heavy UI framework.

Deployment. I chose to deploy through GitHub using GitHub Actions and GitHub Pages. Every change I push is automatically built and deployed, which meant I could ship improvements to my testers quickly and keep a single, always-live version of the app.

Challenges I ran into

Email sign-up was the biggest challenge, as I had never built before, and getting the full flow right (sign-up, login, clear error messages) took real work to get solid.

The other constant challenge was making it user-friendly. Conquer has to walk a fine line: it needs to be intuitive and fun like a game, but it also has to track studies accurately and seriously. Balancing that playfulness with genuine usefulness - so that it never felt like a toy or a spreadsheet - shaped almost every design decision I made.

One concrete example: early on, it was easy to start a study session, get pulled away, and leave the timer running - so the tracked time no longer reflected what you had actually studied. Rather than let that quietly corrupt a player's progress, I made study session timings editable after the fact, so anyone can correct a session they forgot to stop. It was a small feature that made the whole tool feel far more trustworthy, and it pointed directly to a future fix: a pop-out timer that stays visible so the session is harder to forget in the first place.

Accomplishments that I'm proud of

I am most proud that Conquer actually helped a real person. I originally built it for a friend who loves games but struggles to plan his studies without feeling overwhelmed. Watching this tool help him prepare for his exam in a genuine, tangible way was by far the most satisfying part of the whole project.

To get there, I ran multiple rounds of user studies with my friends, gathering feedback and iterating until I landed on this design. Every design decision - the way the syllabus is structured, the way the timer shows progress visually, the color themes, the characters - was made the way you would design a game: to make people want to keep coming back. Reaching a design that people genuinely enjoyed using is the accomplishment I am proudest of.

What I learned

I learned how to build a web app that is genuinely maintainable.

Using GitHub Actions taught me the value of automation - any future change I make is automatically built and deployed, so the live app stays in sync without manual steps and I can keep improving it with confidence.

I also learned to structure a codebase for the long term. I organized the project by feature domain - authentication, home dashboard, planner, study timer, and settings each live in their own area - on top of a shared library of reusable UI components. Cross-cutting logic is separated out into dedicated layers: constants for things like levels, colors, and quotes; hooks for reusable behavior; utils for progress and quest calculations; and a central store for state. This separation means each feature can grow independently, shared pieces are written once and reused everywhere, and finding (or fixing) anything is straightforward — which is exactly what keeps a project like this maintainable over time.

What's next for Conquer

  • Calendar integration and automatic reminders. Connect to calendar APIs to schedule study sessions and automatically remind players when it is time to sit down and study, so exam prep fits naturally into their day.
  • Stronger account security. Add password recovery and email verification to make signing up and managing an account more robust and trustworthy.
  • A pop-out timer. A dedicated pop-out screen for the study timer so it always stays visible — a direct response to the times we left a session running and forgot about it. We already softened this by letting users edit study session timings after the fact, and the pop-out is the next step in making the timer foolproof.
  • More game mechanics. Achievements, daily quests, and streak rewards to deepen the loop.
  • Deeper insights. Richer analytics on study time, pace, and syllabus coverage so players can see how they are trending toward exam day.

Built With

Share this project:

Updates

Submission history