A simple .NET 9 Web API for managing bank accounts, users, transactions, and transfer history. This project demonstrates a clean 3‑tier architecture with separation of concerns, asynchronous programming, and use of AutoMapper for DTO mapping.
- CRUD operations for Users, Accounts, Transactions, and Transfer History
- Asynchronous controllers and services using
async/await - Dependency Injection with ASP.NET Core DI container
- Repository and Service layers for clean separation of concerns
- AutoMapper for mapping between Entities and DTOs
- WebAPI: Controllers and endpoint definitions.
- Domain_BLL: Business Logic Layer (Services and DTOs).
- Infrastructure_DAL: Data Access Layer (EF Core DbContext and repository implementations).
- Database: SQL Server
.bakfile for restoring the sample database.
git clone https://github.com/BilalMahfouf/BankSystemWebAPI.git
cd BankSystemWebAPI- Open SQL Server Management Studio.
- Connect to your local SQL Server instance.
- In SSMS, right-click on Databases and choose Restore Database...
- Select Device, click Browse, and locate the
.bakfile in the Database folder of the repo. - Follow the prompts to restore the database (e.g., set target database name to
BankSystemDB).
-
Open
WebAPI/appsettings.json. -
In the
ConnectionStringssection, update theDefaultConnectionvalue to point to your restored database. Example:"ConnectionStrings": { "DefaultConnection": "Server=.;Database=BankSystemDB;Trusted_Connection=True;MultipleActiveResultSets=true" }
dotnet build
dotnet run --project WebAPI/WebAPI.csprojThe API will start on https://localhost:5001 (by default).
- Username:
Admin - Password:
1234
These credentials can be used for any seeded admin user functionality.
- Architecture: 3-tier architecture
- Framework: .NET Framework (C#)
- Database: Microsoft SQL Server with ADO.NET
- User Interface: Windows Forms (WinForms)
For any questions or feedback, please contact me at [email protected].
This project is licensed under the MIT License. See LICENSE for details.