bankpy

A secure banking information system with integrated data protection, multi-factor authentication, and robust cryptography, built using Django.

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 2FA Setup

Audit Log View Audit Log View

Installation

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