A console-based banking system developed in Python that simulates common banking operations and includes a custom file-based database engine built from scratch. The project allows users to create accounts, transfer money, pay bills, request loans, and manage transactions through an interactive command-line interface.
- Register new users with:
- Name
- National code
- Password
- Phone number
- Email address
- User login and authentication
- Validation for empty fields and invalid inputs
- Create multiple bank accounts
- Generate random 10-digit account numbers
- Assign aliases and passwords to accounts
- View account details and balances
- Close bank accounts and transfer remaining funds
- Transfer money between bank accounts
- Select accounts manually or from saved common accounts
- Validate account ownership and sufficient balance
- Store all transfers in transaction records
- Save frequently used account numbers with aliases
- Reuse saved accounts during transfers
- Simulate bill payments using billing and payment identifiers
- Generate bill amounts and deduct them from account balances
- Record bill payments as transactions
- Request loans for specific bank accounts
- Deposit loan amounts into account balances
- Store loan information separately
- Simulate periodic loan repayments
- Automatically deduct installments and record repayments as transactions
- Display account information
- View transaction history for individual accounts
- Record deposits, withdrawals, transfers, and bill payments
This project includes a lightweight database engine implemented entirely in Python using text files for data storage.
INSERTSELECTUPDATEDELETE
WHEREconditions- Equality (
==) and inequality (!=) operators - Logical operators:
ANDOR
- Read table definitions from a schema file
- Automatically create table files if they do not exist
- Support data types and unique constraints
- Query syntax validation
- Character length checks
- Unique value constraints
- Error reporting for invalid queries
Advanced-Programming-Project/
│
├── application.py # Banking application and CLI interface
├── database.py # Custom SQL-like database engine
├── schema.txt # Database schema definitions
├── *.txt # Data storage files
- Python
- Object-Oriented Programming (OOP)
- File Handling
- Threading
- Custom Query Processing
- Designing a console-based application
- Building a simple database engine from scratch
- Parsing and executing SQL-like commands
- Working with file-based data persistence
- Implementing input validation and error handling
- Managing background tasks using threads
- Applying object-oriented programming principles