A full web server of a cinema running in python
- python
- flask framework
- sql-alchemy
- mariadb
- html
- css
- javascript
movie_theather
├── __init__.py
├── main.py: genemovie_theatherral controller
├── data.py: our rest api for asking data
├── auth.py: controllers spetialized in login management
├── model.py: will contain the database structure we have
├── analytics.py: methods for NLP sentiment analysis of site reviews and average movie ratings, generation of encoded pie chart and bar plot to be shown in administrator view
├── utils.py: contain some functions needed but not quite realted
├── flask_init.sh & flask_init.ps1: exports the needed environment variables for running flask, we still need to execute flask run
├── .gitignore: list with files we do not want to be at the repository
├── requirements.txt: list of all the dependencies (python -m pip install -r requirements.txt: automates the install of these dependencies)
├── documentation
│ └── all the manuals and stuff to take into account
├── static
│ ├── css files
│ ├──img
│ | └── all the images we will need for the movies
│ └── js
│ └── js files
├──templates
│ ├──main
│ | └── all the views we are going to show
│ └── src
│ └── html files that can be included or inherited for our main views
└── src
└── Where our user`s profile image are stored
- Slider with the best rated movies
- Search bar with a button to sort movies based on an specific criteria
- Cards with the movies and their data
-
Profile picture (can be changed)
-
- Plots of analytics: (reviews piechart, movie ranking barplot & projections' crew status barplot)
- View of all the projections that are programmed
- Chance to cancel projections (if there are reservations done. The user associated to those reservations will recieve an email)
- Projection view (enables view and cancel individual reservations)
-
- Included flask_talisman extension to ensure security that fits the needs of the webpage, control security protocols only allows upload of images from any origin, we also disallow the usage of the microphone and geolocation among other things. We kept the HTTP headers kept with default options. Reference: https://github.com/wntrblm/flask-talisman/blob/main/README.rst
- Included flask_seasurf library to protect against cross-site request forgery. Reference: https://flask-seasurf.readthedocs.io/en/latest/