Moses Ugwulo
← Back to projects

Task Tracker API

  • Python
  • FastAPI
  • Docker
  • Terraform

Local setup

powershell
# clone, then start the API and PostgreSQL together with Docker$ git clone https://github.com/MosesUgwulo/Task-Tracker.git$ cd Task-Tracker$ docker-compose up --build# API at http://127.0.0.1:8000 , Swagger docs at /docs

Azure infrastructure

powershell
# provision the Azure stack (ACR, App Service, PostgreSQL) with Terraform$ cd terraform$ az login$ terraform init$ terraform apply# a GitHub Actions workflow then builds, pushes to ACR, and redeploys

A CRUD API built with FastAPI and PostgreSQL, designed as a full DevOps pipeline from local development to a cloud deployment. The API is containerised with Docker, the supporting Azure stack (Container Registry, App Service, and a PostgreSQL Flexible Server) is provisioned as code with Terraform, and a GitHub Actions workflow builds the image, pushes it to ACR, and redeploys the App Service. It serves auto-generated Swagger docs and a simple HTML frontend for managing tasks.

Highlights

  • Full CRUD REST API in FastAPI, with auto-generated Swagger docs and a simple HTML frontend.
  • PostgreSQL backend, with data persisted via a Docker volume in local development.
  • Docker Compose spins up the API and database together with a single command.
  • Azure stack provisioned as code with Terraform: resource group, Container Registry, App Service, and a PostgreSQL Flexible Server.
  • GitHub Actions pipeline builds the image, pushes it to ACR, and redeploys the App Service.