A modern microbanking backend built with FastAPI, PostgreSQL, and JWT authentication.
Watch Demo: https://youtu.be/HFerK6FWCj8
Agent Login:
- Username:
agent1| Password:1234 - Username:
agent2| Password:1234 - Username:
agent3| Password:1234
Customer Login:
- Username:
mycustomer| Password:1234
git clone <your-repo-url>
cd MicroBankingSystem-Backend
docker compose up --buildAccess: http://localhost:8000/docs
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reloadAccess: http://127.0.0.1:8000/docs
- 🔐 JWT Authentication & Role-Based Access Control
- 👥 Account Management (Savings, Current, Joint Accounts)
- 💳 Transaction Processing & Transfers
- 📊 Fixed Deposits & Savings Plans
- 📈 Branch Management & Analytics
- 📄 PDF Report Generation
- 🏢 Multi-Branch Support
- Framework: FastAPI
- Database: PostgreSQL
- Authentication: JWT + Bcrypt
- ORM: SQLAlchemy
app/
├── api/ # Route handlers
├── repositories/ # Data access layer
├── services/ # Business logic
├── schemas/ # Request/Response models
├── middleware/ # Auth & permissions
└── database/ # Database connection
schema/ # Database migrations
tests/ # Test suite
POST /api/auth/login- LoginGET/POST /api/account-management- Account operationsPOST /api/transaction- Transfer fundsPOST /api/fixed-deposit- Create fixed depositPOST /api/savings-plan- Create savings planGET /api/branch- Branch informationGET /api/overview- Dashboard & reports
See /docs for full API documentation.
Create .env file:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=btrust_bank
DB_USER=postgres
DB_PASSWORD=your_password
JWT_SECRET=your_secret_key
Contributions are welcome! Please follow PEP 8 style guidelines and add tests for new features.
This is a university project where the use of ORM (Object-Relational Mapping) frameworks is not allowed. Therefore, we use raw SQL queries for all database operations to directly interact with PostgreSQL.
Built with ❤️ by Team SMDRS
