Skip to content

My Movie Mood 🎬 A web application that recommends movies based on your mood.

License

Notifications You must be signed in to change notification settings

rahulpatel902/my-movie-mood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

My Movie Mood Logo

My Movie Mood

A modern web application that recommends movies based on your emotional state, powered by TMDB API and Firebase authentication.

🌟 Features

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

πŸš€ Quick Start

Prerequisites

  • Node.js (v18 or higher recommended)

Installation

  1. Clone the repository
git clone https://github.com/rahulpatel902/my-movie-mood.git
cd my-movie-mood
  1. Install dependencies
npm install
  1. Set up environment variables
    • Copy .env.example to .env
    • Fill in your Firebase and TMDB API credentials

Development

npm run dev

Visit http://localhost:5173 in your browser

Production Build

npm run build
npm run preview

πŸ—οΈ Project Structure

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

πŸ› οΈ Tech Stack

  • 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

πŸ”’ Security Features

  • Environment variables for sensitive data
  • Secure authentication flow
  • API key protection
  • Content filtering
  • Error handling and retry mechanisms

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ Environment Variables

This project requires the following environment variables:

  • VITE_FIREBASE_API_KEY: Firebase API key
  • VITE_FIREBASE_AUTH_DOMAIN: Firebase auth domain
  • VITE_FIREBASE_PROJECT_ID: Firebase project ID
  • VITE_FIREBASE_STORAGE_BUCKET: Firebase storage bucket
  • VITE_FIREBASE_MESSAGING_SENDER_ID: Firebase messaging sender ID
  • VITE_FIREBASE_APP_ID: Firebase app ID
  • VITE_FIREBASE_MEASUREMENT_ID: Firebase measurement ID
  • VITE_TMDB_API_KEY: TMDB API key for movie data Make sure to set these in your Netlify environment variables for deployment.

πŸ™ Acknowledgments

πŸ“„ License

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

About

My Movie Mood 🎬 A web application that recommends movies based on your mood.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published