Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kadiryazadzhi/softuni---bankmanagementsystem

πŸŽ“ Solution for the "Bank Management System" practical project in C# πŸŽ“
https://github.com/kadiryazadzhi/softuni---bankmanagementsystem

csharp exercise softuni

Last synced: about 1 month ago
JSON representation

πŸŽ“ Solution for the "Bank Management System" practical project in C# πŸŽ“

Awesome Lists containing this project

README

        

# πŸ’³ Bank Account Management System

Welcome to the **Bank Account Management System**, a console-based application for managing bank accounts. This system allows users to perform operations like deposit, withdrawal, balance check, transfer funds, and apply for loans. It’s designed for learning and practicing object-oriented programming (OOP) principles in C#. πŸŽ‰

## πŸ“œ **Project Description**

The project simulates a bank system where users can:
- Create and manage bank accounts
- Deposit, withdraw, and transfer funds
- Apply for loans and view their status
- Change passwords and close accounts

It is implemented in **C#**, using OOP concepts such as classes, methods, and properties.

### πŸ”₯ **Features**

- **Account Management**: Create, update, and close bank accounts πŸ’Ό
- **Transaction History**: View deposit and withdrawal records 🧾
- **Loan Management**: Apply for and repay loans πŸ’Έ
- **User Authentication**: Change passwords securely πŸ”
- **Multiple Accounts**: Handle multiple bank accounts for each user πŸ”„

## πŸ›  **Technologies Used**

- **C# .NET**: For backend logic and OOP implementation πŸ–₯️
- **Visual Studio**: IDE used for development πŸ‘¨β€πŸ’»
- **Lists**: For storing user accounts, transactions, and loans πŸ“‹

## πŸ“š **Project Structure**

1. **BankAccount Class**:
- Manages user account information (balance, transactions, loans).
- Contains methods for depositing, withdrawing, and transferring money.

2. **User Class**:
- Handles user login, password management, and account creation.

3. **Main Program**:
- Provides a console interface for user interaction.
- Handles user input and displays results for account management.

## πŸš€ **How to Use**

1. **Clone the Repository**:
```bash
git clone https://github.com/your-username/bank-account-management-system.git
```
2. Open the Project:
- Open the ```.sln``` file in Visual Studio.

3. Run the Application:
- The program will prompt you to create a new account or log in.
- Choose an action such as depositing money, viewing balance, or applying for a loan.

4. Exit the Program:
- Type "exit" to close the application after you're done.

## πŸ›  **Available Features**

1. **Create Account** πŸ“: Input your username and password to create a new bank account.

2. **Deposit Funds** πŸ’°: Add money to your account by specifying the deposit amount.

3. **Withdraw Funds** πŸ’΅: Withdraw money from your account (must have sufficient balance).

4. **Check Balance** πŸ“Š: View your current account balance.

5. **Transfer Funds** πŸ’Έ: Transfer money between accounts by entering the recipient’s details.

6. **Apply for Loan** πŸ’³: Apply for a loan by entering the amount you wish to borrow.

7. **Repay Loan** πŸ’³βž‘οΈπŸ’Έ: Repay a part of your loan by specifying the amount to pay back.

8. **Change Password** πŸ”‘: Update your account password securely.

9. **Close Account** ❌: Delete your account after all transactions are complete.

## πŸ“¦ **Installation & Setup**

1. **Pre-requisites**: Make sure you have the following installed on your system:
- [.NET SDK](https://dotnet.microsoft.com/download)
- [Visual Studio](https://visualstudio.microsoft.com/)

2. **Running Locally**:
- Clone the repository using the command:
```
git clone https://github.com/KadirYazadzhi/SoftUni---BankManagementSystem.git
```
- Open the project in Visual Studio.
- Build and run the project.

## ✨ **Future Improvements**
- Add a graphical user interface (GUI) for easier interaction πŸ’»
- Implement a database to store account information persistently πŸ—ƒοΈ
- Improve security measures for account data encryption πŸ”’

## πŸ’‘ **Project Insights**

This project is a practical example of managing multiple bank accounts and transactions using object-oriented principles in C#. It helps in understanding basic banking operations, data management, and secure user interactions.

## πŸŽ“ **Credits**

This project is based on the **"Bank Account Management System"** exercise created by [Mario Zahariev](https://github.com/zahariev-webbersof/) for Python developers. However, I adapted the task and implemented it in C#. You can view the original task [here](https://github.com/zahariev-webbersof/python-fundamentals-09-2024-/blob/main/Bank%20Account%20Management%20System.md).

Special thanks to Mario Zahariev for providing a great foundational exercise.

## πŸ’Ύ **Contribution**

Feel free to fork this repository and submit pull requests! Contributions are welcome if you have ideas for additional patterns, new features, or improved functionality.

## πŸ“ž **Contact**

If you have any questions or suggestions, feel free to reach out at:

- πŸ“§ Email: [email protected]
- 🌍 Portfolio: [Kadir Yazadzhi](https://kadiryazadzhi.github.io/portfolio/)

---

πŸ’» Made with ❀️ in C#
Happy Coding! πŸš€