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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors