v1.0.0 RELEASED DEC-2025

Banking Logic.
Persisted.

A Python 3.13 + SQLite3 production-grade simulation handling authenticated transactions, admin privileges, and persistent storage with custom encryption algorithms.

Download Build View Source
2Drivers (MySQL/Lite)
AES-LikeCustom Cipher
100%CLI Native

About the Project

The Vision

DBANKITE³ was created to bridge the gap between theoretical Python programming and real-world system design. It simulates a core banking engine without the bloat of a web framework, focusing purely on logic, data integrity, and state management.

The Codebase

Built with strictly typed Python 3.13, the codebase adheres to PEP8 standards. It demonstrates how to structure a medium-sized application using object-oriented programming principles, separating concerns between interface, logic, and data storage.

Core Features

Auth System

Secure login/signup with hashed credentials.

Transactions

Atomic transfers, deposits, and withdrawals.

Admin Mode

Superuser dashboard for system oversight.

Audit Logs

Track all movement of funds.

Persistence

Data survives system reboots.

CLI UI

Retro-style command line interface.

Tech Stack

Python 3.13

SQLite3

MySQL

System Architecture

Directory Map

dbankite3/
├── __init__.py // Auto-initialization & Database Check
├── interface.py // User Interface & Transaction Logic
├── administrator.py // Admin Panel & CLI Actions
├── db/
│     └── dbankite3.sqlite3 // SQLite Database File
├── interface.py // User Interface & Transaction Logic
├── dbankite3ServerQL/
│    ├── __init__.py // Wrapper Initializer
│    ├── SQLite3.py // SQLite Wrapper
│    └── MySQL.py // MySQL Wrapper
└── main.py // Application Entrypoint & ASCII Art

Core Engine

The system relies on dbankite3ServerQL, a wrapper class that unifies:

  • .traversal()
  • .transactions()
  • .authentication()
  • .administrator()
  • .registration()
  • .accountactions()

Database Drivers

The system is designed with a plug-and-play driver architecture.

SQLite3 Driver

Default for local development. Zero configuration required. Creates a local .db file in the project root.

MySQL Driver

Ready for scaling. Change the driver in __init__.py to connect to a remote MySQL server for concurrent access.

Learning Outcomes

CRUD Mastery

Learn how to Create, Read, Update, and Delete records safely using Python's sqlite3 module.

Backend Logic

Understand how real systems validate inputs, hash passwords, and manage sessions without a GUI.

Data Persistence

Move beyond in-memory variables. See how data survives application restarts and crashes.

Custom Cryptography

dbankite³ avoids standard libraries for educational depth, implementing a custom Caesar Cipher variant with numeric alteration.


User Encryption: Shift Key = 8

Admin Encryption: Shift Key = 53

SQLite3.py
# Authentic implementation from source code class authentication: def authenticate_password(self) -> bool: self.cursor.execute('''SELECT password FROM users WHERE username = ?''', (self.username,)) # Validates input against stored hash with Shift 8 return self.cursor.fetchone()[0] == Encryption(self.password, shift=8, alterNumbers=True).encrypt()

Cipher Mechanics

Shift Logic

Characters are shifted by the key value. If the key is 8, 'A' becomes 'I'.

Numeric Salt

Numbers are processed differently to ensure PINs and balances are obscured effectively.

Key Rotation

Admins use a higher key (53) to separate privilege levels in the database.

Data Persistency

User Table Schema

users (table)
username VARCHAR(50) PK
password VARCHAR(25)
balance REAL DEFAULT 0

Admin Table Schema

administrators (table)
password VARCHAR(25)
notices TEXT

Transaction Atomic Flow

All financial actions (Deposit, Withdraw, Transfer) utilize connection.commit() immediately after execution to ensure data integrity.

SQL Optimization

We use parameterized queries to prevent SQL Injection.

# INSECURE (Vulnerable) cursor.execute(f"SELECT * FROM users WHERE name = '{user_input}'") # DBANKITE3 METHOD (Secure) cursor.execute("SELECT * FROM users WHERE name = ?", (user_input,))

The Interface

powershell.exe
~ $ dbankite3 : ACTION [1-8] >> 2 ENTER AMOUNT: $ 1500.00 DEPOSIT SUCCESSFUL! ~ $ dbankite3 : ACTION [1-8] >> 1 BALANCE: $ 1500.0

Admin Capabilities

Broadcast System

Admins can push notices that appear on user dashboards upon login.

User Management

Delete accounts, freeze assets (planned), or reset passwords manually.

Error Handling

The system is robust against standard runtime errors.

Performance Metrics

0.02s

Login Time

10k+

Records Supported

O(1)

Lookup Speed

5MB

Memory Footprint

Future Roadmap

This project serves as the foundation for modern full-stack development. Here is the upgrade path:

Phase 1: Database Migration

Upgrade from SQLite3 to PostgreSQL or MySQL for concurrent user handling.

Phase 2: API Integration

Wrap the Python logic in Flask/FastAPI to create RESTful endpoints.

Phase 3: Web Frontend

Connect a React/Vue dashboard to the API, replacing the CLI.

Change Log

v1.0.0 (Current) - Initial release - Added SQLite3 driver - Implemented Caesar Cipher v0.9.0 (Beta) - Fixed user balance float precision error - Added main.py entrypoint

Installation & Setup

Quick Start

No Python installed? No problem.

Get the standalone executable.

Download Release

Source Setup

# Clone repository git clone https://github.com/ViratiAkiraNandhanReddy/dbankite3.git # Install requirements pip install -r requirements.txt # Run entrypoint python main.py

Configuration

Edit __init__.py to toggle drivers.

# Select Driver: 'sqlite' or 'mysql' DB_DRIVER = 'sqlite'

Dependencies

Minimalist design requires very few external libraries.

Contributing

We welcome Pull Requests!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

MIT License

Copyright © 2025 VIRATI AKIRANANDHAN REDDY

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

FAQ

Is this real money?

No, this is a simulation engine for educational purposes only.

Can I use this for my bank?

Absolutely not. This is not compliant with PCI-DSS standards.