HR Workspace Suite (Leave & HRMS)
Production-grade multi-tenant HRMS — leave management with policies/accrual/Bradford score, time tracking, attendance with geo/map, self-service, onboarding, org branding, MFA, and multi-language support.
- React 18
- Vite
- MUI v6
- Redux
- Toolpad Core
- Express
- TypeScript
- MongoDB
- JWT
- Passport
- SendGrid
- Twilio
- i18next
01
Problem
Organizations needed a unified HR platform covering leave, time, attendance, and self-service — with tenant customization, approval workflows, and enterprise security (MFA, OAuth).
02
Solution
Built full-stack HR Workspace Suite with modular monolith backend (Express + TypeScript + MongoDB) and React + MUI frontend with Toolpad Core, covering leave, time, attendance, onboarding, and org settings.
03
Architecture
Modular monolith Express backend with feature modules (leave, time, attendance, self-service, onboarding, org). React 18 + Vite + MUI v6 + Redux frontend with i18next, Lexical editor, and Google Maps integration.
04
Business impact
Complete HRMS platform demonstrating multi-tenant SaaS architecture with enterprise security and comprehensive HR module coverage.
Decisions
Technical decisions
- 01Modular monolith over microservices for operational simplicity
- 02MUI + Toolpad Core for consistent enterprise HR UI patterns
- 03Passport OAuth for Google/Microsoft SSO integration
Features
Feature breakdown
- Leave Management
- Time Tracking
- Attendance
- Self-Service
- Onboarding
- Org Branding
- MFA
- Multi-language
Responsibilities
- Architected multi-tenant modular monolith with feature module isolation
- Built leave tracker with policies, accrual, approvals, and Bradford score
- Implemented time tracker, attendance with geo/map, and self-service modules
- Developed MFA (email/SMS/TOTP), OAuth (Google/Microsoft), and org branding
Challenges
- Ensuring strict tenant data isolation across all HR modules
- Modeling complex leave policies with accrual rules and Bradford factor calculations
Performance considerations
- Tenant-scoped cache keys
- Indexed tenant_id on all queries
- i18next lazy-loaded locale bundles
Lessons learned
- Multi-tenancy requires tenant context propagation at every layer — middleware, queries, and caching
- Modular monolith enables rapid HR module delivery without microservice overhead
Related engineering library