MystroTamer-FastAPI-Docker

Scalable FastAPI Application with Docker and PostgreSQL Integration

Overview

This project demonstrates a scalable API solution using FastAPI, Docker, and PostgreSQL. It includes CI/CD integration via GitHub Actions to ensure code quality and smooth deployments.

Project Structure

mystrotamer-FastAPI-Docker/
├── app/
│   ├── __init__.py         # Initialize the app module
│   ├── main.py             # FastAPI main application file
│   ├── Dockerfile          # Docker configuration for the app
│   ├── requirements.txt    # Python dependencies
│   ├── wait-for-it.sh      # Script to wait for dependencies
├── db/
│   ├── init.sql            # SQL script for database initialization
│   ├── Dockerfile          # Docker configuration for the database
├── tests/
│   ├── __init__.py         # Initialize the tests module
│   ├── test_main.py        # Test cases for the main app
├── docker-compose.yml      # Docker Compose configuration
├── .env.example            # Example environment variables
├── LICENSE                 # Project license
└── README.md               # Project documentation

Technologies Used

Setup and Installation

  1. Clone this repository:
    git clone https://github.com/TamerOnLine/MystroTamer-FastAPI-Docker.git
    
  2. Navigate to the project directory:
    cd MystroTamer-FastAPI-Docker
    
  3. Copy the .env.example file to .env and update the environment variables as needed.

  4. Start the services using Docker Compose:
    docker-compose up --build
    
  5. Access the application at http://localhost:8000.

Running Tests

Run the following command to execute the tests:

pytest tests/

Future Improvements

🤝 Contributing

License

This project is licensed under the MIT License - see the LICENSE file for details.