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

 
 
 

Contributors