Employee management system
A personal project built end to end to production standards: a layered .NET 10 API, a responsive React client, automated tests and a live deployment.
- View project (opens in a new tab)
Demo login: admin / ProdPassword123! (full access, sample data only). The first load may take a few seconds while the free-tier API wakes up.
- Client
- Self-initiated project
- My role
- Full-stack developer
- The problem
- I wanted a realistic project that goes beyond CRUD tutorials and covers the parts that matter in real systems: security, validation, testing, performance and deployment.
- Approach
- Structured the API with Clean Architecture (Core, Application, Infrastructure, API) and used DTO projections so list queries fetch only the columns they need.
- Validated input in three layers (React, FluentValidation, SQL constraints) and returned every error as RFC 7807 Problem Details with a trace id.
- Secured the API with JWT, PBKDF2 password hashing, a secure-by-default authorization policy, login rate limiting and security headers.
- Wrote integration tests that boot the real API against a dedicated SQL Server database rebuilt from migrations, which caught migration drift and a UTC timestamp bug.
- Tuned indexes using execution plans on 50,000 rows, added Serilog structured logging, and deployed the React app to Vercel and the API to IIS hosting over HTTPS.
- Key features
- Employee and department management with role-based access
- Search, filters, sorting and pagination kept in the URL
- Dashboard with totals and distribution by department
- JWT authentication with Admin and read-only User roles
- Login rate limiting, HSTS and Content Security Policy
- Automated integration tests against a real SQL Server database
- Technologies