All case studies
Case study 12Full-Stack

Scheduling & Customer Records Suite

Node.js and AngularJS apps for scheduling, customer records, and 40% faster recurring reports.

Role
Software engineer · APIs, UI, and reporting
Core stack
Node.jsAngularJSMySQLREST APIsMocha/Chai
−40%
Runtime of recurring reporting jobs
3 roles
Staff, supervisor, and administrator access
Jenkins
Builds with Mocha/Chai regression tests

Overview

Client web applications for day-to-day operations: staff scheduling, customer records with role-based access, and recurring operational reports, connected to client systems over REST.

Client teams ran operations from spreadsheets and slow overnight reports. They needed shared scheduling and records with the right access for each role, and reports that finished before the workday started.

Product walkthrough

The flow, screen by screen

Schedule board
01 / 03

Schedule board. A daily dispatch board by crew, with a double-booking and a pending swap flagged and unassigned jobs waiting to be scheduled; supervisors reassign jobs, staff see their own.

ArchitectureCorePlatformAsync / control
RESTSQLsyncreportsdeployClient systemsREST integrationsMocha/Chai testsregression suiteAngularJS appschedule · records · reportsNode.js REST APIrole-based accessMySQLtuned indexesJenkinsbuilds · deploysReport jobsscheduled · 40% fasterLinux serversrepeatable deploys
The AngularJS app calls a Node.js REST API that enforces roles and reads MySQL; scheduled report jobs run on tuned indexes, and Jenkins builds, tests, and deploys to Linux servers.

Approach

  1. 01Developed scheduling, customer-record, and reporting applications with Node.js APIs and AngularJS interfaces.
  2. 02Implemented role-based access so staff, supervisors, and administrators see and change only what their role allows.
  3. 03Built REST integrations with client systems for customer and appointment data.
  4. 04Improved MySQL indexes and reporting queries, reducing the runtime of recurring reporting jobs by 40%.
  5. 05Introduced Mocha/Chai regression tests, Jenkins builds, and repeatable Linux deployments, and maintained support documentation.

Key decisions

Enforce roles in the API

Permissions are checked on the server, not just hidden in the interface.

Tune the reports people actually run

Index and query work started from the slowest recurring jobs, measured before and after.

Repeatable deployments

Scripted Linux deployments through Jenkins replaced manual server changes.

Outcomes

  • Reports finish well before the start of the workday.
  • Fewer production defects through regression tests and repeatable deployments.
  • Node.js
  • AngularJS
  • MySQL
  • REST APIs
  • Mocha/Chai
  • Jenkins
  • Linux

Working on something similar?

I work with clients worldwide, across any time zone. Tell me what you're building.