Clinema is a web application that suggests personalized movie recommendations based on the user's mood, the current weather, or a combination of both. By leveraging AI and real-time weather data, it provides a unique and tailored cinematic experience. Perfect for anyone seeking the right movie for any emotional state or weather condition. The API is developed using Flask, while the client is built with Vite and Tailwind CSS for a modern user interface. The application uses MySQL as the database to store all relevant data.
- User authentication and authorization
- Movie listing and details
- Movie listing based on the user's current weather
- Movie listing based on the user's selected mood(s)
- Movie listing based on a combination of the user's selected moods and current weather
- Like and save suggestions
- Responsive design for mobile and desktop
To get started with Clinema, clone the repository and follow the instructions in the respective service directories for setup and deployment.
Clinema utilizes a modern tech stack to ensure efficient development and a seamless user experience. The key technologies include:
- client: A fast build tool and development server for modern web projects, used for the client-side application built with Vite.
- server: A Python framework for building web applications, specifically the API developed using Flask.
- database: A relational database management system used to store application data, specifically MySQL.
- ReactJS
- Vite
- Tailwind CSS
- Flask
- MySQL
To install and run Clinema, follow these steps:
-
Clone the repository:
git clone https://github.com/Matsadura/Clinema.git cd clinema
-
Set up the environment:
- Ensure you have Docker and Docker Compose installed on your machine.
-
Build and run the services:
docker-compose up --build
- At first setup Docker will set up MySQL which will cause flask to not recognise it, when that happens
docker-compose down docker-compose up
-
Access the application:
- The API will be available at
http://localhost:5000
- The client can be accessed at
http://localhost:5173
- The API will be available at
-
Database setup:
- The MySQL database will be automatically set up by Docker. You can connect to it using the credentials defined in the
docker-compose.yml
file.
- The MySQL database will be automatically set up by Docker. You can connect to it using the credentials defined in the