"Letterboxd Clone" is a web application built using MongoDB, Express, Node.js, and EJS with API integration through Axios, specifically utilizing TMDb (The Movie Database) API. The project aims to replicate the features of the popular movie review website, Letterboxd. Users can create accounts, search for movies, add movies to their personal watchlists, rate and review movies, and interact with other users through a comment system. The application utilizes TMDb's RESTful API to retrieve and display movie data, making it easy to keep the site updated with the latest movie releases. The code is designed to be modular and extensible, making it easy for other developers to contribute and add new features.
I want to clarify that this project is solely for educational purposes and I don't intend to launch the website as a live platform. I respect the intellectual property of Letterboxd and its team and if they request for the repository to be taken down, I'll do it promptly.
These instructions will get you a copy of the project up and running on your local machine for the testing purpose.
- Clone the project from the Github repository by running the command:
git clone https://github.com/Sorracha-A/Letterboxd-Clone
-
Navigate to the project's root directory in your terminal.
-
Install all the necessary dependencies by running:
npm install
-
Start MongoDB on your local machine.
-
Create a
.env
file in the root directory of the project with the following environment variables.
PORT=your-port-number
MONGODB_URI=mongodb://localhost:<port>/<db-name>
TMDB_API_KEY=your-api-key
SECRET=your-session-secret
You can get an API key by creating an account at https://www.themoviedb.org/documentation/api.
- After installation, to start the application, run:
npm start
- Open your web browser and navigate to
http://localhost:<port>
(port that you specified in the.env
) to access the application.
- User authentication: sign up, login. ✅
- Browse movies: view popular, now playing, upcoming, and top rated movies. ✅
- Search for movies: search by title. ✅
- Movie details: view movie information, cast, directors, reviews, and etc. ✅
- Review movies: rate movies and write reviews. (TBU) 🛠️
- Lists: create and manage movie lists. ✅
- User profile: view user's activity, statistics, and lists. (TBU) 🛠️
- Admin panel: manage movies, users, and reviews. (TBU) 🛠️
TMDb API - The Movie Database API for retrieving movie data
- MongoDB - A NoSQL document-oriented database
- Express - A web application framework for Node.js
- Node.js - A JavaScript runtime built on Chrome's V8 JavaScript engine
- EJS - A templating language for generating HTML markup with JavaScript
- Axios - A promise-based HTTP client for making API requests
Sorracha Aiemmeesri