Skip to content
/ mymdb Public

My Internet Movie Database is a website project where you can find, compel and save lists of your favourite movies.

Notifications You must be signed in to change notification settings

ibxibx/mymdb

Repository files navigation

🎬 MyMDB - My Movie Database

Live Demo

📖 Project Overview

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.

✨ Key Features

  • 🔍 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

🖥️ Server-Side

🛠️ Technologies Used

  • 🟢 Node.js
  • ⚡ Express.js
  • 🍃 MongoDB
  • 🔷 Mongoose
  • 🔑 JSON Web Token for authentication
  • 🔄 CORS
  • ✅ Express-validator

📡 API Endpoints

🎬 Movies

  • GET /movies - Get all movies
  • GET /movies/:Title - Get movie by title
  • GET /genres/:Name - Get genre details
  • GET /directors/:Name - Get director details

👥 Users

  • POST /users - User registration
  • POST /login - User authentication
  • PUT /users/:Username - Update user info
  • POST /users/:Username/movies/:MovieID - Add favorite movie
  • DELETE /users/:Username/movies/:MovieID - Remove favorite movie
  • DELETE /users/:Username - Delete user account

💻 Client-Side

🛠️ Technologies Used

  • ⚛️ React
  • 🎨 React Bootstrap
  • 🔀 React Router
  • 📊 Redux (for state management)
  • 📦 Parcel (build tool)
  • 🔌 Axios for API communication

🌟 Features

  • 🎨 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

📸 Screenshots

Screenshots

Main View

Main View The main view displays all available movies with options to filter and search.

Profile View

Profile View The profile view shows user details and their list of favorite movies.

Genre Filter

Genre Filter Users can filter movies by genre using this pop-up in the main view.

Director Filter

Director Filter The director filter allows users to find movies by a specific director.

🚀 Installation and Setup

📋 Prerequisites

  • 📌 Node.js (v14 or higher)
  • 📌 MongoDB
  • 📌 npm or yarn

⚙️ Server Setup

  1. Clone the repository:
git clone /~https://github.com/ibxibx/mymdb.git
cd mymdb
  1. Install dependencies:
npm install
  1. Create a .env file with your MongoDB connection string and JWT secret:
CONNECTION_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
  1. Start the server:
npm start

🖥️ Client Setup

  1. Switch to the client branch:
git checkout clean-mymdb-client
  1. Install dependencies:
npm install
  1. Create a .env file with your API URL:
REACT_APP_API_URL=your_api_url
  1. Start the development server:
npm start

📦 Building for Production

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.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

My Internet Movie Database is a website project where you can find, compel and save lists of your favourite movies.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published