kfich.dev
Back to blog

April 15, 2026 · 9 min read

Building the Checklists App — Methodology

ReactFastAPIPostgreSQLCase StudyDocker

This post walks through how I structured and built the Checklists engineering case study — the same story as the written project outline PDF below and on the project page.

Why a checklist builder

The brief called for a real product-shaped app: users needed to create reusable checklists with categories and items, attach files, save and clone templates, and share a checklist through a public link without exposing the whole account. That implied clear domain modeling, authenticated writes, and read-only or token-based reads for shared views.

Splitting the stack

I separated concerns the boring way: a React 18 + TypeScript SPA for UI state, forms, and uploads, and a FastAPI service for business rules, persistence, and auth. PostgreSQL holds the relational data (users, checklists, items, share tokens, file metadata). Docker Compose ties the API, database, and optional tooling together so the case study runs the same way on my machine and in review.

The API is the source of truth. The frontend talks over HTTP with JSON, and I relied on auto-generated OpenAPI / Swagger docs so the contract stayed visible — useful for both implementation order and review.

Modeling the domain

Checklists nest categories and items so templates stay organized. Cloning duplicates structure without forcing users to rebuild from scratch. Sharing generates a stable public identifier (and the right authorization path) so a link can render a checklist without logging in as the owner — while edits stay behind JWT-protected routes.

Files and limits

Attachments are part of the story: PDF, XLSX, TXT up to a 10MB cap. The methodology is to validate early (type + size), store blobs or paths according to your deployment choice, and persist metadata in Postgres so list views stay fast even when binaries live elsewhere.

Methodology in one line

Design the data model and API first, implement auth and CRUD, then uploads and public share flows, and keep the stack containerized so the case study is reproducible. The PDF outline goes deeper on structure and sequencing; the embedded copy matches the artifact on the Checklists project page.