- API rate limited (user rate)
- Token based authentication (JWT)
- Logging
- Instrumentation with Prometheus
- API Documented with OpenAPI
Follow the following directions for clonning the repository and installing requirements.
- Git
- Docker
- Docker-Compose
- make (Windows - CMD, MacOS - brew, Ubuntu/WSL - apt)
git clone https://github.com/sousatg/piglatin
cd piglatin
Create a .env file at the root folder with the following environment variables:
PORT- Piglating running port.DEBUG_PORT- Piglating debugpy running port (use to debu with VSCode)DEBUG- Is the application running in debug mode or not (True/False)DATABASE_ENGINE-DATABASE_NAME- A pre created database in our Postgres instanceDATABASE_USER- A user with previledges to the databaseDATABASE_PASSWORD- The database user passwordDATABASE_PORT- Port used to connect to our databaseDATABASE_HOST- The Postgres database host our app will connectMAIL_SERVER- Address of the email serverMAIL_PORT- Port used by the email serverJWT_SECRET_KEY- The key used for the JWT tokens
- Build the docker images using
docker-compose build. - At the root folder run
docker-compose up -d. - Make sure all images are running with
docker ps.
make tests- will run the django testsmake bash- runsdocker-compose exec blog bash
- Flask
- Flask-JWT-Extended
- SQLAlchemy
- Gunicorn
- Postgres
- Redis