Skip to main content

EMMA โ€“ Employee Management & Development Platform

Repository

Overviewโ€‹

EMMA is a full-stack internal people-ops platform. It tracks employee profiles, learning activities, career goals, vacation records, hardware purchases, and org hierarchy. It integrates with Google Workspace and internal BigQuery datasets via scheduled sync services.

Tech Stackโ€‹

Frontendโ€‹

  • React 18, TypeScript 5, Vite
  • Material-UI (MUI) v5
  • TanStack Query v5
  • Firebase Authentication (Google OAuth)
  • React Router v6
  • ECharts, Lunr.js, Luxon
  • PWA via Workbox

Backendโ€‹

  • Java / Spring Boot on Cloud Run
  • Objectify (Datastore ORM) for legacy data; Firestore for new models

Sync Servicesโ€‹

Four Node.js services on Cloud Scheduler that pull data from Google Workspace Directory and BigQuery into the employee data store.

Infrastructureโ€‹

GCP (Cloud Run, Firestore, Datastore, Cloud Scheduler, Artifact Registry, Secret Manager), Terraform, GitHub Actions, Cloud Build, SendGrid.

Architectureโ€‹

React PWA (Firebase Auth)
โ†’ Spring Boot REST API (Cloud Run)
โ†’ Firestore / Datastore

Node.js sync services (Cloud Scheduler)
โ†’ Google Directory API
โ†’ BigQuery
โ†’ Spring Boot REST API

Key Featuresโ€‹

  • Org-wide visualisation dashboard: people-leader network graph, track distribution radar, project hours chart, seniority distribution (ECharts)
  • Client-side full-text search (Lunr.js)
  • Email notifications via SendGrid
  • Multi-environment infrastructure managed with Terraform

Getting Startedโ€‹

Clone the repository and follow the README for setup instructions. Most frontend work can be done by pointing the frontend at the staging API โ€” no local backend required.