Skip to Content
DeveloperArsitektur

Arsitektur

Makarya berjalan sebagai satu aplikasi Next.js App Router. Tiap layer punya tanggung jawab sendiri, meski nama direktorinya tidak selalu sama.

LayerLokasi aktualTanggung jawab
Presentationsrc/app, src/features, src/componentsRead projection, navigasi, formulir, UI status
Applicationsrc/lib/data dan handler src/app/apiCommand/query, pemeriksaan aktor, transaksi, proyeksi
Domainsrc/domainMatching, readiness, izin, kelayakan Proyek singkat, kebijakan upload
Infrastructuresrc/lib/database.ts, src/lib/auth, src/lib/storage, src/lib/securityDatabase, sesi, file privat, request boundary

Jalur baca

Server component memeriksa sesi dan peran sebelum memanggil query aplikasi. Query hanya mengambil data yang boleh dilihat aktor, lalu menyiapkan proyeksi untuk UI. Menyembunyikan menu tidak menggantikan pemeriksaan izin di server.

Jalur command

Form mengirim request ke route handler. Handler memeriksa sesi, origin, rate limit, dan schema input. Sebelum mengubah data, fungsi aplikasi memastikan aktor memiliki resource, organisasi, grant, dan penugasan yang sesuai.

Saat penilai menyelesaikan atau mencabut assessment, satu transaksi menyimpan hasil dan dampaknya pada requirement match, readiness, audit, serta command receipt. Domain tidak mempercayai status yang dikirim browser.

File privat

Route memeriksa izin sebelum storage adapter mengirim stream file. URL Blob sendiri tidak membuka akses publik.

Dokumentasi dan orientasi

Nextra menyajikan src/content di /docs. Help membaca artikel lokal tanpa database. Driver.js dimuat saat workspace dibuka dan hanya menyimpan preferensi seen. Ketiganya tidak menjalankan command domain.

Peta direktori aktual tersedia pada struktur proyek. Jalur offline belum tersedia pada runtime.

Last updated on