Selamat datang di proyek Doko! Ini adalah contoh aplikasi web full-stack yang lengkap dengan lingkungan pengembangan, testing, dan monitoring, yang seluruhnya berjalan di dalam kontainer menggunakan Docker.
Sebelum memulai, pastikan Anda telah menginstal perangkat lunak berikut di komputer Anda:
Berikut adalah langkah-langkah untuk menginstal dan menjalankan proyek ini dari awal.
git clone https://github.com/Riyan117/doko-simple-fullstack.git
cd doko-simple-fullstackLangkah ini penting agar IDE Anda bisa mengenali semua library dan untuk menjalankan skrip lokal.
A. Dependensi Frontend (React & Playwright)
cd frontend
npm install
cd ..B. Dependensi Backend (Bun & Express)
cd backend
bun install
cd ..Perintah ini akan membangun semua image Docker dan menjalankan semua service (database, backend, frontend, monitoring) di latar belakang.
docker-compose up -d --buildSetelah berjalan, Anda bisa mengakses:
- Aplikasi Frontend: http://localhost
- Dashboard Monitoring: http://localhost:3000 (login:
admin/admin) - API Backend (opsional): http://localhost:8080/api/hello
- Database (via klien): Host:
localhost, Port:5432, DB:app_db, User:user, Pass:password
Testing dijalankan secara terpisah. Pastikan aplikasi utama sedang berjalan (langkah 3).
A. End-to-End Testing (Playwright)
docker-compose run --rm playwrightB. Load Testing (k6)
docker-compose run --rm k6(Lihat hasilnya secara real-time di dashboard Grafana)
Untuk menghentikan semua kontainer yang berjalan, gunakan perintah:
docker-compose downBerikut adalah penjelasan mengenai struktur folder dan file utama dalam proyek ini:
doko-simple-fullstack/
├── backend/ # Direktori untuk service backend
│ ├── Dockerfile # Instruksi untuk membangun image backend menggunakan Bun.
│ ├── package.json # Dependensi backend (Express, pg).
│ └── server.js # Logika server, termasuk endpoint /api/hello dan koneksi ke PostgreSQL.
│
├── frontend/ # Direktori untuk service frontend
│ ├── Dockerfile # Build multi-stage: build aplikasi React, lalu sajikan dengan Nginx.
│ ├── nginx.conf # Konfigurasi Nginx, termasuk proxy untuk meneruskan request /api ke backend.
│ ├── package.json # Dependensi frontend (React) dan testing (Playwright).
│ ├── public/ # Aset publik dan file index.html utama.
│ ├── src/ # Kode sumber aplikasi React.
│ └── tests/ # Direktori untuk skrip tes E2E Playwright.
│ └── app.spec.js # Skenario tes yang memverifikasi interaksi frontend-backend.
│
├── grafana/ # Direktori untuk konfigurasi monitoring
│ ├── dashboards/ # Berisi template dashboard dalam format JSON.
│ └── provisioning/# Konfigurasi otomatis untuk Grafana (data source & dashboard).
│
├── k6/ # Direktori untuk skrip load testing
│ └── script.js # Skenario tes k6 untuk mengirim beban ke endpoint backend.
│
├── .gitignore # Daftar file/folder yang diabaikan oleh Git.
├── docker-compose.yml # File pusat yang mendefinisikan dan menghubungkan SEMUA service.
└── README.md # File yang sedang Anda baca ini.