> ## Documentation Index
> Fetch the complete documentation index at: https://itec-docs.digitcodestudio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Standar Arsitektur Kode & Atomic Design

> Aturan standar pengembangan kode frontend dan backend: batas 500 baris, hierarki komponen, dan pagination standar

## Prinsip Mutlak Pengembangan

Seluruh pengembang perangkat lunak diwajibkan mematuhi aturan baku berikut demi menjaga keterbacaan, kebersihan, dan kemudahan pemeliharaan jangka panjang sistem ITEC Solution Indonesia.

**1. Maksimal 500 Baris Per Berkas**

Setiap berkas di antarmuka frontend maupun backend API dirancang modular dengan batas maksimal **500 baris kode**. Setiap fitur dipecah menjadi komponen atau service modular yang rapi, independen, dan reusable.

**2. Komponen Pagination Standar (DataTablePagination)**

Seluruh antarmuka data table menggunakan komponen pagination seragam: `components/DataTablePagination.tsx`, mencakup pemilihan baris per halaman (10, 25, 50, 100), status rentang data, tombol navigasi first/prev/angka/next/last, dan performa instan tanpa lag.

## Struktur Hierarki Komponen Frontend

Modul antarmuka diorganisir mengacu pada konsep **Atomic Design**:

| Lapisan | Direktori / Contoh | Tanggung Jawab Desain |
| :- | :- | :- |
| **Atoms** | `StageBadge.tsx`, `StatusPill.tsx` | Komponen visual terkecil tanpa state kompleks |
| **Molecules** | `QuotationSummaryBox.tsx`, `PipelineFilters.tsx` | Gabungan atom untuk kalkulasi dan kontrol spesifik |
| **Organisms** | `CreateQuotationModal.tsx`, `PipelineTableView.tsx` | Komponen fungsional lengkap yang menggabungkan molekul |
| **Constants** | `pipeline-presets.ts`, `status-constants.ts` | Konfigurasi statis dan preset pengujian |
| **Utils** | `quotation-calculations.ts`, `excel-export.ts` | Pure functions perhitungan matematika dan pemformatan data |
| **Page Root** | `page.tsx` | Controller ramping (\< 500 baris) pengatur tata letak halaman |

## Arsitektur Backend Go (`itec-api`)

Pada modul backend Golang:

* **Pemisahan Handler**:
  * CRUD dasar diletakkan di `[entity]_handler.go`.
  * Alur kerja khusus (approval, email, validasi, konversi) diletakkan di `[entity]_actions_handler.go`.
* **Service Layer**: Logika bisnis dan transaksi database diisolasi dari HTTP context.
* **Cascade Clean-up**: Penghapusan data membersihkan relasi child secara bersih dalam satu transaksi database (`tx`).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.