I Built a Full Asset Management System in 48 Hours — Here’s the Story Behind It

Some projects start with a ticket.
This one started with a phone call.

A good friend of mine — the CEO of Telaga Group of Companies — reached out and said something along the lines of:

“Bro, our assets are everywhere. Spreadsheets here, WhatsApp there, maintenance notes somewhere else. We need one system. Can you fix this chaos?”

Now if you know me, you already know the answer was yes before he finished the sentence.

I’ve worked with them before on their reservation platform for Telaga Seafood, so I already understood their workflow style, operational pain points, and — most importantly — where systems usually fail in real businesses: not in features, but in usability.

This wasn’t going to be another pretty dashboard nobody uses.
This had to be operational software.

The Real Problem Most Companies Have (But Don’t Talk About)

On paper, asset management sounds simple:

  • Track items

  • Assign owners

  • Maintain them

  • Audit occasionally

In reality, it looks more like:

  • Nobody knows who has what

  • Maintenance only happens when something breaks

  • Transfers are verbal

  • Audits are panic-driven

  • Finance reports are… creative

The core issue is fragmentation. Systems exist, but they don’t talk to each other — or worse, they’re spreadsheets pretending to be systems.

That’s exactly the gap this project aimed to fix.

The Goal Was Never “Build a System”

The goal was:

Build something people actually use daily.

So instead of thinking like a developer, I designed it like an operations manager.

That meant:

  • strict access boundaries

  • real workflow approvals

  • audit trails

  • mobile-first interaction

  • QR-based physical tracking

Not a CRUD app. A working platform.

What the System Actually Does

At its core, the platform manages the full asset lifecycle inside one controlled environment:

  • asset onboarding and tagging

  • assignment and transfer workflows

  • maintenance work orders

  • stocktake sessions

  • disposal governance

  • reporting + audit logs

All of that is confirmed in the system’s feature spec.

Everything is role-driven so users only see what they should see.

The Role Design Was Intentional

One thing I’ve learned from building internal systems:

Permissions matter more than features.

So the platform runs on four roles:

  • Superadmin

  • Admin

  • Manager

  • Staff

Each role has real-world boundaries.

For example:

  • Staff can perform tasks but can’t access sensitive modules.

  • Managers can approve transfers and disposals.

  • Only higher roles can activate stocktake sessions.

This isn’t theoretical — it’s enforced at policy level, not just UI hiding.

That distinction alone prevents most internal misuse and accidental data damage.

Dashboards That Actually Help People Work

Different roles see different dashboards:

  • Staff → their tasks and scans

  • Managers → team workload + progress

  • Admin → system-wide alerts

  • Superadmin → organization metrics

So instead of one overloaded screen, everyone sees what matters to them.

That’s not just UX.
That’s operational clarity.

QR-Driven Workflow (The Real Game Changer)

If you want people to use a system, remove friction.

So I made scanning the main interaction.

Scan → open asset → take action.

From that screen, users can:

  • report issues

  • update maintenance

  • verify during stocktake

No searching. No typing asset IDs. No confusion.

The system even generates printable tag sheets with QR codes for physical labeling.

Because software shouldn’t live only inside screens. It should match the real world.

Maintenance Tracking That Doesn’t Wait for Breakdowns

Most companies don’t do preventive maintenance.
They do reactive maintenance.

So I built work orders with:

  • priorities

  • assignments

  • deadlines

  • evidence uploads

  • progress states

Staff can update only the work orders assigned to them, and once closed, they’re locked from edits.

Translation: no retroactive “editing history” to cover mistakes.

Stocktake Mode (My Favorite Feature)

Audits are usually a nightmare.

So I turned stocktaking into a controlled session system:

  • create session

  • assign staff

  • activate

  • scan assets

  • reconcile results

The system automatically calculates:

  • expected

  • verified

  • missing

  • unexpected

And yes, discrepancies can be exported instantly.

What used to take days can now be done in hours.

Disposal Isn’t Just “Delete Asset”

In real organizations, disposal requires accountability.

So the system enforces a lifecycle:

requested → approved → executed

Each disposal record stores:

  • method (sale/scrap/lost/etc.)

  • sanitization notes

  • evidence files

Only when execution happens does the asset officially become disposed.

That makes audits painless.

Finance Layer (Because Management Always Asks)

Leadership doesn’t just want lists.
They want numbers.

So reporting includes:

  • depreciation calculations

  • maintenance cost totals

  • book value

  • open maintenance counts

Exportable CSVs are available for finance workflows.

Which means no more manual compilation before meetings.

Security Decisions I Took Seriously

Internal systems are often the weakest security link.

So I locked this down intentionally:

  • login-only entry point

  • public registration disabled

  • optional reCAPTCHA protection

  • strict role policies

  • activity logging

All access is scoped by organization, site, and department boundaries.

All known XSS, SQLi, and common vulnerability vectors have been patched and tested.

Under the Hood

The architecture foundation includes:

  • API-ready backend

  • authentication layer ready for expansion

  • idempotent request handling

  • Docker development stack

These technical foundations are documented in the system notes.

In short: built for growth, not just launch.

Why I Built It in 2 Days

People think speed means shortcuts.

Not necessarily.

Speed comes from:

  • knowing exactly what to build

  • designing before coding

  • removing unnecessary features

Because I’ve built systems for operations teams for years, I already knew:

  • what they actually use

  • what they ignore

  • what slows them down

So instead of experimenting, I executed.

What This Project Proves

Good software isn’t about complexity.

It’s about alignment.

When you align system design with real workflows:

  • teams work faster

  • errors drop

  • reporting becomes accurate

  • audits stop being scary

This project isn’t just another internal tool.

It’s a working operational backbone.

Final Thought

A lot of companies chase flashy systems.
Very few invest in practical ones.

This build reminded me why I enjoy solving real business problems:

When software matches reality, it disappears — and work just flows.

And honestly?
That’s the best kind of system.

Want One for Your Organization?

If your company is still managing assets through spreadsheets, WhatsApp messages, or “bro I think Fiman has that laptop”… then you already know the problem.

I built this system because a real business needed a real solution — not theory, not slides, not buzzwords. Just something that works every day, for real people, in real operations.

If you’re running a company, department, or organization and you think a system like this could help your workflow, feel free to reach out. I’m always open to building practical tools that solve actual problems.

No pressure. No sales pitch.
Just solutions when they’re needed.

Previous Article

How I Built a Zero-Glitch Lucky Draw & Treasure Hunt System for LIHM 2025

Write a Comment

Leave a Comment

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨