O'Books

Fullstack Developer

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

Next.js 16Express 4PostgreSQL 17Raw SQLshadcn/uiDockernode:test
O'Books preview

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

v1

2024

DWWM certification

Full API with Express, Swagger documentation, session auth. First real project from concept to production.

v2

2025

CDA certification

Migrated to TypeScript, replaced Joi with Zod, added 62 unit + 39 integration tests, Docker containerization.

v3

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.