- 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