Skip to content

JoeBosch/RecipesAtScale

Repository files navigation

🍲 Recipes at Scale (WIP)

Backend microservice architecture for a scalable recipe app — built with FastAPI, Keycloak (for auth), and PostgresFTS for search.

🚀 Project Goals

  • Separate microservices for CRUD operations and search, using Traefik for routing.
  • Handle authentication with Keycloak.
  • Cache search responses with Redis.
  • Full-text search using PostgresFTS eventually switch to Elasticsearch.
  • Designed to scale individual components based on usage.

🧱 Architecture

This is a microservice-based application using Docker and Traefik for service routing.

🛠️ Stack

  • Python 3.11
  • FastAPI
  • PostgreSQL
  • Alembic
  • SQLAlchemy
  • ElasticSearch
  • Traefik
  • Docker
  • Keycloak

🗺️ Current Status

  • Basic CRUD endpoints for recipes
  • Dockerized Keycloak auth service
  • Search service with PostgresFTS
  • Swagger/OpenAPI combined docs
  • Traefik routing
  • Redis cache for search service
  • Role-based access controls

🔮 Roadmap

  • Rate limiting
  • Frontend

🧪 Running the App (Dev)

git clone https://github.com/JoeBosch/RecipesAtScale
cd RecipeApp
cp .env.example .env
docker-compose up --build

Visit http://localhost/docs for Swagger documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published