Skip to content

ZiyadAlbokhari/Bank-System

Repository files navigation

🏦 Bank System

A professional banking system application developed in C++, designed to manage banking operations and administrative access through a structured, multi-stage development approach.


🏗️ Project Journey & Milestones

1️⃣ Phase One: The Foundation (V1) 📊

Core Client Management

  • 👥 Purpose: Establishing the base system using CRUD operations.
  • 🛠️ Features: Creating, Reading, Updating, and Deleting client accounts efficiently.
  • 💾 Technical: Data is handled through Vectors and stored permanently in Clients.txt.

2️⃣ Phase Two: The Financial Engine (V2) 💸

Banking Transactions & Logic

  • 💳 Purpose: Transforming the system into a functional financial application.
  • 🛠️ Features: Added a robust transactions system for deposits, withdrawals, and balance reports.
  • 💾 Technical: Implemented strict validation checks to prevent negative balances and ensure data integrity.

3️⃣ Phase Three: The Security Layer (V3) 🔐

Administrative Access & Permissions

  • 🔑 Purpose: Implementing a professional-grade administrative system.
  • 🛠️ Features: Added secure user login and a granular permission system for all system features.
  • 💾 Technical: Utilized Bitwise Operators for efficient permission management and session tracking for the CurrentUser.

💻 Code Architecture 🧬

Current Architecture: Procedural / Functional Programming

The entire project is currently built using Procedural Programming (Functional Programming), focusing on modular functions, structured data, and clean control flow. This approach was essential to master the logic and data flow of the banking system.

Future Evolution: Transition to OOP

This project serves as a solid foundation for my upcoming development phase. I am planning to refactor the entire system into Object-Oriented Programming (OOP), utilizing Classes, Inheritance, and Polymorphism. This will significantly improve scalability, code reusability, and maintainability for future banking modules.


🛠️ Key Technical Highlights ✨

  • ⚙️ Clean Architecture: Using Enums and Switch-Case for highly organized navigation.
  • 🛡️ Advanced Security: Dynamic input validation and access control to protect sensitive data.
  • 🚀 Scalable Code: Designed with modularity in mind to allow for future extensions.

A practical project from the Programming Advices platform (Course 7). 👨🏻‍💻


💡 Explore the Evolution: You can download the full source code for every development phase in the Releases section.

About

A professional banking application featuring client management, secure financial transactions, and permanent data storage using advanced C++ file handling. Developed as a project for Courses 7 and 8 on the Programming Advices platform.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages