E-BankSim is a C++ console application that simulates a simple electronic banking system. It manages client information, handles transactions, and now includes user authentication and permissions management, bringing it closer to a real-world banking simulation.
- Features
- Login Information
- Database Structure
- How It Works
- Project Structure
- Learning Goals
- Changes from Previous Version
- Add new clients
- Update client information
- Delete clients
- Search clients by Account Number
- Deposit money
- Withdraw money
- Display total balances of all clients
- Add, update, delete, and search users
- Assign permissions (Full Access / Limited Access)
- Secure login system
-
User-friendly text-based menus
-
Organized navigation:
- Main Menu
- Transactions Menu
- User Management Menu
Default Admin Credentials:
- Username:
admin - Password:
1234
Admin has full access to all functionalities: client management, transactions, and user management.
Clients.txt – Stores client data:
| Field | Description |
|---|---|
| Account Number | Unique identifier |
| Pin Code | Client PIN |
| Name | Client name |
| Phone | Contact number |
| Account Balance | Current balance |
Users.txt – Stores user data:
| Field | Description |
|---|---|
| Username | User login name |
| Password | User password |
| Permissions | Access level (Full / Limited) |
All records are separated using a custom delimiter:
#//#.
- The application loads data from
Clients.txtandUsers.txtinto memory (vectors). - Users perform operations on in-memory data.
- Changes are saved back to the text files immediately.
- Users navigate via structured CLI menus:
Main Menu
- Show Client List
- Add New Client
- Delete Client
- Update Client Info
- Find Client
- Transactions
- Manage Users
- Logout
Transactions Menu
- Deposit
- Withdraw
- Show Total Balances
- Back to Main Menu
User Management Menu
- List Users
- Add New User
- Delete User
- Update User
- Find User
- Back to Main Menu
E-BankSimV0.1.cpp → Main source code
Clients.txt → Client database
Users.txt → User database
README.md → Project documentation
- Simulate a database using text files
- Practice file handling in C++ with
fstream - Implement CRUD operations in a CLI project
- Understand data persistence without a real database
- Learn basic user authentication and permissions handling
| Aspect | Previous Version | v0.1 Professional Version |
|---|---|---|
| User Authentication | Not included | Added login system with username/password |
| User Management | Not included | Full CRUD with permissions |
| Database Files | Only Clients.txt | Clients.txt + Users.txt |
| Menu Structure | Simple Main & Transactions menus | Main Menu + Transactions + User Management menus |
| Security | None | Permission-based access control |
| CLI Experience | Basic | Structured, user-friendly |
| Documentation | Minimal | Detailed, professional, includes tables & flow |