Skip to content
← projects

PT Indopasifik Teknologi Medika Indonesia · Apr 2023 — Jan 2024

Tetama OMS

An internal order management system for a pharmaceutical distributor.

Tetama OMS — cover
Role
Frontend Engineer
Timeline
Apr 2023 — Jan 2024

Overview

Tetama.id is an application from PT Indopasifik Teknologi Medika Indonesia for managing sales orders of the company's products — medicines. It's used internally by the team that runs day-to-day distribution.

The challenge

Order management for pharmaceuticals is full of interlocking rules: catalogue data, order states, and discount logic that all have to stay consistent. The challenge was turning that complexity into interfaces an internal team could operate quickly and confidently — without mistakes leaking into real orders.

My role

  • Frontend Engineer (freelance) building and enhancing OMS features.
  • Focus on usability and maintainability of complex, data-heavy workflows.

Approach

I broke the system into clear domains — catalogue, orders, discounts — and kept each form typed and validated with Zod + React Hook Form so bad data can't be submitted. Critical flows are covered with React Testing Library for confidence on every change.

Creating a sales order — line items, shipping, PPN, and totals — and the discount builder with per-customer, per-product rules
Creating a sales order — line items, shipping, PPN, and totals — and the discount builder with per-customer, per-product rules

What I built

  • SKU management for the medicine catalogue.
  • Sales Order management — the core workflow of the system.
  • Discount management, with its own rules and combinations.
  • KUM Talangan — a bridge-financing flow that lets a pharmacy borrow from the bank to fund its orders.

KUM Talangan

Pharmacies often need to place an order before the cash to pay for it has come in. KUM Talangan bridges that gap: it lets an apotek apply for bank financing (Bank Mandiri) straight from Tetama, so the distributor gets paid while the pharmacy is funded by the bank.

I built the applicant-facing registration as a guided, multi-step flow — loan info → personal info → address — with each step typed and validated so the KYC data reaching the bank is clean. KTP and domicile addresses use cascading province → city → district → sub-district selects, with a "same as KTP" shortcut, and a Cek Informasi Pinjaman view lets an applicant check their loan status.

KUM Talangan — a multi-step, validated loan registration (loan, personal, address KYC), powered by Bank Mandiri
KUM Talangan — a multi-step, validated loan registration (loan, personal, address KYC), powered by Bank Mandiri

Under the hood

  • Next.js 14 + TypeScript with a Chakra UI component layer.
  • NextAuth for internal authentication.
  • Zod + React Hook Form for typed order forms; React Testing Library for critical flows.

Tools

Figma · VS Code · Postman · Git · JIRA · GitHub Actions · Docker · Jenkins · Pritunl · VPS

Next project

TaniDoc Nufarm