A modern web application that recommends movies based on your emotional state, powered by TMDB API and Firebase authentication.
- π Mood-Based Recommendations: Get personalized movie suggestions based on your current mood
- π Advanced Filtering: Filter by year range and movie format (Animation/Live Action)
- π Secure Authentication: User authentication powered by Firebase
- πΎ Smart Caching: Local caching system for improved performance
- π± Responsive Design: Beautiful glass-morphism UI that works on all devices
- π¬ Rich Movie Data: Detailed movie information from TMDB API
- π« Content Filtering: Built-in filtering for appropriate content
- Node.js (v18 or higher recommended)
- Clone the repository
git clone https://github.com/rahulpatel902/my-movie-mood.git
cd my-movie-mood
- Install dependencies
npm install
- Set up environment variables
- Copy
.env.example
to.env
- Fill in your Firebase and TMDB API credentials
- Copy
npm run dev
Visit http://localhost:5173
in your browser
npm run build
npm run preview
project-root/
βββ src/ # Source files
β βββ api.js # TMDB API integration
β βββ authCheck.js # Authentication utilities
β βββ config.js # Configuration and constants
β βββ firebase.js # Firebase initialization
β βββ ui.js # UI update functions
β βββ utils.js # Helper utilities
βββ public/ # Static assets
βββ documentation/ # Project documentation
βββ auth.{html,css,js} # Authentication pages
βββ index.html # Main application page
βββ main.js # Application entry point
βββ style.css # Global styles
βββ vite.config.js # Vite configuration
- Frontend Framework: Vanilla JavaScript with modern ES6+ features
- Build Tool: Vite v5.4
- Authentication: Firebase v10.14
- API Integration: TMDB API v3
- Styling: Custom CSS with Glass-morphism design
- Environment variables for sensitive data
- Secure authentication flow
- API key protection
- Content filtering
- Error handling and retry mechanisms
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project requires the following environment variables:
VITE_FIREBASE_API_KEY
: Firebase API keyVITE_FIREBASE_AUTH_DOMAIN
: Firebase auth domainVITE_FIREBASE_PROJECT_ID
: Firebase project IDVITE_FIREBASE_STORAGE_BUCKET
: Firebase storage bucketVITE_FIREBASE_MESSAGING_SENDER_ID
: Firebase messaging sender IDVITE_FIREBASE_APP_ID
: Firebase app IDVITE_FIREBASE_MEASUREMENT_ID
: Firebase measurement IDVITE_TMDB_API_KEY
: TMDB API key for movie data Make sure to set these in your Netlify environment variables for deployment.
- TMDB for the comprehensive movie database
- Firebase for authentication services
- Vite for the excellent build tool
- Font Awesome for icons
- Flaticon for the favicon
This project is licensed under the MIT License - see the LICENSE file for details