FastAPI Calculator with JWT Auth

Backend Project

Python FastAPI PostgreSQL JWT Docker CI/CD

FastAPI Calculator with JWT Auth

Advanced web application with JWT authentication, PostgreSQL database, and calculation BREAD operations

FastAPI Calculator with JWT Auth

Project Overview

Problem Statement

Modern web applications require secure user authentication, persistent data storage, and full CRUD operations. This project demonstrates enterprise-grade backend development with FastAPI, implementing secure JWT authentication and comprehensive calculation history management.

Key Features

  • JWT-based authentication with access and refresh tokens
  • Complete BREAD operations (Browse, Read, Edit, Add, Delete) for calculations
  • PostgreSQL database with SQLAlchemy ORM
  • User registration and login with password hashing
  • Calculation history tracking per user
  • RESTful API with OpenAPI/Swagger documentation
  • Comprehensive pytest test suite with 100% coverage
  • CI/CD pipeline with GitHub Actions

Technical Implementation

Built with FastAPI framework for high-performance API endpoints. Uses SQLAlchemy for database ORM with PostgreSQL backend. Implements secure password hashing with bcrypt and JWT token management. Follows TDD methodology with comprehensive test coverage.

Backend

Python, FastAPI, SQLAlchemy, Pydantic

Database

PostgreSQL, Alembic migrations

Security

JWT, bcrypt, python-jose

Testing

pytest, pytest-cov, httpx

DevOps

Docker, GitHub Actions, Watchtower

Challenges & Solutions

Implementing secure JWT token refresh flow, managing database migrations, ensuring test isolation with fixtures, and handling concurrent user sessions. Solved through comprehensive security testing, proper fixture scoping, and transaction management.

Results & Impact

Production-ready API with 100% test coverage deployed with automated CI/CD. Handles multiple concurrent users with secure authentication. Comprehensive API documentation via OpenAPI. Successfully demonstrates enterprise backend development practices.