Aplikasi Lost & Found yang dibangun menggunakan Go (Golang) dan MySQL.
Sebelum menjalankan aplikasi, pastikan teman Anda sudah menginstal:
- Go (Golang): Versi 1.18 ke atas.
- MySQL: Database server.
Berikut adalah langkah-langkah untuk teman Anda yang baru selesai melakukan clone:
Pastikan layanan MySQL sudah berjalan. Buat database kosong bernama temuin_db (atau sesuai konfigurasi di config/database.go).
CREATE DATABASE temuin_db;Catatan: Konfigurasi default di config/database.go menggunakan user root tanpa password. Jika konfigurasi MySQL teman Anda berbeda, minta mereka menyesuaikan file config/database.go baris 11.
Buat file .env di root project:
# Copy dari template
cp .env.example .envEdit .env dengan kredensial Google OAuth Anda:
# Google OAuth Configuration
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_URL=http://localhost:8080/auth/google/callbackCatatan: File
.envsudah di-gitignore untuk keamanan. Jangan commit file ini!
Jalankan perintah ini di terminal (di dalam folder project) untuk mengunduh semua library yang dibutuhkan:
go mod tidyProject ini memiliki script khusus untuk membuat tabel dan mengisi data awal (dummy data). Langkah ini wajib dijalankan pertama kali.
Jalankan perintah:
go run cmd/reset_db/main.goJika berhasil, akan muncul pesan "Database reset complete and seeded!". Ini akan membuat user default:
- Admin: User
admin/ Passadmin - Warga: User
warga_lokal/ Passpassword
Setelah database siap, jalankan server utama:
go run main.goAkses aplikasi di browser melalui: http://localhost:8080
Q: Apakah perlu generate key?
A: Untuk saat ini TIDAK. Secret key untuk session masih di-hardcode di main.go. Namun untuk production nanti, disarankan menggunakan environment variable.
Q: Bagaimana kalau mau reset data lagi?
A: Cukup jalankan ulang perintah go run cmd/reset_db/main.go. Hati-hati, semua data akan dihapus dan diganti data dummy baru.
File Rules
- Segala sesuatu yang berhubungan dengan gambar simpan di dalam folder
public/assets/images/ - Folder
layoutsberfungsi untuk menyimpan file kerangka (layout utama) yang digunakan sebagai template dasar. - Folder
review/appberfungsi untuk menyimpan halaman inti aplikasi (fitur utama yang hanya bisa diakses setelah login atau otentikasi). - Folder
review/componentsberfungsi untuk menyimpan komponen UI pendukung yang dapat digunakan ulang di berbagai halaman. - Folder
review/pagesberfungsi untuk menyimpan halaman umum atau public-facing yang bisa diakses tanpa login.
Catatan Penamaan Branch
- Silahkan membuat
branchfeat / fix sebelum mengerjakan fitur - feat/... untuk push sebuah ftur
- fix/... untuk fix bug
- contoh :
feat/nama-fitur=feat/login
- Jangan pernah menghapus folder atau file apapun yg sudah ada atau bawaan dari laravel
- Jika ingin melakukan
git pushdan pull request pada project ini silahkan lakukangit pullke branchmainterlebih dahulu di lokal komputer - Silahkan git push ke branch anda sendiri jangan langsung ke branch
main - Jika terjadi konflik silahkan perbaiki terlebih dahulu sebelum
pushke branch anda - Jika sudah selesai semua silahkan berikan
commityang jelas danpull requestke branchmain