DEV Community

Cover image for How I Built a Production-Ready Voucher Management System with Laravel 12 and Vue 3
Chris Lloyd Fallaria
Chris Lloyd Fallaria

Posted on

How I Built a Production-Ready Voucher Management System with Laravel 12 and Vue 3

The Problem

I'm a CS student in the Philippines. During my time observing how
offices work, I noticed something that kept bothering me.

Voucher processing is still done manually almost everywhere.
Someone fills out a paper form, hands it to the next office,
that office stamps it and passes it again, and so on — until
it either gets done or gets lost on someone's desk.

No tracking. No visibility. The client has no idea where their
request is. The admin has no data. Staff have no accountability.

I kept thinking — this is exactly the kind of problem software
should solve. So I spent the last few months building it.


What I Built

VMMS stands for Voucher Management & Monitoring System.

It handles the entire voucher request process — from the moment
a client submits a request, all the way through each department
that needs to process it, until it's finally released.

No paper. No manual routing. No "what's the status of my request?"


Tech Stack

I went with what I know best:

  • Laravel 12 for the backend — routing, queues, and email jobs
  • Vue 3 (Composition API) for the frontend — reactive and clean
  • Inertia.js v2 — so I don't have to build a separate API
  • Tailwind CSS + Vuetify 3 — for UI components and styling
  • MySQL 8.0 — for the relational data and complex queries
  • Resend — for transactional emails

What It Can Do

There are three separate panels depending on your role:

Admin
You get full control — manage users, voucher types, and see
everything through an analytics dashboard. There's a staff
performance leaderboard, rejection rate charts, audit logs,
and even custom branding options.

Staff
Each department gets their own queue of requests to process.
You can complete, reject, or flag a request for missing documents.
There's also a personal performance dashboard showing your stats
and ratings from clients.

Client
You submit requests online, track which department is currently
processing your voucher in real time, upload corrected documents
if something gets flagged, and rate the staff after it's done.

Some other things worth mentioning:

  • Deadlines are holiday-aware — staff don't get penalized for non-working days
  • Every action is logged in an audit trail
  • PDF and Excel exports on all reports
  • Automated email notifications at every stage

The Parts That Were Actually Hard

Date queries across MySQL and MariaDB
I originally wrote date queries using MySQL-specific functions
like MONTH() and MONTHNAME(). Broke on MariaDB. Had to rewrite
everything to use Carbon instead — which honestly ended up
being cleaner anyway.

The pipeline tracker
Getting the pipeline stepper to accurately show which department
is currently processing a request was trickier than I expected.
Especially edge cases — what if a department is skipped? What if
a request gets returned for missing documents mid-flow? Took a
few rewrites to get right.

Holiday-aware deadlines
I built a DateHelpers service that calculates business days
while excluding weekends and holidays. Sounds simple, took way
longer than expected. Really happy with how it turned out though.


Try It Yourself

🔴 Live demo: https://vmms-app-production.up.railway.app/login

Credentials if you want to explore:

Admin: admin@vmms.demo | Password: Admin@Demo123!
Staff: staff.infra@vmms.demo | staff.budget@vmms.demo | staff.procurement@vmms.demo | staff.supply@vmms.demo | staff.executive@vmms.demo | Password: Staff@Demo123!
Client: client@vmms.demo | Password: Client@Demo123!


It's Available on Gumroad

I'm selling VMMS in two versions:

🔒 Obfuscated / Protected — $99
Deploy it as-is. PHP backend is protected, Vue frontend and
config files are fully readable. Good for offices and
institutions that just want to run it.

👨‍💻 Full Source Code — $300
Every file is readable and editable. Good for developers who
want to customize it for a specific client or use case.

Both versions come with documentation, a quick start guide,
and deployment configs for Nginx, Apache, and Railway.

👉 https://getvmms.gumroad.com/l/zeroqz


Happy to answer questions in the comments — whether about
the build, the tech stack, or anything else. 🚀

Top comments (0)