** Live Demo:** https://jambiadventure.web.id
JambiAdventure adalah platform wisata digital yang dirancang khusus untuk mempromosikan keindahan alam dan destinasi petualangan di Provinsi Jambi. Website ini menjadi jembatan antara wisatawan dengan pengalaman alam terbaik — mulai dari informasi destinasi, berita wisata terkini, hingga pembelian perlengkapan outdoor secara online.
- Menjadi portal wisata petualangan Jambi yang paling lengkap dan terpercaya
- Mempromosikan keindahan alam Jambi (Gunung Kerinci, Danau Gunung Tujuh, dll.)
- Memudahkan wisatawan mendapatkan perlengkapan outdoor berkualitas
- Menyajikan berita dan inspirasi perjalanan yang informatif
| Fitur | Deskripsi |
|---|---|
| Halaman Beranda | Hero banner, berita terkini, destinasi unggulan, dan produk populer |
| Destinasi Wisata | Jelajahi destinasi wisata Jambi lengkap dengan foto dan lokasi |
| Berita & Artikel | Baca artikel dan inspirasi perjalanan tanpa perlu login |
| Toko Outdoor | Lihat katalog produk perlengkapan outdoor beserta rating & ulasan |
| Halaman Informasi | Tentang Kami, Layanan, dan Kebijakan Privasi |
| Fitur | Deskripsi |
|---|---|
| Checkout & Pembayaran | Pembelian produk dengan integrasi payment gateway Midtrans |
| Riwayat Transaksi | Pantau status pesanan (pending, paid, cancelled) |
| Review Produk | Berikan ulasan dan rating untuk produk yang dibeli |
| Manajemen Profil | Edit data diri dan akun |
| Resume Pembayaran | Lanjutkan pembayaran yang tertunda |
| Fitur | Deskripsi |
|---|---|
| Kelola Destinasi | CRUD destinasi wisata beserta foto dan koordinat peta |
| Kelola Berita | Buat, edit, dan hapus artikel berita dengan upload thumbnail |
| Manajemen User | Lihat dan kelola seluruh akun pengguna |
| Fitur | Deskripsi |
|---|---|
| Kelola Produk | CRUD produk outdoor yang dijual di toko |
| Teknologi | Versi | Kegunaan |
|---|---|---|
| PHP | 8.2+ | Bahasa pemrograman utama |
| Laravel | 12.x | Framework backend utama |
| Laravel Breeze | 2.4 | Autentikasi (login, register, reset password) |
| Spatie Permission | 6.x | Role & Permission (Admin, Seller, User) |
| Midtrans PHP | 2.6 | Payment gateway untuk transaksi |
| Teknologi | Versi | Kegunaan |
|---|---|---|
| Blade | - | Template engine Laravel |
| TailwindCSS | 3.x | Utility-first CSS framework |
| Alpine.js | 3.x | Interaktivitas ringan di frontend |
| Vite | 7.x | Bundler asset modern |
| Axios | 1.x | HTTP client untuk request API |
| Teknologi | Kegunaan |
|---|---|
| MySQL | Database utama |
| InfinityFree | Shared hosting production |
| GitHub Actions | CI/CD — auto deploy via FTP ke hosting |
users — Data pengguna & autentikasi
├── roles — Peran: Admin, Seller, User (via Spatie)
destinations — Data destinasi wisata
├── id, name, description, location, image, latitude, longitude
posts — Artikel dan berita wisata
├── id, user_id, title, content, category, image
products — Produk perlengkapan outdoor
├── id, name, description, price, image, seller_id, avg_rating
product_reviews — Ulasan & rating produk
├── id, user_id, product_id, rating, comment
transactions — Riwayat pembelian
├── id, user_id, order_id, product_id, quantity, total_price, status, snap_token
jambiadventure/
│
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── Admin/
│ │ │ │ └── UserController.php # Manajemen user oleh admin
│ │ │ ├── Seller/
│ │ │ │ └── ProductController.php # CRUD produk oleh seller
│ │ │ ├── CheckoutController.php # Proses checkout & Midtrans
│ │ │ ├── DestinationController.php # CRUD destinasi
│ │ │ ├── HomeController.php # Halaman beranda
│ │ │ ├── PostController.php # CRUD berita/artikel
│ │ │ ├── ProfileController.php # Manajemen profil
│ │ │ ├── StoreController.php # Katalog toko & review
│ │ │ ├── TransactionController.php # Riwayat transaksi
│ │ │ └── PaymentNotificationController.php # Webhook Midtrans
│ │ └── Middleware/
│ │ └── RoleMiddleware.php # Proteksi akses berdasarkan role
│ └── Models/
│ ├── User.php
│ ├── Destination.php
│ ├── Post.php
│ ├── Product.php
│ ├── ProductReview.php
│ └── Transaction.php
│
├── resources/views/
│ ├── layouts/
│ │ └── app.blade.php # Layout utama (navbar, footer)
│ ├── home.blade.php # Halaman beranda
│ ├── admin/
│ │ ├── posts/ # Kelola berita (admin)
│ │ ├── destinasi/ # Kelola destinasi (admin)
│ │ └── users/ # Kelola user (admin)
│ ├── seller/
│ │ └── products/ # Kelola produk (seller)
│ ├── posts/ # Halaman berita publik
│ ├── destinations/ # Halaman destinasi publik
│ ├── products/ # Halaman toko publik
│ ├── checkout/ # Halaman pembayaran
│ ├── profile/ # Dashboard & profil user
│ └── auth/ # Login, register, dll.
│
├── routes/
│ ├── web.php # Definisi semua route
│ └── auth.php # Route autentikasi (Breeze)
│
├── database/
│ └── migrations/ # Skema tabel database
│
├── public/
│ └── uploads/posts/ # Upload gambar berita
│
├── .github/workflows/
│ └── deploy.yml # CI/CD auto-deploy via FTP
│
└── .env # Konfigurasi environment
Pastikan sudah terinstall:
- PHP >= 8.2
- Composer >= 2.x
- Node.js >= 18.x & NPM
- MySQL (atau database lain yang kompatibel)
1. Clone repository
git clone https://github.com/Vindra999/travel-website.git
cd travel-website2. Install dependensi PHP
composer install3. Install dependensi Node.js
npm install4. Salin file environment
cp .env.example .env5. Generate application key
php artisan key:generate6. Konfigurasi database di .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=jambiadventure
DB_USERNAME=root
DB_PASSWORD=7. Konfigurasi Midtrans di .env (untuk fitur pembayaran)
MIDTRANS_SERVER_KEY=your_server_key
MIDTRANS_CLIENT_KEY=your_client_key
MIDTRANS_IS_PRODUCTION=false8. Jalankan migrasi database
php artisan migrate9. Build asset frontend
npm run build10. Jalankan server development
composer run dev
# atau secara terpisah:
php artisan serve
npm run devWebsite akan berjalan di: http://localhost:8000
Website menggunakan GitHub Actions untuk auto-deploy ke InfinityFree Hosting melalui FTP setiap kali ada push ke branch main.
Tambahkan secrets berikut di repository GitHub:
| Secret | Keterangan |
|---|---|
FTP_SERVER |
Alamat server FTP hosting |
FTP_USERNAME |
Username FTP |
FTP_PASSWORD |
Password FTP |
Karena InfinityFree tidak mendukung symbolic links, gambar yang diupload disimpan langsung di folder public/uploads/posts/ (bukan di storage/) agar bisa diakses via URL secara langsung.
| Role | Akses |
|---|---|
| Tamu (belum login) | Beranda, Destinasi, Berita, Toko (lihat saja) |
| User | Semua fitur tamu + Checkout, Riwayat Transaksi, Review Produk, Profil |
| Seller | Semua fitur user + Kelola Produk sendiri |
| Admin | Akses penuh: Kelola Destinasi, Berita, dan User |
User pilih produk → Tambah ke keranjang → Checkout
↓
Midtrans Snap (popup pembayaran)
↓
User bayar (Transfer/QRIS/dll.)
↓
Midtrans kirim webhook → /midtrans/callback
↓
Status transaksi diupdate: pending → paid
↓
User bisa lihat di Riwayat Pembelian
{
"require": {
"php": "^8.2",
"laravel/framework": "^12.0",
"midtrans/midtrans-php": "^2.6",
"spatie/laravel-permission": "^6.25"
},
"devDependencies": {
"tailwindcss": "^3.1.0",
"alpinejs": "^3.4.2",
"vite": "^7.0.7",
"laravel-breeze": "^2.4"
}
}Kontribusi sangat terbuka! Silakan fork repository ini dan buat pull request.
- Fork project ini
- Buat branch baru:
git checkout -b fitur/nama-fitur - Commit perubahan:
git commit -m 'feat: tambah fitur X' - Push ke branch:
git push origin fitur/nama-fitur - Buat Pull Request
Project ini menggunakan lisensi MIT.
Dibuat dengan ❤️ untuk memajukan wisata Jambi





