ANNAS TRI WIDAGDO/PORTFOLIO · 2026
VOL. 01 // TECHNICAL ARCHIVE
■annastriwidagdo.me
SOFTWARE ENGINEER·FULL-STACK WEB DEVELOPER·MACHINE LEARNING ENGINEER
ENTRY 001OPENING TECHNICAL ARCHIVE00% · 01 / 01
Skip to content
■annastriwidagdo.me
  • 01Home
  • 02About
  • 03Projects
  • 04Blog●
  • 05Contact
LANGEN/ID
■annastriwidagdo.me
  • Software Engineer
  • Full-Stack Web Developer
  • Machine Learning Engineer
EMAILannastriw6@gmail.com↗ (opens in a new tab)LINKEDIN/in/annastriw↗ (opens in a new tab)GITHUB@annastriw↗ (opens in a new tab)CONTACTOpen Contact→

© 2026 Annas Tri Widagdo. Drafted in grids, shipped in code.

←Back to indexBLOG / 01
[ESSAY // 01]/Full-Stack Systems·3 min read·Project period: January - March 2026

Building a Multi-Branch ERP from Workflow to Production

How UKG System moved from operational requirements analysis to an integrated Next.js and NestJS application for two roles, eight module groups, and multiple branches.

Written byAnnas Tri Widagdo
  • #Next.js
  • #NestJS
  • #ERP
  • #Katalon Studio
  • #Ubuntu
[01]

Understanding the Multi-Branch Business Workflow

  1. 01Operational Analysis
  2. 02Role and Branch Scoping
  3. 03Figma UI and UX
  4. 04Next.js Frontend
  5. 05NestJS REST API
  6. 06Katalon Studio QA
  7. 07Ubuntu VPS Deployment

When building an Enterprise Resource Planning (ERP) platform for CV Universal Kharisma Globalindo, the first priority was understanding daily retail operations. The business runs multiple store branches, each needing its own inventory tracking, cashier shifts, operational expense records, and employee attendance.

As the Fullstack Developer on this project, I handled the complete delivery lifecycle from January to March 2026. This included analyzing business workflows, designing the user interface in Figma, developing the frontend in Next.js, building the backend with NestJS REST APIs, automating tests with Katalon Studio, and deploying the platform to an Ubuntu Linux VPS.

  • Two primary user roles: Owner and Employee (Karyawan), each with clear permission boundaries.
  • Eight connected module groups: User Management, Attendance, Inventory, Stock Orders, Store Operations, Cashier POS, Reports, and Analytics.
  • Branch-level data partitioning across inventory logs, shift expenses, and financial summaries.
[02]

Role-Based Architecture with Next.js and NestJS

The system separates responsibilities cleanly between roles. Store employees handle day-to-day branch activities: checking in for shifts, ringing up customer sales at the cash register, logging daily store expenses, and requesting extra stock when shelves run low.

The Owner role has broader oversight: reviewing live sales across all locations, approving inter-branch stock transfers, and inspecting monthly profit reports. The Next.js frontend communicates with a modular NestJS REST API, keeping business rules consistent. For example, completing a sale immediately deducts inventory from that branch, while canceling a transaction triggers an automatic rollback that returns items to available stock.

UKG System production dashboard showing operational inventory and sales metrics
Documented production dashboard interface displaying branch operational status and inventory levels.
[03]

Testing Business Rules with Katalon Studio

In an ERP application, calculation errors or access mistakes directly impact physical goods and revenue records. To ensure reliability, quality assurance combined manual testing with automated test suites built in Katalon Studio.

Automated test cases verified key user workflows: authentication state, role-based navigation guards, multi-branch data isolation, stock order approval chains, and point-of-sale receipt totals. Running these checks prevented regressions whenever backend endpoints or frontend components were updated.

Factual boundary

The project record documents comprehensive manual and automated testing in Katalon Studio for core workflows. It does not cite unmeasured efficiency gains, pass rate percentages, test coverage numbers, or unverified financial impact metrics.

[04]

Production Deployment on Linux Ubuntu VPS

  1. 01Set up the production runtime environment and reverse proxy on an Ubuntu Linux VPS.
  2. 02Configure domain routing and SSL security certificates for https://ukgsystem.com.
  3. 03Run database migrations and seed default branch locations and user privileges.
  4. 04Perform smoke testing on live endpoints before launching the system for daily store operations.

Following go-live in March 2026, UKG System moved directly into active production use for CV Universal Kharisma Globalindo. The platform continues to support daily sales, stock management, and multi-branch business operations reliably.

Related project experience

UKG System↗
Start of index
All Articles
NEXT ARTICLE →Integrating Machine Learning into a Web Application