Skip to content

danny-cloudsinsight/bookTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Book Tracker Application

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.


🎯 Features

  • 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

πŸ“ Architecture

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
Loading

πŸ“¦ Technology Stack

  • Frontend: React, TypeScript
  • Backend: FastAPI, SQLAlchemy, Pydantic
  • Database: PostgreSQL
  • Containers: Docker, Docker Compose
  • CI/CD: GitHub Actions
  • Cloud: Azure Container Apps, Azure Container Registry

πŸ“ Repository Structure

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.md

πŸš€ Local Development

Start all services (backend + database)

docker compose up --build

Backend will be available at:

http://localhost:8000

Frontend at:

http://localhost:3000

☁️ Deployment to Azure

The deployment pipeline uses:

  • GitHub Actions (CI + CD)
  • Azure Container Registry (ACR)
  • Azure Container Apps (ACA)

A push to main triggers:

  1. Build backend + frontend Docker images
  2. Push images to ACR
  3. Deploy updated revisions to ACA

πŸ“œ License

Released under the MIT License.
Reuse, modification, and commercial use are welcome.


πŸ“š Roadmap (Optional Future Enhancements)

  • User authentication
  • Reading statistics dashboard
  • Mobile-friendly UI
  • Recommendation engine
  • Offline reading list syncing

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published