A comprehensive banking management system developed in x86 Assembly language (MASM32) with a user-friendly console interface. This project demonstrates low-level programming capabilities for managing bank accounts, transactions, and administrative operations.
- Features
- System Requirements
- Installation
- Usage
- Project Structure
- Technical Details
- Screenshots
- Team Members
- Contributing
- License
-
Account Management
- Create new customer accounts with unique account numbers
- View detailed account information
- Delete existing accounts with confirmation
- Display all accounts in the system
-
Transaction Operations
- Deposit funds to customer accounts
- Withdraw funds from accounts
- Comprehensive transaction validation
- Account Operations
- Secure PIN-based authentication
- Check account balance
- Withdraw money with balance verification
- Transfer funds between accounts
- Change account PIN
- Animated loading screens with progress bars
- Color-coded menus and messages
- Error handling and validation
- Clear status messages and prompts
- Professional console-based UI
- Persistent storage using file system
- Account data structure with proper alignment
- Support for up to 10 concurrent accounts
- Real-time data synchronization
- Operating System: Windows (32-bit or 64-bit)
- Assembler: MASM32 (Microsoft Macro Assembler)
- Libraries: Irvine32 Library
- Processor: x86 compatible processor
- Memory: Minimum 512 MB RAM
- Storage: 10 MB free disk space
-
Install MASM32
Download and install MASM32 from: http://www.masm32.com/ -
Install Irvine32 Library
Ensure Irvine32.inc and Irvine32.lib are in your MASM32 include/lib directories
-
Clone the repository
git clone https://github.com/abdulrafay1402/BankManagementSystem.git cd BankManagementSystem -
Assemble and Link
ml /c /coff Bank_Management_System.asm link /subsystem:console Bank_Management_System.obj
Or use a batch file:
@echo off ml /c /coff /Zi Bank_Management_System.asm link /subsystem:console /debug Bank_Management_System.obj pause
-
Run the executable
Bank_Management_System.exe
- Default Credentials:
- ID:
admin - Password:
1234
- ID:
- Use your assigned account number and 4-digit PIN
- PIN range: 1000-9999
- Launch the application
- Select from Main Menu:
- Option 1: Administrator Login
- Option 2: Customer Login
- Option 3: Exit System
- Follow on-screen prompts for various operations
Creating a New Account (Admin):
- Login as administrator
- Select "Create New Account"
- Enter account number (unique positive integer)
- Enter 4-digit PIN (1000-9999)
- Enter initial balance
Transferring Funds (Customer):
- Login with your account number and PIN
- Select "Transfer Funds"
- Enter recipient account number
- Enter transfer amount
- Confirm transaction
BankManagementSystem/
β
βββ Bank_Management_System.asm # Main assembly source code
βββ accounts.dat # Account data file (auto-generated)
βββ README.md # Project documentation
βββ build.bat # Build script (optional)
- Platform: x86 Assembly (32-bit)
- Model: Flat memory model
- Stack Size: 4096 bytes
Account Structure:
Account STRUCT
accountNum DWORD 0 ; Unique account identifier
pin DWORD 0 ; 4-digit PIN
balance DWORD 0 ; Account balance in dollars
active BYTE 1 ; Active status (1=Active, 0=Inactive)
BYTE 3 DUP(?) ; Padding for alignment
Account ENDS- File I/O: Binary file operations for persistent storage
- Memory Management: Efficient struct-based account storage
- Security: PIN-based authentication with validation
- UI/UX: ANSI color codes for enhanced visual experience
- Error Handling: Comprehensive validation and error messages
- Main Interface: White on Black
- Admin Panel: Light Green
- Customer Panel: Light Magenta
- Success Messages: Light Green
- Error Messages: Light Red
- Loading Animation: Light Blue to Green gradient
========================================
BANK MANAGEMENT SYSTEM
Secure Banking Solution
========================================
MAIN MENU
--------------
1) Administrator Login
2) Customer Login
3) Exit System
[ββββββββββββββββββββ] 100%
Complete! Press any key to continue...
This project was developed by:
- Abdul Rafay - Developer
- Bisma Shahid - Developer
- Afshal Liaquat - Developer
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow consistent code formatting
- Add comments for complex logic
- Test all features before submitting
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Irvine32 Library - For providing essential I/O procedures
- MASM32 - For the assembly development environment
- Microsoft - For x86 architecture documentation
For questions, suggestions, or issues, please:
- Open an issue on GitHub
- Contact the team members via their GitHub profiles
Made with β€οΈ using x86 Assembly
Β© 2026 Bank Management System Team