Personalised News Aggregator
A microservices platform combining Spring Boot backends, a Next.js frontend, and a Python GenAI service.
Architecture
| Service | Description |
|---|---|
| API Gateway | Spring Cloud Gateway MVC — routes, CORS, JWT validation, Swagger UI |
| User Service | OAuth2 Authorization Server, user profiles, settings (MongoDB) |
| Content Service | RSS feed management, articles, topics (MongoDB) |
| GenAI Service | Python FastAPI + LangChain — summarization, sentiment, recommendations |
| Web Client | Next.js + React 19 + TypeScript |
Deployment paths
- Local — Docker Compose (Deployment Testing)
- Azure VM (CI/CD) — GitHub Actions → ACR →
az vm run-command(Azure CD Pipeline) - Azure VM (manual) — Terraform → Ansible → Docker Compose (Azure VM Deployment)
- Kubernetes (CI/CD) — GitHub Actions → GHCR → Helm deploy (Kubernetes CD Pipeline)
- Kubernetes (manual) — Helm chart (Helm) or raw manifests (K8s)
Quick start
cp infra/.env.example infra/.env # fill in required values
make compose-up # start the local dev stack
make smoke-test # verify endpoints
See Deployment Testing for the full checklist, and Secrets & Environment Variables for all configuration options.
Developing
make generate # regenerate OpenAPI spec + consumer clients
make spring-build # compile and test Spring services
make preflight # full pre-flight: generate, build, lint helm, validate terraform
See OpenAPI Workflow for the code-first spec pipeline.