Lewati ke konten utama

Arsitektur

Frontend utama berada di apps/web/ dan backend Go di apps/api/ dalam monorepo Bucket. Situs Docusaurus berada di apps/documentation/, sedangkan OCR berada di ~/Workshop/. Backend PHP dan Vue di repo eksternal ../../Bucket/ adalah implementasi legacy.

Browser / apps/web (React + Vite)
│ Axios + Bearer JWT
▼
apps/api (Go/Fiber)
│
┌────────┼───────────┐
│ │ │
PostgreSQL MinIO/S3 ~/Workshop/ocr_service
│
Redis + PostgreSQL OCR
│
Provider OCR

Legacy: Bucket/memo_front (Vue 2) → Bucket/memo_backend (PHP/Lumen)

Komponen dan tanggung jawab​

Lokasi dari root monorepoTanggung jawabTeknologi
apps/web/Route, halaman, state, autentikasi dan pemanggilan APIReact 19, Vite 6, TypeScript
apps/documentation/Situs dokumentasiDocusaurus
apps/api/API memo, JWT, API key, database, storage, OCRGo 1.25, Fiber v2, pgx
../../../Workshop/ocr_service/Job OCR, antrean, ekstraksi, callbackPython 3.11, FastAPI, Redis
../../Bucket/memo_front/ dan ../../Bucket/memo_backend/Implementasi legacyVue 2 dan PHP/Lumen 8

Path relatif di tabel mengasumsikan monorepo Bucket/ berada di Workspace/new bucket/ dan OCR di ~/Workshop/.

Alur permintaan​

  1. React mengirim POST /api/auth/login ke Go. Token dibaca dari response.data.data.token dan disimpan sebagai job-match-auth-token di localStorage.
  2. Axios client di apps/web/lib/api/client.ts memasang Bearer token pada request dan mengarahkan ke login bila respons 401.
  3. TanStack Query hooks di apps/web/lib/api/ membaca atau mengubah data memo, perusahaan, supplier, karyawan, dan modul lain.
  4. Backend Go menyimpan data bisnis di PostgreSQL dan lampiran di storage lokal atau S3/MinIO.
  5. Jika OCR perusahaan aktif, Go mengirim job ke layanan OCR. OCR memproses file melalui Redis dan provider, lalu menyediakan polling serta callback.

Pengaitan job OCR dengan lampiran di backend Go belum lengkap. Lihat status implementasi.

Sumber kebenaran konfigurasi​

  • Route frontend: apps/web/src/App.tsx.
  • Base URL dan Bearer token: apps/web/lib/api/client.ts serta VITE_API_URL.
  • Route Go: apps/api/internal/server/server.go.
  • Konfigurasi Go: apps/api/internal/config/config.go dan Compose Go.
  • Route OCR: ../../../Workshop/ocr_service/app/main.py.
  • Konfigurasi OCR: ../../../Workshop/ocr_service/app/core/config.py dan Compose OCR.