Dexa Chatbot (Si Dexa) adalah aplikasi asisten cerdas berbasis web yang dirancang untuk mempermudah pencarian data mahasiswa Universitas Negeri Gorontalo (UNG), khususnya angkatan 2021 hingga 2023.
Aplikasi ini menghadirkan kembali fitur populer Mahasiswa UNG Finder dari platform legendaris Dexafy (2023β2024) yang dikembangkan oleh Wahyu Tams (Wahyu Tamuu).
Mencari data mahasiswa di lingkungan kampus secara cepat sering kali memerlukan query spesifik atau akses portal yang kompleks. Dexa Chatbot menyelesaikan masalah ini dengan menyediakan antarmuka percakapan (conversational UI) yang ramah, responsif, dan presisi.
- Mesin Pencari Mahasiswa Hibrida (Weighted Scoring): Algoritma pencarian multi-faktor yang mengkombinasikan pencarian exact match, pencarian berbasis token kata nama, serta kecerdasan batas Levenshtein (fuzzy/typo tolerance).
- Ekspansi Alias Prodi & Fakultas: Mendukung lebih dari 61 alias program studi (contoh:
trpl,pti,si,sasing,bk,kesmas) dan 12 fakultas UNG (contoh:ft,fip,fmipa,fsb,fok,fe,fh). - Parsing Struktur NIM UNG Universal: Mengenali dan mengurai NIM 10-digit UNG secara otomatis (format prefix prodi, 2-digit angkatan, dan 3-digit nomor urut mahasiswa).
- Integrasi Groq AI (
llama-3.3-70b-versatile): Penanganan basa-basi, salam, dan obrolan umum dengan persona Si Dexa yang ramah, ceria, dan bersahabat. - Persona & Output Standar: Format jawaban berbasis bullet point, bebas klausa meta kosong, dan dilengkapi kalimat kesimpulan profil.
- Keamanan & Rate Limiting: Proteksi endpoint dengan kustom middleware
EnsureAllowedAccessUrldan pembatasan request10 req/min.
- Language: PHP 8.2+
- Framework: Laravel 12.x
- Database: SQLite (Tabel
dexa_chats,dexa_viewers,dexa_counters) - LLM Integration: Groq API (
llama-3.3-70b-versatile)
- Templating: Blade Engine
- Styling: Vanilla CSS & Tailwind CSS v4
- Asset Pipeline: Vite 6 (
laravel-vite-plugin,@tailwindcss/vite)
- Testing: PHPUnit 11
- Process Manager: Concurrently (
npm run dev/composer run dev)
Berikut adalah direktori dan file inti yang membangun arsitektur aplikasi Dexa Chatbot:
dexa-chatbot/
βββ app/
β βββ Http/
β β βββ Controllers/
β β β βββ MainController.php # Controller utama pencarian, chat, & statistik
β β βββ Middleware/
β β βββ EnsureAllowedAccessUrl.php # Security middleware validasi origin/referer
β βββ Providers/
β β βββ AppServiceProvider.php # Konfigurasi Rate Limiter (tanya-dexa)
β βββ Services/
β βββ ChatContextService.php # Sanitasi riwayat & resolusi anaphora kata ganti
β βββ ResponseFormatterService.php # Format keluaran profil & persona Si Dexa
β βββ StudentSearchEngine.php # Engine pencarian weighted scoring & NIM parser
βββ config/
β βββ services.php # Konfigurasi Groq API Key, REST API, & URL Access
βββ database/
β βββ database.sqlite # Storage SQLite database
βββ resources/
β βββ css/ # Tailwind CSS & styling kustom
β βββ js/ # Logika interaktif antarmuka chat
β βββ views/
β βββ landing.blade.php # Halaman utama & modal antarmuka Dexa Chatbot
βββ routes/
β βββ web.php # Definisi rute web & endpoint pencarian
βββ storage/
β βββ app/
β βββ data/
β β βββ main.json # Dataset offline data mahasiswa UNG 2021-2023
β βββ images/
β βββ example.png # Asset gambar contoh penggunaan modal
βββ tests/ # Suite pengujian unit & integrasi PHPUnit
βββ .env.example # Template konfigurasi variabel lingkungan
βββ composer.json # Dependensi PHP & skrip automasi Laravel
βββ package.json # Dependensi Node.js & Vite build tool
βββ vite.config.js # Konfigurasi bundler Vite
Pastikan perangkat Anda telah terinstal dependensi berikut:
- PHP
>= 8.2(dengan ekstensipdo_sqlite,mbstring,curl,json) - Composer
>= 2.x - Node.js
>= 18.x& NPM - SQLite3
git clone https://github.com/whyutams/dexa-chatbot.git
cd dexa-chatbotInstal dependensi backend (PHP) dan frontend (Node.js):
composer install
npm installSalin file .env.example menjadi .env dan generate application key:
cp .env.example .env
php artisan key:generateBuka file .env dan sesuaikan variabel berikut:
APP_NAME="Dexa Chatbot"
APP_ENV=local
APP_URL=http://localhost:8000
# Integrasi Groq AI
GROQ_API_KEY=sk_groq_your_api_key_here
GROQ_MODEL=llama-3.3-70b-versatile
# Sinkronisasi REST API (Opsional)
REST_API=
# Keamanan URL Access (Opsional)
URL_ACCESS=Buat file database SQLite dan jalankan migrasi tabel:
touch database/database.sqlite
php artisan migrateJalankan server pengembangan (Laravel Serve + Vite) secara bersamaan menggunakan skrip Composer:
composer run devAtau secara manual di dua terminal terpisah:
# Terminal 1: Laravel Backend
php artisan serve
# Terminal 2: Vite Assets
npm run devAplikasi dapat diakses melalui browser di http://localhost:8000.
- Buka
http://localhost:8000pada peramban web Anda. - Masukkan kata kunci pencarian pada kolom input chat, contohnya:
- Nama Mahasiswa:
"Asep Tanjung" - Nama + Prodi/Fakultas:
"Asep dari bahasa inggris" - NIM Spesifik:
"532423001"atau"1521425001"
- Nama Mahasiswa:
- Klik tombol kirim untuk menerima balasan profil mahasiswa yang presisi dari Si Dexa.
Proyek ini dilengkapi dengan suite pengujian otomatis menggunakan PHPUnit untuk memastikan keandalan fungsi backend dan pencarian data.
Untuk menjalankan seluruh pengujian:
php artisan testAtau menggunakan biner PHPUnit langsung:
vendor/bin/phpunitProyek ini dilisensikan di bawah naungan MIT License.
Dikembangkan dengan π oleh Wahyu Tams