Skip to content
Back to projects

Movies API Backend Project

An Express movies API with authentication, movies, reviews, watchlists, validation, and database-backed routes.

  • Back-End APIs
  • Node.js
  • Express
  • Sequelize
  • SQLite
  • API
  • REST API
  • Authentication

Project image carousel

Movies API

Image 1 of 3

Project Concept

A movie catalog API — registration and login, a publicly readable movie catalog with admin-only editing, per-movie ratings and reviews, and personal watchlists. There is no conventional frontend — visual exploration happens through a bundled Swagger UI.

What the Interface Shows

An overview of the Swagger API explorer with all endpoint groups (auth, movies, reviews, watchlist), an expanded registration endpoint, and a real executed registration request with the server’s actual response.

My Role and Decisions

The first major discovery was a tracked movies.sqlite file in the repository containing real password hashes — not placeholder data. I addressed it with the same full history-purge approach used before. The second decision was about API documentation: instead of hand-writing a separate OpenAPI spec (which tends to drift out of sync over time), I generated it from real annotations sitting directly above each route in the code, so the documentation can’t drift from reality. I also had to switch the base image from regular Debian to Trixie after discovering the native SQLite library needed a newer glibc version — far faster than cross-compiling the library from source for each architecture.

Technical Aspects

Express + Sequelize + SQLite (embedded within the same container, no separate database server), JWT authentication with native bcrypt, and admin authorization enforced server-side rather than trusting a client-controlled flag.

Project Value in the Portfolio

This project demonstrates properly handling leaked sensitive data, a sustainable API-documentation decision (generated from code, not maintained separately from it), and resolving a rare cross-architecture compatibility issue.

View more projects
View more services