All projects
● Live 2024–2025 Workforce & operations

Operations & workforce portal

Three apps that work together for the team running daily operations — an admin panel, an agent dashboard, and a campaign runner. Vanilla JS, Supabase, and a lot of realtime.

STACK
Vanilla JS · Supabase · Realtime
ROLE
Solo — three apps, one shared backend
CONTEXT
Internal tools at my day job
STATUS
Live — 30+ agents across 2 departments daily

The problem

Two departments — customer service and customer excellence — were juggling three different tools for scheduling, agent break tracking, and outbound campaigns. Data lived in disconnected places. Managers spent hours reconciling.

What I built

  • Admin panel: workforce scheduling, break compliance, KPI dashboards, real-time roster
  • Agent portal: shift schedule, break requests, KPI view, notifications
  • Campaign portal: outbound campaign runner with database-driven call scripts, duplicate handling, live agent notifications
  • Shared Supabase backend so all three apps read from the same tables
THE THREE APPS

One backend, three apps

Admin panel login
Admin panel · login
Agent portal login
Agent portal · login
Campaign portal login
Campaign portal · login
TECHNICAL DEEP-DIVE

A simple stack, on purpose

I kept it plain JavaScript on purpose — no framework, no build step. It loads instantly, and I can fix any problem right in the browser. Sometimes the simple choice is the right one. And there is room to grow: the system is built to handle 150–200 agents at the same time, so the company can scale up without a rewrite.