A personal project for learning modern cloud-native development while building a practical book-tracking system.
The application consists of a React frontend, FastAPI backend, and PostgreSQL database running both locally (via Docker) and in Azure Container Apps.
- Track books, authors, series, reading sessions, locations, and ownership statuses
- PostgreSQL schema designed for normalization and extensibility
- Fully containerized development workflow
- Continuous deployment using GitHub Actions
- Azure-native hosting with Azure Container Apps and Azure Container Registry
flowchart LR
subgraph Frontend
A[React β’ TypeScript]
end
subgraph Backend
B[FastAPI β’ Python]
C[(PostgreSQL)]
end
subgraph Infrastructure
D[Azure Container Apps]
E[Azure Container Registry]
F[GitHub Actions CI/CD]
end
A -- REST/JSON --> B
B -- SQLAlchemy --> C
B --> E
A --> E
E --> D
D --> C
- Frontend: React, TypeScript
- Backend: FastAPI, SQLAlchemy, Pydantic
- Database: PostgreSQL
- Containers: Docker, Docker Compose
- CI/CD: GitHub Actions
- Cloud: Azure Container Apps, Azure Container Registry
book-tracker/
β
ββ frontend/ # React client
β ββ src/
β ββ package.json
β
ββ backend/ # FastAPI service
β ββ app/
β β ββ api/ # Routes
β β ββ models/ # SQLAlchemy models
β β ββ schemas/ # Pydantic models
β β ββ db/ # DB session, engine, migrations
β β ββ core/ # Config, logging, settings
β ββ tests/
β ββ requirements.txt
β
ββ database/
β ββ migrations/ # Alembic migrations
β ββ seed/ # Initial lookup values
β
ββ infra/
β ββ docker/ # Dockerfiles, compose files
β ββ azure/ # Bicep/Terraform for ACA + ACR
β ββ github/ # GitHub Actions pipelines
β
ββ docs/
β ββ schema/ # ERD + design docs
β ββ architecture/
β
ββ .github/workflows/ # CI/CD pipelines
β
ββ LICENSE
ββ README.mddocker compose up --buildBackend will be available at:
http://localhost:8000
Frontend at:
http://localhost:3000
The deployment pipeline uses:
- GitHub Actions (CI + CD)
- Azure Container Registry (ACR)
- Azure Container Apps (ACA)
A push to main triggers:
- Build backend + frontend Docker images
- Push images to ACR
- Deploy updated revisions to ACA
Released under the MIT License.
Reuse, modification, and commercial use are welcome.
- User authentication
- Reading statistics dashboard
- Mobile-friendly UI
- Recommendation engine
- Offline reading list syncing