Skip to content

BronzonTech-Cloud/ironwallet

Repository files navigation

IronWallet

License: MIT Python 3.12 FastAPI

A comprehensive microservices-based banking wallet system (Mini Wave/PayPal clone) built with Python FastAPI, Docker, and PostgreSQL.

🏗️ Architecture

The system consists of 6 microservices:

  1. API Gateway: Public entry point, handles auth and routing.
  2. Auth Service: User registration and JWT authentication.
  3. Wallet Service: Manage wallets, balances, and freezing.
  4. Transaction Service: Handles deposits, withdrawals, and transfers (ACID compliance & locking).
  5. Notification Service: Consumes events (RabbitMQ) to send emails.
  6. Admin Service: Administrative actions (Ban, Freeze, View Txns).

🚀 Getting Started

Prerequisites

  • Docker & Docker Compose
  • Python 3.12+ (for local dev)

Quick Start (Docker)

  1. Configure Environment: Copy the example environment file and adjust if necessary:

    cp .env.example .env
  2. Run Services: Run the entire stack in detached mode:

    docker compose up --build -d
  3. Wait for Ready: Wait 10-15 seconds for databases and RabbitMQ to fully initialize before accessing the API. See Docker Guide for details.

Local Development

Run services locally with our helper scripts:

./local-install.sh
./local-run.sh

See Local Guide for details.

🧪 Testing

Integration Tests

Ensure the stack is running via Docker, wait 15 seconds, and then run:

python3 integration_test.py

Unit Tests

Run unit tests for all services:

./local-test.sh

📚 Documentation

🛠️ Tech Stack

  • Language: Python 3.12
  • Framework: FastAPI
  • Database: PostgreSQL
  • Messaging: RabbitMQ
  • Caching: Redis
  • Containerization: Docker & Docker Compose

📄 License

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

About

A comprehensive microservices-based banking wallet system (Mini Wave/PayPal clone) built with Python FastAPI, Docker, and PostgreSQL.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors