A complete full-stack movie database application with IMDB/OMDb API integration and a special focus on Indian Cinema. Search, discover, and manage your personal movie collection with comprehensive movie information including posters, cast, ratings, and trailers.
Built with Node.js, Express.js, MongoDB (Mongoose) on the backend, and HTML, CSS, and JavaScript on the frontend.
- โญ Add movies with detailed information (title, genre, cast, director, plot, etc.)
- ๐ Rate movies with a 5-star rating system
- โ๏ธ Edit movie details
- ๐๏ธ Delete movies from your collection
- ๐ Advanced search and filtering capabilities
- ๐ฌ Search millions of movies from the OMDb database
- ๐ผ๏ธ Automatic poster image fetching
- ๐ IMDB ratings and metadata
- ๐ฅ Trailer search integration (YouTube)
- ๐ Complete movie information (plot, cast, director, awards, box office)
- ๐ช One-click access to popular Indian movies
- ๐ญ Quick search for Bollywood movies
- ๐ค 25+ Popular Indian actors quick-select
- ๐ฌ Support for multiple languages:
- Hindi (Bollywood)
- Tamil (Kollywood)
- Telugu (Tollywood)
- Malayalam (Mollywood)
- Kannada (Sandalwood)
- Bengali, Marathi, Punjabi
- ๐ Pre-loaded popular movies (RRR, Baahubali, 3 Idiots, Dangal, etc.)
- ๐ Secure signup and login
- ๐ JWT-based authentication
- ๐ฅ Personalized movie collections per user
- ๐ฑ Responsive design for all devices
- ๐จ Beautiful gradient UI with animations
- ๐ Grid and List view toggle
- ๐ฏ Quick filters and sorting options
- ๐ซ Smooth animations and transitions
Frontend:
- HTML5, CSS3, JavaScript (ES6+)
- Responsive design with CSS Grid and Flexbox
- Modern UI with gradients and animations
Backend:
- Node.js & Express.js
- MongoDB with Mongoose ODM
- JWT for authentication
- Axios for HTTP requests
APIs:
- OMDb API for movie data
- YouTube (for trailer searches)
Movie-Database/
โโโ server.js # Main application entry point
โโโ package.json # Dependencies and scripts
โโโ .env # Environment variables
โ
โโโ models/ # MongoDB/Mongoose schemas
โ โโโ User.js # User model
โ โโโ Movie.js # Movie model (with IMDB fields)
โ
โโโ routes/ # Express route handlers
โ โโโ auth.js # Authentication routes
โ โโโ movies.js # Movie CRUD operations
โ โโโ omdb.js # OMDb API integration routes
โ
โโโ services/ # Business logic services
โ โโโ omdbService.js # OMDb API service functions
โ
โโโ middleware/ # Express middleware
โ โโโ authMiddleware.js # JWT authentication
โ
โโโ public/ # Frontend static files
โ โโโ index.html # Main page (add movies)
โ โโโ login.html # Login page
โ โโโ signup.html # Signup page
โ โโโ search.html # Advanced search page
โ โโโ script.js # Main page JavaScript
โ โโโ search-enhanced.js # Search page JavaScript
โ โโโ styles.css # Application styles
โ
โโโ README.md # This file
โโโ IMDB_INTEGRATION.md # Detailed API documentation
- Node.js (v14 or higher)
- MongoDB Atlas account (or local MongoDB)
- OMDb API key (free from omdbapi.com)
-
Clone the repository:
git clone https://github.com/bnithin215/Movie-Database.git cd Movie-Database -
Install dependencies:
npm install
-
Configure environment variables:
Create a
.envfile in the root directory:MONGO_URI=your_mongodb_connection_string PORT=5001 OMDB_API_KEY=your_omdb_api_key JWT_SECRET=your_jwt_secret_key
-
Start the server:
# Production npm start # Development (with auto-reload) npm run dev
-
Open your browser:
http://localhost:5001
- Sign up for a new account or log in if you already have one
- Navigate to the Search page to discover movies
- Click on "Discover Movies (OMDB)" tab
- Click "Load Popular Indian Movies" for instant results
- Or click "Search Bollywood" for Bollywood-specific content
- Use the actor chips to quickly find movies by popular Indian actors
- Click "Add to Collection" to save any movie
- By Title: Enter movie name in the search box
- By Actor: Use the actor search field or click an actor chip
- By Year: Filter movies by release year
- By Type: Choose between movies and series
- View all your movies on the main page
- Edit movie details
- Delete movies you no longer want
- Rate movies with stars
- Filter and sort your collection
- Search across title, actor, director, cast, and genre
- Combine multiple search criteria
- Quick filters for instant results
- Sort by relevance, date, title, or rating
- Fetch complete movie data from OMDb
- Display IMDB ratings
- Show movie posters
- Access full cast and crew information
- View plot summaries and awards
- Specialized search for Indian movies
- Quick access to Bollywood hits
- Support for regional cinema
- Popular Indian actors database
- Country and language filtering
- Direct YouTube search for trailers
- One-click trailer access
- Integration with movie details
POST /api/auth/signup- Create new user accountPOST /api/auth/login- User loginGET /api/auth/me- Get current user info
GET /api/movies- Get all user's moviesPOST /api/movies- Add new movieGET /api/movies/:id- Get specific moviePUT /api/movies/:id- Update movieDELETE /api/movies/:id- Delete movie
GET /api/omdb/search- Search OMDb databaseGET /api/omdb/movie/:imdbID- Get movie detailsGET /api/omdb/indian-movies- Get popular Indian moviesGET /api/omdb/search-by-actor- Search by actor namePOST /api/omdb/batch-details- Get multiple movie detailsGET /api/omdb/indian-actors- Get list of Indian actors
For detailed API documentation, see IMDB_INTEGRATION.md
- Home Page: Add movies to your collection
- Search Page: Discover new movies with OMDb integration
- Indian Cinema: Dedicated section for Indian movies
- Movie Cards: Beautiful display with posters and details
- JWT Authentication: Secure token-based authentication
- Password Hashing: Bcrypt password encryption
- Protected Routes: API endpoints require authentication
- Input Validation: Server-side validation for all inputs
- MongoDB Injection Protection: Mongoose schema validation
NODE_ENV=production
MONGO_URI=your_production_mongodb_uri
PORT=5001
OMDB_API_KEY=your_omdb_api_key
JWT_SECRET=strong_random_secret_key- Heroku: Perfect for Node.js apps
- Vercel: Great for full-stack apps
- Railway: Simple deployment
- DigitalOcean: Full control with VPS
MIT License - feel free to use this project for learning or personal use.
Your Name
- GitHub: @bnithin215
- OMDb API for movie data
- MongoDB for database
- Express.js for backend framework
- Indian cinema industry for amazing movies! ๐ฎ๐ณ
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check the IMDB_INTEGRATION.md for detailed API docs
Made with โค๏ธ for movie lovers everywhere! ๐ฌ๐ฟ