
ShiftMate is a staff shift management platform for companies running multi-store dispensing + OTC operations. It unifies availability submission, leave requests, shift creation, approval, and permission management into one.
Answering the field's call to "break free from creating with paper and Excel," the work of store managers, staff, and headquarters was built in-house from scratch in 10 months — a new-platform launch story.
A chain operating dispensing pharmacies and drugstores (OTC) nationwide. Pharmacists, registered sellers, and part-timers work at each store, and every store had to build its shift each month.
The keys were "unifying shift creation that differed from store to store" and "letting headquarters see every store's status while operating safely with role-based permissions." The aim was to reduce the creation burden on the field.
Staff submit preferred shifts and leave
Store managers create shifts on the grid
Approve requests and finalize the monthly shift
HQ and each store view the finalized shift
Digitizing multi-store, multi-role operations required a design that balanced usability the field would keep using with permissions specific to each store and role.
Because Excel and paper proliferated store by store, we needed a mechanism to centrally manage across all stores.
Paper and verbal requests were often missed, so we had to complete request and approval digitally.
Because headquarters, store managers, and staff handle different information, role × store permission control was indispensable.
To lighten the store manager's creation work, grid editing and the approval flow had to be made intuitive.
Shift creation for store managers, availability submission for staff, and master-data & permission management for headquarters — all built in-house from scratch with a Next.js frontend and a NestJS API. The work of all three roles was unified into a single workflow.
EXECUTIONBreak away from per-store Excel and paper, and unify shift creation digitally.
Headquarters can grasp every store's shift and request status in real time.
Digitize availability and leave requests, and prevent omissions with an approval flow.
With a permission matrix, safely control the information each store × role can handle.