Skip to content

n15r/CineLog

Repository files navigation

Logo CineLog

CineLog

Python Flask-Based Movie Rating Application

Python Flask SQLAlchemy WTForms SQLite Movie DB API License

Interface

Screenshot

Technologies Used

Programming Languages:

  • Python 3.7.4
  • HTML & CSS & JS

Frameworks and Libraries:

  • Flask 1.1.1
  • WTForms
  • SQLAlchemy
  • Bootstrap 3.3.7

Database:

  • SQLite

APIs:

  • Movie DB API

Application Structure/Arborescence

├── app.py # => The heart of our app, where Flask magic happens.
├── forms.py # => Contains WTForms for adding and rating movies.
├── models.py # => Defines our movie and user entities using SQLAlchemy.
├── instance # => Holds the instanciated instant of the Movie DB
│   └── movies-project.db
├── static
│   ├── css # => Holds the css files
│   │   └── files.css
│   └── logo.png
├── templates # => Home to the html/Jinga2 templates
    ├── base.html
    ├── add.html
    ├── catalogue.html
    ├── edit.html    
    └──  index.html
└── media # => holds different media used throughout the program and readme
   └── demo.gif

Features

Movie Management

  • Search for movies by title using the Movie DB API.
  • Add movies to the database with ease.
  • Delete movies from the DB instance.
  • Modify rating and comments.

Local Run

  1. Clone and install prerequisites

    Assuming you already have python and pip installed on your machine

    Run in your terminal, you can copy this (On Windows, use venv\Scripts\activate instead)

    sudo apt-get update # bash only
    git clone https://github.com/n15r/Cinelog.git
    cd Cinelog
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  2. Set Up the API

    You can get your TMDB key from their website (you need to create an account), then create a .env file in the project directory and add your TMDB API key to it.

    The .env file should look like this: (friendly reminder to always encapsulate your API keys)

.env screenshot

  1. Run the project

After decommenting the lines indicated in the app.py file, you ou can now run the project by using the commandpython3 app.py, you should see output similar to the following:

 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 646-082-58

Go to your browser and input the link (or CTRL click on the link)

Features to be added

  • A Front-end overhaul.
  • Merge the add and select apps with the main page using some js magic.
  • Introduce user authentication for account creation and saving ratings and reviews.
  • Enhance movie search to allow filtering by year, genre, and more.
  • Display top-rated movies on the home page for a quick pick-me-up.

Context

This project, conducted as part of the third year curriculum at the Moroccan School of Engineering Sciences

Author

👤 Nassim Lachkar

Show your support

Give a ⭐️ if this project helped you!