MyMDB is a full-stack web application that allows movie enthusiasts to explore, search, and manage their favorite movies. Built using the MERN stack (MongoDB, Express.js, React, and Node.js), this application provides a rich user interface for interacting with movie data while maintaining user preferences and favorites.
- 🔍 Browse and search through a curated collection of movies
- 📋 View detailed information about movies, including descriptions, genres, and directors
- 👤 Create and manage user profiles
- ⭐ Save favorite movies to your personal list
- 📱 Responsive design that works on both desktop and mobile devices
- 🟢 Node.js
- ⚡ Express.js
- 🍃 MongoDB
- 🔷 Mongoose
- 🔑 JSON Web Token for authentication
- 🔄 CORS
- ✅ Express-validator
GET /movies
- Get all moviesGET /movies/:Title
- Get movie by titleGET /genres/:Name
- Get genre detailsGET /directors/:Name
- Get director details
POST /users
- User registrationPOST /login
- User authenticationPUT /users/:Username
- Update user infoPOST /users/:Username/movies/:MovieID
- Add favorite movieDELETE /users/:Username/movies/:MovieID
- Remove favorite movieDELETE /users/:Username
- Delete user account
- ⚛️ React
- 🎨 React Bootstrap
- 🔀 React Router
- 📊 Redux (for state management)
- 📦 Parcel (build tool)
- 🔌 Axios for API communication
- 🎨 Responsive Design: Works seamlessly across desktop and mobile devices
- 🔐 User Authentication: Secure login and registration system
- 👤 Profile Management: Users can update their information and manage favorite movies
- 🔍 Search Functionality: Filter movies in real-time
- 🖱️ Interactive UI: Smooth navigation and user-friendly interface
The main view displays all available movies with options to filter and search.
The profile view shows user details and their list of favorite movies.
Users can filter movies by genre using this pop-up in the main view.
The director filter allows users to find movies by a specific director.
- 📌 Node.js (v14 or higher)
- 📌 MongoDB
- 📌 npm or yarn
- Clone the repository:
git clone /~https://github.com/ibxibx/mymdb.git
cd mymdb
- Install dependencies:
npm install
- Create a
.env
file with your MongoDB connection string and JWT secret:
CONNECTION_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
- Start the server:
npm start
- Switch to the client branch:
git checkout clean-mymdb-client
- Install dependencies:
npm install
- Create a
.env
file with your API URL:
REACT_APP_API_URL=your_api_url
- Start the development server:
npm start
To build the project for production, run:
npm run build
This will create a dist/
directory with the compiled and optimized files ready for deployment.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.