Each case study starts with what was broken, then what I changed and how it behaves now.
Conceptual illustration with fictional data or statuses. Not a production screenshot.
Marketing Reporting System
Oneapp
Fullstack Developer
Marketing reporting. Users access and manage the report data the backend serves to the frontend.
Problem
Reporting data needed to be integrated and displayed efficiently on the frontend.
My contribution
Collaborated with the backend team to map the required reporting data, align the API contract, validate returned data, and improve the application's data retrieval and processing flow.
Stack
Vue.js
Quasar
Golang
Gin
PostgreSQL
Outcome
Report data now moves through one agreed API contract, so what the report displays matches what the backend returns.
View case study Conceptual illustration with fictional data or statuses. Not a production screenshot.
Audit Management System
Smart Audit
Fullstack Developer
Audit operations: auditors work through inspection tasks, document findings, and validate the data before it reaches a report.
Problem
Separate mobile submission requests could save the inspection while the assignment failed, leaving partially saved data or an inconsistent status.
My contribution
Preserved local state and added a recovery marker, refetched inspection and assignment records to identify completed steps, and retried only the failed step with the latest lock_version.
Stack
Vue.js
Quasar
Golang
Outcome
Only the failed step is retried, so a partial save no longer forces the user to resubmit the whole form.
View case study Conceptual illustration with fictional data or statuses. Not a production screenshot.
Project Management System
PROMIS
Fullstack Developer
Project and Change Request tracking for the IT team, from the request being raised through scheduling to the work being marked done.
Problem
Frontend-only Change Request status transitions could allow invalid changes or updates beyond user permissions as requests moved between teams and workflow stages.
My contribution
Enforced status-transition rules on the backend using the previous status, user role, and allowed workflow stage, then exposed validated data through the API for the frontend to display status, owner, and progress.
Stack
Next.js
NestJS
MySQL
Outcome
A Change Request can no longer skip a stage or be moved by someone without the right role, because the backend rejects the transition before it is saved.