Full stack movie database
The backend is written in Java using the Spring Boot framework and connects to the Postgres database using JDBCTemplate
. It's containerized in docker with docker-compose using the postgres image for the database and a custom image that runs the app.
The app is packed as a whole in one .war package, containing the backend and the frontend.
Frontend listens at /
Backend listens at /api/v1/
The frontend is written in React using Typescript.
The data comes from the publicly available IMDB datasets that, according to IMDB, are daily updated. The ETL process is: the app downloads the .gz files, extracts them, transforms and cleans them (removing errors) and upserts them into the database.
The user can search titles and persons, add titles to watched/watchlist and rate them.
Searching is implemented using the tsvector
and tsquery
capabilities of Postgres.
Movie Database Schema: