Skip to content

Mission-ready asset & readiness tracking REST API built with FastAPI, PostgreSQL, JWT auth, and role-based access control.

License

Notifications You must be signed in to change notification settings

GraphiteTuff/readiness-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Readiness API

A modular backend service built with FastAPI that models personnel readiness data using schema-driven validation and clean architectural separation.

This project demonstrates production-oriented backend API design, typed request validation, structured routing, and extensible system design using Python.

Project Purpose

Readiness API is a RESTful service designed to manage personnel readiness records in a structured and validated manner.

The system is intentionally built using layered architecture principles to simulate real-world backend engineering patterns used in production environments.

This project focuses on:

Clean separation of concerns

Strong typing and validation

Modular routing design

Extensibility toward database-backed persistence

Self-documenting API schemas

Technology Stack Layer Technology Web Framework FastAPI Validation Pydantic ASGI Server Uvicorn Language Python 3.12+ Documentation OpenAPI (auto-generated) Environment Virtual Environment (venv) Architecture Overview

The application follows a layered structure separating application configuration, routing, and domain models.

readiness-api/ │ ├── app/ │ ├── main.py # Application entry point │ ├── models/ │ │ └── personnel.py # Pydantic data models (schema validation) │ ├── routes/ │ │ └── personnel.py # API route definitions │ └── database/ # Future persistence layer │ ├── requirements.txt └── README.md Design Principles

Separation of concerns

Typed request validation via Pydantic

Modular router pattern

Extensible data layer design

Self-documenting OpenAPI schema generation

API Endpoints GET /

Health check endpoint.

Returns a basic service confirmation.

POST /personnel/

Creates a new personnel readiness record.

Request Body { "name": "Jason Graff", "unit": "JBMDL", "certification_status": "GREEN" } Response { "name": "Jason Graff", "unit": "JBMDL", "certification_status": "GREEN" }

The request body is validated against a strongly-typed Pydantic schema before processing.

Running the Application

  1. Create virtual environment python -m venv venv
  2. Activate environment (PowerShell) venv\Scripts\Activate.ps1
  3. Install dependencies pip install -r requirements.txt
  4. Start development server uvicorn app.main:app --reload
  5. Access interactive documentation http://127.0.0.1:8000/docs Development Workflow

Models define strict request/response schemas

Routes implement endpoint behavior

Main application includes modular routers

FastAPI auto-generates OpenAPI documentation

Uvicorn runs the ASGI application

Roadmap

Planned enhancements include:

PostgreSQL integration

SQLAlchemy ORM layer

CRUD expansion (GET by ID, PUT, DELETE)

JWT-based authentication

Unit and integration testing (pytest)

Docker containerization

Cloud deployment (AWS / GCP / Azure)

CI/CD pipeline integration

Why This Project Matters

This project demonstrates:

Backend system structuring

Type-safe API design

Production-aligned folder architecture

Clean modular expansion strategy

Schema-first API development

It reflects backend engineering fundamentals used in scalable service design.

Author

Built as part of backend engineering development and production-focused API architecture practice.

About

Mission-ready asset & readiness tracking REST API built with FastAPI, PostgreSQL, JWT auth, and role-based access control.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages