Aplikasi Buku Tamu Digital untuk mencatat kunjungan tamu di SD Indo Tionghoa Tarakan. Tamu mengisi data kunjungan melalui form digital, dan admin dapat melihat data, mengelola, serta mengunduh laporan dalam format Word, Excel, atau PDF.
- Form Tamu — Tamu mengisi data kunjungan (instansi, tujuan, jumlah personil, PIC, no HP, tanggal & jam kunjungan)
- Notifikasi Telegram — Notifikasi otomatis dikirim ke admin/grup Telegram saat ada tamu baru
- Dashboard Admin — Melihat daftar tamu, statistik (hari ini, total, notifikasi terkirim), pencarian & filter berdasarkan tanggal
- Edit & Hapus Data — Admin dapat mengedit atau menghapus data tamu yang salah
- Export Laporan — Unduh data tamu dalam format Word, Excel, atau PDF (dengan logo & kop surat)
- QR Code — Generate QR Code yang mengarah ke form tamu untuk dicetak/dibagikan
- Responsive — Tampilan optimal di desktop maupun mobile
| Komponen | Teknologi |
|---|---|
| Backend | Laravel 13 + PHP 8.3 |
| Frontend | Livewire 4 + Tailwind CSS v4 |
| Build Tool | Vite 8 |
| Export Word | PHPWord |
| Export Excel | Maatwebsite Excel |
| Export PDF | DomPDF |
| QR Code | SimpleSoftwareIO QR Code |
| Notifikasi | Telegram Bot API |
- PHP >= 8.3
- Composer
- Node.js & npm (untuk build asset)
- Database (SQLite / MySQL / PostgreSQL)
# Clone repository
git clone https://github.com/borughie/btd.tarakanbais.git
cd btd.tarakanbais
# Install dependency PHP
composer install
# Install dependency JS
npm install
# Copy .env
cp .env.example .env
# Generate app key
php artisan key:generate
# Jalankan migrasi
php artisan migrate
# Build asset
npm run buildAPP_NAME="Buku Tamu Digital"
APP_URL=https://domain-anda.com
# Database (contoh MySQL)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=username
DB_PASSWORD=password
# Telegram Bot
TELEGRAM_BOT_TOKEN=token_bot_anda
TELEGRAM_CHAT_ID=id_grup_atau_userphp artisan tinkerApp\Models\User::create([
'name' => 'Admin',
'email' => 'admin@sekolah.com',
'password' => bcrypt('password_anda'),
]);Ketik exit untuk keluar dari tinker.
- Buka Telegram, cari @BotFather
- Kirim
/newbotdan ikuti instruksi untuk membuat bot - Salin Bot Token yang diberikan
- Untuk chat ID grup:
- Buat grup khusus di Telegram
- Tambahkan bot ke grup tersebut
- Jadikan bot sebagai admin grup
- Kirim pesan apa pun di grup
- Buka
https://api.telegram.org/bot<token_bot>/getUpdatesdi browser - Cari
"chat":{"id":-100xxxxxxxxxx}— itu adalah chat ID grup
- Isi
TELEGRAM_BOT_TOKENdanTELEGRAM_CHAT_IDdi.env
- Push kode ke GitHub
- Login ke hosting panel atau SSH
- Clone repository di folder
public_htmlatau subdomain - Jalankan:
composer install --no-dev php artisan migrate --force php artisan config:cache php artisan route:cache php artisan view:cache
- Pastikan folder
public/buildada (sudah ter-commit dari repo)
Catatan: Folder
public/buildsudah termasuk di repository, jadi tidak perlunpm run builddi server.
├── app/
│ ├── Helpers/DateHelper.php # Format tanggal Indonesia
│ ├── Http/Controllers/ # Export controller (Word, Excel, PDF)
│ ├── Jobs/ # Kirim notifikasi Telegram
│ ├── Livewire/
│ │ ├── Admin/GuestDashboard.php # Dashboard admin
│ │ ├── Auth/Login.php # Halaman login
│ │ └── GuestCheckIn.php # Form tamu
│ └── Models/Guest.php # Model tamu
├── database/migrations/ # Migrasi database
├── resources/views/
│ ├── layouts/ # Layout admin & guest
│ ├── livewire/ # View Livewire
│ └── exports/ # Template export PDF
├── routes/web.php # Rute aplikasi
└── public/
├── img/ # Logo (logo.png & logo.webp)
└── build/ # Asset hasil build
| Rute | Deskripsi | Akses |
|---|---|---|
/ |
Form Buku Tamu (untuk tamu) | Publik |
/login |
Halaman login admin | Publik |
/admin/tamu |
Dashboard admin | Login |
/admin/export/word |
Export Word | Login |
/admin/export/excel |
Export Excel | Login |
/admin/export/pdf |
Export PDF | Login |
MIT