Overview
Full-stack employee attendance and payroll management system built with .NET 8 Clean Architecture, React 19, SQL Server 2022, and Docker. Deployed across dev, UAT, and production environments on a self-managed VPS.
What I Built
- Secure login with JWT authentication and scoped multi-location authorization via
EmployeeLocationRolesjunction table (location-specific Admin and SuperAdmin roles) - Attendance workflows — mark attendance, bulk save, lock validation, 48-hour unlock approval flow, and nightly auto-lock background jobs
- Payroll processing with Excel import (ClosedXML), async PDF generation via
.NET Channel<T>, and QuestPDF-based payslip reports - WhatsApp payslip delivery through AiSensy with signed PDF download links, idempotent retry tracking, and provider-swap abstraction
- DB-backed feature flags with backend
IMemoryCacheand frontend React Query caching — runtime toggling without redeployment - Analytics and export modules for attendance trends, per-location statistics, and multi-page PDF reports
- Containerized with Docker Compose across dev/UAT/prod; Caddy/Nginx reverse proxy with HTTPS
- Automated deployment via shell scripts — code deploy, DB backups, health checks, environment releases
Tech Stack
- Backend — .NET 8 Web API, Clean Architecture, Entity Framework Core, SQL Server 2022
- Frontend — React 19, Vite, TanStack Query, TanStack Table
- Infra — Docker, Caddy/Nginx, VPS (self-managed)
- Libraries — ClosedXML, QuestPDF, AiSensy