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
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. 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.
Approach
- 01Developed scheduling, customer-record, and reporting applications with Node.js APIs and AngularJS interfaces.
- 02Implemented role-based access so staff, supervisors, and administrators see and change only what their role allows.
- 03Built REST integrations with client systems for customer and appointment data.
- 04Improved MySQL indexes and reporting queries, reducing the runtime of recurring reporting jobs by 40%.
- 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.