README.md
docs/README.md
Contoh isi file untuk sistem antrian. Sesuaikan dengan implementasi proyek Anda.
# Dokumentasi Backend BIT
Dokumentasi ini adalah **template berisi contoh sistem pendaftaran antrian**, bukan deskripsi endpoint yang sudah tersedia pada portal Next.js ini. Nama service, route, schema, serta perintah operasional perlu disesuaikan dan diverifikasi pada backend nyata.
## Struktur
```text
docs/
├── 01-overview/
│ ├── system-context.md
│ └── container-diagram.md
├── 02-business-flow/
│ ├── application-flow.md
│ └── business-rules.md
├── 03-api/
│ ├── openapi.yaml
│ ├── authentication.md
│ ├── error-codes.md
│ └── bruno/
│ ├── bruno.json
│ ├── environments/
│ │ ├── local.bru
│ │ ├── staging.bru
│ │ └── production.bru.example
│ ├── auth/
│ │ └── login.bru
│ └── antrian/
│ ├── create-antrian.bru
│ └── detail-antrian.bru
├── 04-database/
│ ├── erd.md
│ └── data-dictionary.md
├── 05-architecture/
│ ├── sequence-diagrams.md
│ └── adr/
│ └── 0001-notifikasi-asynchronous.md
├── 06-operations/
│ ├── deployment.md
│ ├── environment.md
│ ├── monitoring.md
│ └── incident-runbook.md
└── README.md
```
## Mulai dari sini
- [System context](01-overview/system-context.md) dan [container diagram](01-overview/container-diagram.md).
- [Alur aplikasi](02-business-flow/application-flow.md) dan [business rules](02-business-flow/business-rules.md).
- [OpenAPI](03-api/openapi.yaml), [autentikasi](03-api/authentication.md), dan [error codes](03-api/error-codes.md).
- [ERD](04-database/erd.md) dan [data dictionary](04-database/data-dictionary.md).
- [Sequence diagram](05-architecture/sequence-diagrams.md) dan [contoh ADR](05-architecture/adr/0001-notifikasi-asynchronous.md).
- [Deployment](06-operations/deployment.md), [environment](06-operations/environment.md), [monitoring](06-operations/monitoring.md), dan [incident runbook](06-operations/incident-runbook.md).
## Mandatory dan opsional
Dokumentasi standar service dan Bruno collection tetap mandatory. Folder bernomor mengelompokkan informasinya. OpenAPI, diagram, ADR, dan runbook terpisah disediakan sebagai contoh opsional; sesuaikan kedalamannya dengan kebutuhan proyek. Bagian yang tidak relevan dapat diberi alasan “Tidak berlaku”. Informasi operasional penting tetap harus tersedia atau ditautkan.
## Mencoba Bruno
1. Buka folder `docs/03-api/bruno/` sebagai collection di Bruno.
2. Siapkan backend yang mengimplementasikan contoh [OpenAPI](03-api/openapi.yaml), atau sesuaikan request dengan API nyata. Portal ini tidak menyediakan API tersebut.
3. Pilih environment local (contoh port 8080); sesuaikan base_url.
4. Sediakan LOGIN_EMAIL dan LOGIN_PASSWORD sebagai environment proses lokal yang menjalankan Bruno. Jangan commit credential.
5. Jalankan Login, Create Antrian, lalu Detail Antrian. Login menyimpan access_token sementara; Create menyimpan antrian_id sementara.
6. Ganti idempotency_key untuk operasi pendaftaran baru. Pengulangan operasi yang sama memakai key dan body yang sama.
staging memakai domain .invalid sebagai placeholder. production.bru.example harus disalin menjadi environment lokal dan disesuaikan sebelum dipakai. Contoh create mengubah data; jalankan di lingkungan pengujian.
Format .bru mengikuti [dokumentasi Bruno](https://docs.usebruno.com/bru-lang/overview). Bruno mendukung file .bru; template ini mengikuti format yang dipakai tim.
## Pemeliharaan
Perbarui dokumen, OpenAPI jika digunakan, dan Bruno pada MR yang sama dengan perubahan kode. Tautkan JIRA, hasil test, migration, dan release record. Panduan tambahan: [standar dokumentasi](standar-dokumentasi.md) dan [collection](bruno-collection.md).