Aplikasi Audio Tour Guide untuk Haji & Umrah
Real-time Audio Streaming Web App for Hajj/Umrah Pilgrims
Fitur β’ Demo β’ Instalasi β’ Penggunaan β’ Tech Stack β’ Kontribusi
GEMA (Guide Audio Streaming) adalah sistem audio tour guide berbasis web yang dirancang khusus untuk pembimbing Haji dan Umrah. Jamaah dapat bergabung hanya dengan scan QR code - tanpa perlu login atau install aplikasi apapun.
- π― Tanpa Install - Jamaah cukup scan QR code dan langsung terhubung
- π΄ Ramah Lansia - UI dengan tombol besar, font jelas, dan kontras tinggi
- π Audio Dua Arah - Komunikasi walkie-talkie antara guide dan jamaah
- πΏ Tampilan Doa - Teks doa real-time untuk diikuti jamaah
- π± Mobile First - Dioptimalkan untuk smartphone jamaah
- β Dashboard manajemen room
- β Broadcast audio ke semua jamaah
- β Mute/unmute semua jamaah sekaligus
- β Tampilkan teks doa real-time
- β QR code untuk share room
- β Monitor jamaah online & active speaker
- β Hapus room (soft delete dengan audit trail)
- β Join room via QR code scan
- β Dengarkan audio guide
- β Push-to-talk untuk bicara ke guide
- β Lihat teks doa yang sedang dibacakan
- β Wake lock (layar tetap nyala)
- β Auto-reconnect jika koneksi terputus
- β Real-time audio via WebRTC (LiveKit)
- β Soft delete dengan tracking siapa yang menghapus
- β Participant tracking (join/leave time)
- β Policy-based authorization
- β Responsive design
| Layer | Technology |
|---|---|
| Backend | Laravel 12 (PHP 8.2+) |
| Frontend | Blade + TailwindCSS |
| Real-time Audio | LiveKit Cloud (WebRTC) |
| Database | SQLite / MySQL |
| QR Code | SimpleSoftwareIO/QrCode |
- PHP 8.2+
- Composer
- Node.js 18+
- LiveKit Cloud Account (gratis)
# 1. Clone repository
git clone https://github.com/username/gema.git
cd gema
# 2. Install dependencies
composer install
npm install
# 3. Setup environment
cp .env.example .env
php artisan key:generate
# 4. Konfigurasi LiveKit (lihat bagian Konfigurasi)
# 5. Setup database
php artisan migrate
php artisan db:seed
# 6. Build assets & jalankan
npm run build
php artisan serveAda 2 opsi untuk setup LiveKit:
- Daftar di LiveKit Cloud (gratis untuk development)
- Buat project baru
- Copy credentials ke
.env:
LIVEKIT_API_KEY=your_api_key
LIVEKIT_API_SECRET=your_api_secret
LIVEKIT_HOST=https://your-project.livekit.cloud
LIVEKIT_WS_URL=wss://your-project.livekit.cloudUntuk development lokal atau deployment on-premise, jalankan LiveKit server sendiri:
# 1. Jalankan LiveKit server
docker run --rm -p 7880:7880 -p 7881:7881 -p 7882:7882/udp \
-e LIVEKIT_KEYS="devkey: secret" \
livekit/livekit-server \
--dev
# 2. Update .env
LIVEKIT_API_KEY=devkey
LIVEKIT_API_SECRET=secret
LIVEKIT_HOST=http://localhost:7880
LIVEKIT_WS_URL=ws://localhost:7880Atau gunakan docker-compose.yml yang sudah disediakan:
docker-compose up -d livekit
β οΈ Catatan: Self-hosted LiveKit memerlukan HTTPS untuk production. Gunakan reverse proxy (nginx/traefik) dengan SSL certificate.
| Aspek | LiveKit Cloud | Self-Hosted |
|---|---|---|
| Setup | Mudah (5 menit) | Perlu konfigurasi |
| Biaya | Gratis (limit) / Berbayar | Gratis (server sendiri) |
| Maintenance | Tidak perlu | Perlu maintain server |
| Scalability | Auto-scale | Manual scaling |
| Latency | Optimal (CDN global) | Tergantung lokasi server |
| Cocok untuk | Production, MVP | Development, On-premise |
| Password | |
|---|---|
guide@gema.test |
password |
Guide:
- Login ke dashboard
- Buat room baru
- Aktifkan room
- Share QR code ke jamaah
- Nyalakan mic untuk broadcast
- Pilih doa untuk ditampilkan
Jamaah:
- Scan QR code dari guide
- Masukkan nama/ID
- Dengarkan audio guide
- Tahan tombol mic untuk bicara (push-to-talk)
app/
βββ Http/Controllers/
β βββ GuideController.php # Dashboard & room management
β βββ RoomController.php # Entry point jamaah
βββ Models/
β βββ Room.php # Audio room (soft delete)
β βββ Prayer.php # Daftar doa
β βββ Participant.php # Tracking jamaah
βββ Policies/
β βββ RoomPolicy.php # Authorization
βββ Services/
βββ LiveKitService.php # LiveKit API wrapper
resources/views/
βββ guide/
β βββ dashboard.blade.php # List & create room
β βββ room.blade.php # Control panel guide
βββ room/
βββ login.blade.php # Form join jamaah
βββ live.blade.php # Live audio room
Kontribusi sangat diterima! Silakan:
- Fork repository ini
- Buat branch fitur (
git checkout -b fitur/AmazingFeature) - Commit perubahan (
git commit -m 'Menambahkan fitur amazing') - Push ke branch (
git push origin fitur/AmazingFeature) - Buat Pull Request
- Multi-language support
- Recording audio session
- Offline mode untuk jamaah
- Push notification
- Admin panel untuk kelola guide
- Analytics dashboard
Distributed under the MIT License. See LICENSE for more information.
- Laravel - PHP Framework
- LiveKit - Real-time Audio/Video
- TailwindCSS - CSS Framework
- SimpleSoftwareIO/QrCode - QR Code Generator
Made with β€οΈ for Hajj & Umrah pilgrims

