Back to selected projects

BACKEND / WEB / SYSTEM DESIGN

PROJECT / 02

Warung UMKM Riau

Operational Platform for UMKM

A centralized platform for UMKM rental, sales, inventory, transaction history, and booth location management in Riau.

ROLE
Backend developer, system design
PERIOD
SEP 2024 — JAN 2025
TECH STACK
Node.js · Express · TypeScript · PostgreSQL · REST API · RBAC · Leaflet

PROJECT OVERVIEW

From need to outcome.

A clear project story: situation, task, action, then result.

01 / STAR

Situation

UMKM in Riau needed a digital system to replace rental and sales records kept in books, which were prone to human error and difficult to trace when items went missing or were damaged.

02 / STAR

Task

Bring rental, sales, inventory, and item history into one system, while making responsibilities clear for each user role.

03 / STAR

Action

We built a Node.js, Express, and TypeScript backend with a relational database, REST API, and Role-Based Access Control (RBAC). It supports transaction management, inventory, rental history, and booth location monitoring.

04 / STAR

Result

The system brought rental and sales workflows into one place, with access managed across three user roles: Director, Division Head, and Customer.

03 / PRODUCT GALLERY · 02 SCREENS

Explore the product.

Use the arrows, dots, or swipe to browse the project screens.

IMPLEMENTATION DETAILS

How the solution was built.

The key decisions behind the implementation.

01

API

Node.js and Express expose REST endpoints for operational workflows.

02

SERVICE

Business rules remain separate from transport and persistence concerns.

03

DATABASE

PostgreSQL supports inventory, rental, sales, and booth data.

04

ACCESS

RBAC defines what each operational role can manage.

TECHNOLOGIES
Node.jsExpressTypeScriptPostgreSQLREST APIRBACLeaflet

EVIDENCE & METRICS

Numbers behind the result.

3USER ROLES

06 / WHAT I LEARNED

What remains useful.

The project reinforced the value of clear backend boundaries when one system has several operational workflows. Keeping the service and repository layers distinct made the system easier to reason about.