A full-stack web application that allows users to discover, track, and interact with movies. Built with React and Express.js, leveraging the TMDB API for movie data.
- User authentication (login/register)
- Browse popular and now playing movies
- Search functionality for finding specific movies
- Personal watchlist management
- Movie rating system
- Watch movie trailers directly on the site
- React
- React Router
- Sass scss
- Node.js
- Express.js
- MongoDB
- JWT Authentication
- Node.js (v16 or higher)
- MongoDB
- TMDB API Key
- Clone the repository
git clone https://github.com/yourusername/your-repo-name.git
cd your-repo-name
- Install backend dependencies
cd backend
npm install
- Create a
.env
file in the backend directory with the following variables:
MONGODB_USERNAME=your_mongodb_username
MONGODB_PASSWORD=your_mongodb_password
MONGODB_CLUSTER=your_cluster_name
MONGODB_DATABASE=your_database_name
JWT_SECRET_KEY=your_jwt_secret_key
JWT_REFRESH_KEY=your_jwt_refresh_key
TMDB_ACCESS_TOKEN=your_tmdb_access_token
PORT=3000
NODE_ENV=development
- Start the backend server
npm run dev
- Navigate to the frontend directory
cd frontend
- Install frontend dependencies
npm install
- Start the frontend development server
npm run dev
-
Make sure the Docker Engine is installed on your system
-
Create the
.env
file as described in the backend setup section -
Build and run the containers
docker-compose up --build
The application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
The backend includes comprehensive test coverage using Mocha and Chai.
To run the tests:
cd backend
npm test
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to the branch
- Create a new Pull Request
- TMDB API for providing movie data
- The project was made possible by the contributions of the following developers: