Skip to content

ParhamHsn/Advanced-Programming-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 Advanced Programming Project

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.


✨ Features

👤 User Management

  • Register new users with:
    • Name
    • National code
    • Password
    • Phone number
    • Email address
  • User login and authentication
  • Validation for empty fields and invalid inputs

💳 Bank Account Management

  • 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

💸 Money Transfers

  • 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

⭐ Common Accounts

  • Save frequently used account numbers with aliases
  • Reuse saved accounts during transfers

🧾 Bill Payment

  • Simulate bill payments using billing and payment identifiers
  • Generate bill amounts and deduct them from account balances
  • Record bill payments as transactions

💰 Loan Management

  • 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

📋 Transaction History

  • Display account information
  • View transaction history for individual accounts
  • Record deposits, withdrawals, transfers, and bill payments

🗄️ Custom File-Based Database Engine

This project includes a lightweight database engine implemented entirely in Python using text files for data storage.

Supported Operations

  • INSERT
  • SELECT
  • UPDATE
  • DELETE

Query Features

  • WHERE conditions
  • Equality (==) and inequality (!=) operators
  • Logical operators:
    • AND
    • OR

Schema Management

  • Read table definitions from a schema file
  • Automatically create table files if they do not exist
  • Support data types and unique constraints

Validation and Error Handling

  • Query syntax validation
  • Character length checks
  • Unique value constraints
  • Error reporting for invalid queries

📁 Project Structure

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

🛠️ Technologies Used

  • Python
  • Object-Oriented Programming (OOP)
  • File Handling
  • Threading
  • Custom Query Processing

🎯 Concepts Practiced

  • 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

About

A Python CLI banking system for managing accounts, transactions, bills, and loans.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages