Skip to content
SK

personal project · completed

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

Problem

Organizations needed a unified HR platform covering leave, time, attendance, and self-service — with tenant customization, approval workflows, and enterprise security (MFA, OAuth).

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.

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.

Business Impact

Complete HRMS platform demonstrating multi-tenant SaaS architecture with enterprise security and comprehensive HR module coverage.

Technical Decisions

  • Modular monolith over microservices for operational simplicity
  • MUI + Toolpad Core for consistent enterprise HR UI patterns
  • Passport OAuth for Google/Microsoft SSO integration

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