Saeree ERP - Complete ERP Solution for Thai Organizations Contact Us

Success Story: Major Saeree ERP Upgrade for TGO (Episode 2)

Major Saeree ERP Upgrade for TGO (Episode 2) — Technical Deep Dive
  • 21
  • February

In Episode 1, we covered the big picture of the major upgrade -- from the reasons behind it, what changed, to the 14-year timeline of Saeree ERP at TGO (Thailand Greenhouse Gas Management Organization). In this episode, we take a purely technical deep dive into why Angular 20, PrimeNG 20, and Bootstrap 5 were chosen, and how these technologies work together in an enterprise-grade ERP system.

Why Angular 20 — A Framework Built for Enterprise Systems

Choosing a frontend framework for an ERP system is not the same as choosing one for a typical website. An ERP system demands a framework that supports large-scale projects, offers a clear and opinionated structure, can be maintained long-term, and has a robust ecosystem -- Angular 20 checks every box.

Key strengths of Angular 20 that make it ideal for ERP:

  • Standalone Components -- NgModules are no longer required, resulting in a cleaner code structure. Each component is self-contained and can be lazy-loaded immediately, reducing bundle size and improving page load speed.
  • Signal-based Reactivity -- A new reactivity system that replaces the legacy Zone.js approach, enabling more precise and efficient UI updates, especially on data-heavy screens such as report tables with thousands of rows.
  • SSR/SSG built-in -- Built-in support for Server-Side Rendering and Static Site Generation without additional packages, improving initial page load performance.
  • TypeScript strict mode -- Running TypeScript in strict mode helps prevent bugs from typos or incorrect types, which is critical for an ERP codebase of this scale.

When compared with the legacy system (ZK Framework), the differences are striking:

Criteria Legacy System (ZK Framework) Angular 20
UI/UX Desktop-application-style UI on the web; outdated appearance; difficult to customize Modern UI; fully customizable; supports Dark/Light Mode
Performance Primarily server-side rendering; slow with large datasets SPA (Single Page Application); fast loading with Lazy Loading and Virtual Scrolling
Responsive No mobile support; desktop-only display Fully responsive across Desktop, Tablet, and Mobile
Ecosystem Small developer community; limited component libraries Large community with numerous component libraries (PrimeNG, Angular Material, etc.)
Maintainability Difficult to find skilled developers; niche technology Easy to recruit developers; extensive documentation and large community

PrimeNG 20 — An Enterprise-Grade UI Component Library

With Angular 20 chosen as the framework, the next question was which UI Component Library to use -- Angular Material or PrimeNG. The answer was PrimeNG 20.

Why PrimeNG was chosen over Angular Material:

  • Comprehensive enterprise components -- PrimeNG offers over 80 components covering every need of an ERP system, while Angular Material focuses on Material Design, which is better suited for general-purpose applications.
  • Enterprise-grade DataTable -- Supports Sorting, Filtering, Lazy Loading, Virtual Scrolling, Row Grouping, Column Reordering, and Export to Excel/PDF -- all essential features for ERP reports containing tens of thousands of rows.
  • Flexible theme system -- Allows full theme customization, including instant Dark/Light Mode switching.
  • TreeTable -- Displays hierarchical data, which is essential for the Chart of Accounts and organizational structures.

Commonly used components across Saeree ERP modules:

Module PrimeNG Components Used Example Usage
e-Report DataTable + Chart Financial, accounting, and inventory reports with visual charts; exportable to both Excel and PDF
KPI Dashboard Chart + Card Real-time KPI visualization using Bar Charts, Pie Charts, and summary Cards
Budget Approval Stepper + Dialog Step-by-step approval workflow display with confirmation Dialogs
Chart of Accounts TreeTable + Dropdown Hierarchical chart of accounts display with expandable/collapsible nodes
Budget Calendar Calendar + DataTable Budget cycle visualization in calendar format with detailed data tables
e-Report system built with Angular 20 and PrimeNG 20

Bootstrap 5 + PrimeNG — How They Work Together

You might wonder why both Bootstrap 5 and PrimeNG are used in the same project. The answer is that each serves a distinctly different purpose, and they do not conflict with each other.

  • Bootstrap 5 handles layout -- Grid System (12 columns), Spacing (margin, padding), Typography, Responsive Breakpoints -- everything related to page layout and structure.
  • PrimeNG handles components -- Table, Form, Dialog, Chart, Calendar, Stepper -- everything that is an interactive UI component.

This clear separation of responsibilities provides several benefits:

  • No CSS conflicts -- Bootstrap manages layout while PrimeNG manages components, with no overlap between them.
  • Developer familiarity -- Bootstrap is a CSS framework most developers already know, eliminating the need to learn a new grid system.
  • Easier maintenance -- When upgrading Bootstrap or PrimeNG to newer versions, each can be upgraded independently without affecting the other.

Dark Mode / Light Mode — More Than Just Aesthetics

The new version of Saeree ERP supports both Dark Mode and Light Mode, allowing users to choose their preferred display theme.

Implementation approach:

  • CSS Variables -- Colors, font sizes, spacing -- everything is defined as CSS Variables that can be switched instantly based on the active theme.
  • PrimeNG Theme System -- PrimeNG 20 provides a Theme API that supports runtime theme switching without requiring a page reload.
  • prefers-color-scheme -- The system detects the user's OS-level color scheme preference via media queries and applies it as the default.
  • User preference in localStorage -- Once a user selects a theme, the preference is saved to localStorage so it persists across sessions.

Benefits of Dark Mode in an ERP system:

  • Reduced eye strain -- Staff who work in the ERP system all day benefit from reduced light exposure, helping to prevent eye fatigue and headaches.
  • OLED battery savings -- On devices with OLED displays (certain tablets and laptops), Dark Mode can save 30-60% of display power consumption.
  • Improved accessibility -- Users with vision sensitivity or light sensitivity can switch to Dark Mode for a more comfortable experience.
Dark Mode in Saeree ERP helps reduce eye strain

Multi-Language Support (Thai + English)

The new version of Saeree ERP for TGO supports two languages: Thai and English, with instant language switching that requires no page reload.

Technologies used:

  • @ngx-translate/core -- The most widely used internationalization (i18n) library for Angular.
  • JSON Translation Files -- Each language has its own JSON file containing translations for every text string in the system.
  • Dynamic Language Switching -- Users can toggle the language instantly, and all labels, messages, and table headers change simultaneously.

Real-world example

When a finance officer opens the "Trial Balance" report in Thai mode, the labels read "Debit", "Credit", and "Balance" in Thai. When they switch to English, those labels instantly change to "Debit", "Credit", and "Balance" -- while the numerical data remains exactly the same.

Why is multi-language support critical for TGO?

TGO works continuously with international organizations, including the UNFCCC (United Nations Framework Convention on Climate Change), global carbon markets, and international environmental agencies. Having English language support in the system enables:

  • Instant export of English-language reports for international conferences and meetings.
  • Direct system access for international experts and partners without requiring manual translation.
  • Compliance with international reporting standards that require data to be presented in English.

Overall Architecture

An overview of the Saeree ERP system architecture after the upgrade:

Layer Technology Details
Frontend Angular 20 + PrimeNG 20 + Bootstrap 5 SPA (Single Page Application) running in the browser; supports both Desktop and Mobile
Backend REST API (Saeree ERP Backend) The existing Saeree ERP backend serving data through REST APIs
Database PostgreSQL The original Saeree ERP database with over 14 years of data; no migration required
Authentication SSO + 2FA Single Sign-On integrated with other organizational systems, plus Two-Factor Authentication for enhanced security
Security SSL A+ / HTTPS Achieved A+ rating on SSL tests; all connections are fully encrypted

The heart of the architecture

The most important aspect of this architecture is the clean separation between Frontend and Backend. The Frontend (Angular 20) communicates with the Backend exclusively through REST APIs, making it possible to upgrade the Frontend without affecting the Backend or database. This is precisely why 14 years of data remained fully intact after the upgrade.

The entire system runs in the browser across Desktop and Mobile (Responsive) -- staff can review reports, approve documents, or check the KPI Dashboard from their phones anytime, anywhere.

Summary

The major upgrade for TGO (Thailand Greenhouse Gas Management Organization) was not merely a visual refresh -- it was a full technology stack modernization, moving from the legacy system to Angular 20 + PrimeNG 20 + Bootstrap 5 with Dark Mode, Multi-Language support, and a cleanly separated Frontend/Backend architecture.

Key technical gains from this upgrade:

  • Modern UI/UX -- From a desktop-application-style interface to a fully responsive web application.
  • Improved performance -- Signal-based Reactivity, Lazy Loading, and Virtual Scrolling.
  • High maintainability -- TypeScript strict mode, Standalone Components, and an easier talent pool to recruit from.
  • Future-ready -- Angular has a clear release cycle with Long-Term Support.

In the next installment (Episode 3), we will dive into the Document Approval Workflow -- a step-by-step approval system designed specifically for TGO, integrated with the e-Office system.

"Technology changes every 3-5 years, but an organization's data must endure forever -- the key to a successful upgrade is modernizing the frontend while keeping every single record fully intact."

- Saeree ERP Team

Interested in frontend technology consulting for your organization's ERP system? You can schedule a demo or contact our consulting team to assess your organization's readiness.

Interested in ERP for your organization?

Free consultation with experts from Grand Linux Solution -- no obligation

Request a Free Demo

Call 02-347-7730 | sale@grandlinux.com

image

About the Author

Expert ERP team from Grand Linux Solution Co., Ltd., ready to provide comprehensive ERP consulting and services