O'Books
Personal library platform evolved over 2 years — raw SQL API, session auth, public/private content, and 100+ automated tests.

Context
Long-running personal project, evolved over 3 phases across 2 years. Started during the DWWM certification, then migrated to TypeScript and added tests during the CDA, then the frontend was fully rebuilt with Next.js + shadcn/ui.
A web application for users to manage their personal book collection, organize and share their reading, and discover books from other users.
My role
Fullstack Developer
Sole developer from idea to production. The project demonstrates growth over time — from a first certification project to a fully typed, tested, and professionally structured application with real features.
What I built
Evolution
2024
DWWM certification
Full API with Express, Swagger documentation, session auth. First real project from concept to production.
2025
CDA certification
Migrated to TypeScript, replaced Joi with Zod, added 62 unit + 39 integration tests, Docker containerization.
2026
Frontend rebuild
Rebuilt the front-end with Next.js + shadcn/ui, continued back-end improvements, Biome for frontend linting.
Design
conception- Product designed from idea to MVP — sole developer across 3 phases over 2 years
- Wireframes & mockups before each phase
- Database schema modeled with Merise (MCD, MLD, MPD)
- Raw SQL data mapper pattern — no ORM, full query control
- Full TypeScript migration + Joi → Zod across both phases
Frontend
- Next.js 16 (App Router) + shadcn/ui + Tailwind CSS 4
- Biome 2 for linting, node:test — 8 test files
Backend
- Full API with raw SQL queries — data mapper pattern, no ORM
- Session auth — express-session + connect-pg-simple, HTTP-only cookie, 24h TTL
- Email verification on signup + token-based password reset (Nodemailer)
- Book visibility toggle (private/public) + like system for public discovery
- Admin panel — manage all users (roles) and all books across the platform
- bcrypt, sanitize-html, express-rate-limit, Winston + Morgan
- Complete Swagger UI documentation
DevOps
- Multi-stage Docker builds with a dedicated test DB container
- Deployed on VPS via Dokploy
- 62 unit + 39 integration tests — full HTTP against real PostgreSQL
- Husky hooks
Deployment
Deployed on VPS via Dokploy. Multi-stage Dockerfiles (Alpine, non-root user). Git push triggers auto-deploy on both services. Dedicated test DB container — integration tests always run against a real, isolated PostgreSQL instance.
Ongoing personal project. Shows growth over time — from a first certification project to a fully typed, tested, and professionally structured application.