← The shelf
Case study 03 · In progress

My World

Track & Finish

A web app for keeping everything you read, watch and play on one shelf: books, manga, anime, TV series, movies and games. It reminds you when the next part of a series comes out.

Role
Solo: product, design, development
Stack
Next.js, TypeScript, Tailwind, FastAPI, PostgreSQL
Focus
Security and data
Right now
15 OctSet up Alembic and create users table
15 OctAdd database connection and DB health check
15 OctAdd database settings with SecretStr

Latest commits from GitHub · updated when I push

Fig. 1 · Work in progress. Real screens will go here once there are some.
[ 01 ]

Why I'm building it

I kept losing track of unfinished series, and release dates I'd seen online were gone by the time they mattered. Existing trackers each cover one type of media, or treat everything like a plain list.

I wanted one place that feels like a real bookshelf and helps you actually finish what you start.

[ 02 ]

What it will do

  • Shelf, grid and list views with cover art pulled from public databases.
  • Statuses, progress, ratings, tags and custom shelves.
  • Automatic release checks for ongoing series, with email and push reminders.
  • A spin wheel and a mood-based picker for choosing what's next.
  • Installable on your phone as a web app (PWA).
[ 03 ]

Focus areas

Besides the app itself, this project is where I practise the two areas I want to grow in.

Security

Threat modelA written threat model for the app.
AuthenticationModern authentication: Argon2 password hashing and rotating refresh tokens in secure cookies.
Abuse protectionRate limiting, and access-control tests.
ChecksSecurity scanning in CI, and an OWASP ZAP report.

Data

An event-tracking model behind three dashboards, plus a SQL and pandas case study.

Personal statsReading, watching and playing stats for the user.
Product analyticsHow the app is used.
Security monitoringWhat the app sees when someone tries something they should not.

Hollow dots mean planned, not built yet.

[ 04 ]

Stack

FrontendNext.js, TypeScript, Tailwind
BackendFastAPI, SQLAlchemy, Alembic
DatabasePostgreSQL (Neon)