Skip to content

jvmho/TaskTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fullstack Python Web Service

Overview

This project is a fullstack web application built with Python. It provides a REST API backend and a web interface, with data stored in a PostgreSQL database.

The goal of the project is to demonstrate a clean, modular architecture suitable for scalable service development.


Tech Stack

Backend

  • FastAPI — web framework
  • SQLAlchemy — ORM
  • Alembic — database migrations
  • PostgreSQL — database

Frontend

  • (Option 1) Jinja2 templates (server-side rendering)
  • (Option 2) React (separate frontend application)

Tooling

  • Docker / Docker Compose — environment and deployment
  • Postman — API testing

Project Structure

backend/
  app/
    main.py          # Entry point
    api/             # API routes
    models/          # Database models
    schemas/         # Pydantic schemas
    services/        # Business logic
  migrations/        # Alembic migrations

frontend/            # Frontend application (optional)

docker-compose.yml   # Service orchestration

Getting Started

Prerequisites

  • Python 3.10+
  • Docker and Docker Compose
  • PostgreSQL (if running locally without Docker)

Installation

1. Clone the repository

git clone <your-repo-url>
cd <repo-folder>

2. Create environment variables

Create a .env file in the project root:

POSTGRES_DB=app
POSTGRES_USER=app
POSTGRES_PASSWORD=app
DATABASE_URL=postgresql://app:app@db:5432/app

3. Run with Docker

docker-compose up --build

The API will be available at:

http://localhost:8000

Database Migrations

Run migrations:

docker-compose exec backend alembic upgrade head

Create a new migration:

docker-compose exec backend alembic revision --autogenerate -m "message"

API Documentation

Interactive API docs are available at:

  • /docs (Swagger UI)
  • /redoc (ReDoc)

Development

Run backend locally

cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload

Testing

Run tests:

pytest

Roadmap

  • Authentication (JWT)
  • Role-based access control
  • Frontend integration
  • CI/CD pipeline
  • Production deployment setup

License

MIT License


Notes

This project follows a modular, layered architecture:

  • API layer (routes)
  • Service layer (business logic)
  • Data access layer (models)

The structure is designed to keep components loosely coupled and easy to maintain.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors