A full-stack web application built with .NET 8 Blazor WebAssembly and ASP.NET Core Web API, featuring JWT authentication, role-based access control, and a clean multi-project solution architecture.
Developed during internship at Kartepe Municipality.
This system allows organizations to manage employee records, departments, and roles through a dynamic, responsive web interface. The backend exposes a RESTful API secured with JWT, while the frontend is a Blazor WebAssembly SPA that communicates with the API.
Backend
- .NET 8 / ASP.NET Core Web API
- Entity Framework Core (Code-First)
- SQL Server
- JWT Authentication + Refresh Token
Frontend
- Blazor WebAssembly
- Syncfusion UI Components
- Bootstrap 5
DevOps
- GitHub Actions CI/CD (
dotnet.yml)
The solution is structured across 6 projects for clean separation of concerns:
EmployeeManagementSystem/
├── BaseLibrary/ # Shared models, DTOs, response wrappers
├── Client/ # Blazor WebAssembly frontend
├── ClientLibrary/ # Client-side services and HTTP helpers
├── Server/ # ASP.NET Core Web API
├── ServerLibrary/ # Server-side repositories and business logic
└── DemoEMS.sln
- JWT-based authentication with refresh token rotation
- Role-based access control (multiple user roles)
- Secure token storage and renewal handled on the client side
- Employee CRUD operations (create, read, update, delete)
- Department and role management
- JWT login / logout with refresh token support
- Responsive UI built with Syncfusion components and Bootstrap
- Generic Repository and Generic Controller patterns for standardized data access
- GitHub Actions pipeline for automated build and test on push
- .NET 8 SDK
- SQL Server (or SQL Server Express)
- Visual Studio 2022 or VS Code
- Clone the repository
git clone https://github.com/aslaydn/EmployeeManagementSystem.git
cd EmployeeManagementSystem- Update the connection string in
Server/appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=YOUR_SERVER;Database=EmployeeDB;Trusted_Connection=True;"
}- Apply migrations
cd Server
dotnet ef database update- Run the API
dotnet run --project Server- Run the Blazor client
dotnet run --project ClientThen open https://localhost:5001 in your browser.
GitHub Actions workflow (.github/workflows/dotnet.yml) automatically builds and tests the solution on every push to main.
Developed as an internship project at Kartepe Municipality, Kocaeli (Jul–Sep 2025).
Inspired by the Netcode-Hub tutorial series on Blazor WebAssembly and .NET 8 Web API.