https://movies-api-flask.herokuapp.com/ (Heroku may take some time to start)
A simple web service for parsing top movies from IMDb and represent them like RESTful API. Developed using Python language, Flask and Sanic frameworks and PostgreSQL database. Deployed on Heroku. Supports GET, POST, PUT, PATCH and DELETE methods for Movies and Actors entities. Some of them require tokens, thus user registration, authentication and authorization are also provided. Swagger is also added to the project. The DB can be populated either by using pre-defined set of values or by sing parsing top movies from IMBd. The parser can work in sequential, multithreading or multiprocessing modes. Unittests realised using Pytest and Coverage.
Technology stack:
- Language - Python
- Frameworks - Flask and minority Sanic
- Databases - SQLite and PostgreSQL
- ORM - SQLAlchemy
- Authentication - JWT
- Validation - Marshmallow
- Frontend: Jinja2 and Bootstrap 4
- API UI - Swagger
- Parsing - Beautiful Soup 4 and Requests
- WSGI - Gunicorn
- Testing - Pytest and Coverage.
- Linter - Flake8
- Containerization - Docker
- Deployment - Heroku
- CI/CD - GitHub Actions
DB structure: https://drawsql.app/kpi-6/diagrams/movies-api-db