1. Ringkasan Proyek 1. Project Overview
SRM Command Center Website adalah aplikasi dashboard internal yang dikembangkan khusus untuk departemen Security Risk Management (SRM) dari PT Freeport Indonesia. Aplikasi ini memusatkan pengawasan wilayah AOR, kontak penting, dan koordinasi tanggap darurat.
Aplikasi ini menggunakan arsitektur hibrida terpisah yang terdiri dari aplikasi utama berbasis Laravel (React + Inertia.js) dan backend microservice pencarian kesamaan berbasis Python FastAPI.
2. Tujuan Aplikasi 2. Application Purpose
Aplikasi ini berfungsi sebagai pusat operasi internal untuk mengelola data sensitif. Ini bukan portal pemasaran publik, melainkan dashboard administratif yang menangani:
- Segmentasi Area of Responsibility (AOR) untuk membagi data wilayah penugasan keamanan.
- Katalog nomor darurat (emergency contact) untuk jalur respons cepat.
- Pengiriman laporan lapangan (field reports) dan pencatatan shift personel manned guarding.
- Log persetujuan administratif untuk menyetujui rilis berita dan postingan lapangan.
- Pustaka dokumen SOP dengan dukungan mesin pencari kesamaan teks.
3. Teknologi yang Digunakan 3. Technology Stack
Inti Backend Core Backend
Laravel 11.x (PHP 8.3)
Framework Frontend Frontend Framework
React + Inertia.js + Tailwind CSS
Mesin NLP Rekomendasi AI NLP Similarity Engine
FastAPI (Python 3.10+)
Server Database Database Server
MySQL 8.x
4. Kebutuhan Local Development 4. Local Development Requirements
Sebelum memulai instalasi, pastikan workstation development Anda memenuhi persyaratan perangkat lunak berikut:
- Versi PHP: PHP 8.3 atau yang lebih baru.
- Package Manager PHP: Composer terinstal global.
- JavaScript Runtime: Node.js LTS (v20+) dengan NPM.
- Engine Database: MySQL versi 8.0+.
- Versi Python: Python 3.10+ beserta Pip.
5. Panduan Instalasi macOS 5. macOS Installation Guide
Instalasi development yang disarankan untuk pengguna macOS adalah dengan menggunakan Laravel Herd untuk virtual hosting lokal dan DBngin untuk mengelola instance MySQL 8 lokal.
Langkah 1: Unduh Herd & DBngin Step 1: Download Herd & DBngin
- Laravel Herd: herd.laravel.com
- DBngin: dbngin.com
Langkah 2: Clone & Konfigurasi Step 2: Clone & Install dependencies
git clone https://github.com/DodikSukma/srm-fmi-web.git
cd srm-fmi-web
cp .env.example .env
composer install
npm install
6. Panduan Instalasi Windows 6. Windows Installation Guide
Untuk OS Windows, developer disarankan menggunakan Laragon untuk mempermudah pembuatan virtual host lokal dan manajemen MySQL 8.
Langkah Laragon di Windows Laragon Windows Setup Steps
- Unduh Laragon dari situs resmi laragon.org. Download Laragon installer from the official page laragon.org.
-
Pindahkan folder clone project ke dalam folder root Laragon
C:\laragon\www\. Move your cloned project repository into the Laragon site folderC:\laragon\www\. - Buka aplikasi Laragon, lalu klik "Start All" untuk mengaktifkan Nginx/Apache dan MySQL. Open the Laragon application dashboard and click "Start All" to spin up Nginx/Apache and MySQL.
- Gunakan terminal bawaan Laragon, masuk ke folder project, lalu pasang dependensi backend dan frontend. Open Laragon's CLI terminal, traverse to the site directory, and install dependencies using composer & NPM.
7. Setup Database 7. Database Setup
Aplikasi memerlukan database relasional bernama srm_fmi_web.
Konfigurasi Koneksi Connection Configuration
- DB_DATABASE: srm_fmi_web
- DB_USERNAME: root
- DB_PASSWORD: (kosong / empty)
CREATE DATABASE srm_fmi_web CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
8. Environment Variables 8. Environment Variables
Sesuaikan berkas .env Anda untuk menghubungkan framework ke database dan server NLP FastAPI:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=srm_fmi_web
DB_USERNAME=root
DB_PASSWORD=
# FastAPI NLP API endpoint
RECOMMENDATION_SERVICE_URL=http://127.0.0.1:8000
9. Perintah Setup Laravel & Frontend 9. Laravel & Frontend Setup Commands
Jalankan perintah berikut pada terminal di folder root project untuk meng-generate key, memigrasi tabel database, serta mengompilasi assets React:
# Generate App Key & Migrasi Database
php artisan key:generate
php artisan migrate --seed
# Jalankan hot-reloading Vite server
npm run dev
10. Setup Python FastAPI 10. Python FastAPI Setup
Layanan rekomendasi NLP berbasis Python FastAPI terletak di folder /recommendation_service. Jalankan uvicorn server pada port 8000 dengan langkah berikut:
# Masuk ke folder layanan & buat virtual environment
cd recommendation_service
python3 -m venv venv
# Aktifkan venv (macOS/Linux)
source venv/bin/activate
# Aktifkan venv (Windows CMD): venv\Scripts\activate
# Install requirements & jalankan server
pip install -r requirements.txt
uvicorn main:app --reload --port 8000
11. Struktur Folder 11. Folder Structure
Peta struktur direktori penting di dalam project workspace:
srm-fmi-web/
├── app/ # Inti Laravel (Controllers, Models, Services)
├── database/ # Migrasi database & data seeds
├── docs/ # Dokumentasi proyek & tiket
│ └── docs-web/ # Folder website dokumentasi statis (portal ini)
├── recommendation_service/ # Python FastAPI NLP Service
├── resources/ # Folder Aset Frontend
│ └── js/ # Halaman React & Komponen UI (Welcome, Dashboard, dsb.)
├── routes/ # Definisi routing aplikasi (web.php)
└── tailwind.config.js # Pengaturan visual Tailwind CSS tokens