I often browse curated movie lists such as The Criterion Collection, They Shoot Pictures, Don't They (TSPDT), and the AFI Top 100 Movies. Other than going to each specific website, popular platforms like IMDB and Letterboxd offer user-created and shared lists. However, they often fall short in the following aspects:
- Limited information: Movie details like genre, synopsis, director, and actors are often missing, requiring users to visit individual movie pages.
- No continuous scrolling: For extensive lists, navigating through hundreds of entries can be tedious and require manual pagination.
This project aims to address these limitations while providing a single hub for my favorite movie lists.
- Diverse movie lists: The platform incorporates popular curated lists like The Criterion Collection, TSPDT, AFI Top 100 Movies, and much more.
- Rich movie information: Within the list, each movie entry provides details like year, length, genre, production country, ratings, director, actors, and a synopsis. Data is initially retrieved from the OMDB API and stored in a PostgresSQL database.
- Continuous scrolling: Lists exceeding 100 movies offer continuous scrolling functionality, fetching additional entries in batches of 100.
- Search functionality: Users can search for movies by title, director, or actor through a dedicated search bar.
- User accounts: Registered users can create personalized watchlists and track their movie viewing history.
Frontend: Javascript, React, React-Redux, Axios, React-Router, Material UI.
Backend: NodeJS, Express, PostgresSQL, Sequelize, JSON Web Token, Bcrypt, Dotenv, GitHub Actions.
The application and its PostgresSQL database are hosted on Fly.io. A CI/CD pipeline is established using GitHub Actions, automatically deploying code updates upon commits to the project's GitHub repository.