bankpy is a Django‑based banking information system that safeguards sensitive customer data with multi‑factor authentication, field‑level encryption, and cryptographic transaction signing. Built with robust role‑based access controls and comprehensive audit logging, it ensures both security and compliance for everyday banking operations.
- User & Role Management : Distinct access levels for Nasabah (Customer), Teller, and Manager
- Two‑Factor Authentication (2FA) : TOTP‑compatible setup via Google Authenticator
- Field Encryption : AES‑encrypted storage of KTP numbers, addresses, and other PII
- Digital Signatures : RSA‑PSS to guarantee transaction integrity
- Role‑Based Access Control : Fine‑grained RBAC to enforce least‑privilege
- Audit Logging : Immutable logs of security events and transaction histories
Screenshots
2FA Setup

Audit Log View

Installation
- Clone repository:
git clone https://github.com/JoshuaGlaZ/bankpy.git
cd bankpy- Virtual enviroment:
python -m venv venv
source venv/bin/activate # Linux/MacOS
venv\Scripts\activate # Windows
pip install -r requirements.txt- Run
python manage.py migrate
python manage.py createsuperuser
python manage.py seed_data # simulate
python manage.py runserver