Product · Full-stack
TimeMarket
A workload-management PWA for Bank Indonesia's Gorontalo office that balances how work is delegated across employees.
- Role
- Web Developer (Contract)
- Timeline
- May 2021 — Aug 2022
- Context
- Bank Indonesia — Gorontalo Office
- Stack
- Laravel
- Livewire
- PWA
- MySQL
Problem
As part of Bank Indonesia's internal innovation programme, the Gorontalo office needed a way to delegate work accurately, monitor it, and keep each employee's workload within a reasonable limit.
Context
It had to be usable from anywhere and easy for every employee — from staff to the head of office. Four roles were involved: Employee, Team Leader (Chief), Head of Office (KPw) and Admin, each with different rights over programmes (proker) and jobs.
Solution
- An interactive UI with Livewire to keep development fast.
- Mobile-first design so it works equally well on desktop and phones.
- A semi-PWA mode: with the right metadata, the app can be installed from Chrome and opened like a native Android app.
- A user manual for rollout.
Architecture
Layer detail
Mobile-first PWA
Installable from Chrome so it behaves like a native Android app.
Technical challenges
The permission model was the core of the product: who can create, edit, transfer or complete a job depends on the role and on whether the user leads that programme.
| Feature | Employee | Chief | Head of Office | Admin |
|---|---|---|---|---|
| View programmes & jobs | Yes | Yes | Yes | Yes |
| Add programme | — | Yes | — | — |
| Edit programme | If programme lead | Yes | — | Yes |
| Add / edit / delete job | If programme lead | If programme lead | — | — |
| Transfer job to others | If programme lead | If programme lead | — | — |
| Mark job completed | Yes | — | — | — |
| Main calendar | Yes | Yes | Yes | — |
Impact
- user roles with distinct permissions
- 4user roles with distinct permissions
- full-stack build of v1
- 6 mofull-stack build of v1
- contract extended for a second version
- v2contract extended for a second version
The contract was extended for a second version, delivered in 3 months, followed by 6 months of maintenance.
Lessons learned
For internal tools, adoption beats features. Making it installable on the phones people already carried did more for usage than any single feature.