Welcome to the Small Bank System Project! 🎉
This project simulates a basic bank system with functional programming principles. Although it shares similarities with a larger Bank Project, this version is much simpler and uses functional programming, unlike the Bank Project, which utilizes object-oriented programming (OOP).
Before accessing the system's main menu, you need to log in using your username and password.
-
Validation:
- The application checks if the entered username and password exist in the system.
- If the credentials are valid, the main menu will be displayed.
- If not, access is denied, and the user will be prompted to re-enter valid credentials.
-
Permission-Based Access:
- Users cannot access certain menus or perform specific actions unless they have the required permissions.
- Each user’s access is restricted based on their assigned roles.
The Main Menu contains 8 choices:
-
Show Client List:
- Displays a list of all registered clients.
-
Add New Client:
- Allows you to add a new client to the system.
-
Delete Client:
- Remove a client from the system.
-
Update Client:
- Modify an existing client's details.
-
Find Client:
- Search for a specific client by their details.
-
Transactions:
- Manage financial transactions through submenus:
- Withdraw: Deduct an amount from a client's balance.
- Deposit: Add an amount to a client's balance.
- Total Balances: View the sum of all client balances.
- Return to Main Menu: Navigate back to the main menu.
- Manage financial transactions through submenus:
-
Manage Users:
- Perform user management operations through submenus:
- List Users: Display all system users.
- Add New User: Add a new user to the system.
- Delete User: Remove a user from the system.
- Update Client Info: Update details of existing users.
- Find User: Search for a specific user.
- Return to Main Menu: Navigate back to the main menu.
- Perform user management operations through submenus:
-
Logout:
- Log out of the system and return to the login screen.
- Developed using functional programming principles.
- Features robust user authentication and permission control.
- Ensures that unauthorized users cannot access restricted menus or actions.
- Clone or download this repository to your local machine.
- Compile and run the program in your preferred environment.