Skip to content

Azr23/Final_project_Chatbot-Muhammad_Azrial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Gemini AI Chatbot - Final Project

Sistem penjadwalan SI UIN Alauddin dengan integrasi Gemini AI Chatbot.

πŸš€ Setup & Installation

Prerequisites

1. Install Dependencies

npm install

2. Konfigurasi Environment Variables

Duplikasi file .env.example menjadi .env:

cp .env.example .env

Edit file .env dan masukkan Gemini API Key Anda:

GEMINI_API_KEY=your_api_key_here
MODEL=gemini-2.5-flash-lite
PORT=3000

3. Jalankan Server

npm start

Server akan berjalan di http://localhost:3000

πŸ“‹ Fitur

Frontend

  • βœ… Tampilan jadwal kuliah interaktif (List & Grid mode)
  • βœ… Filter berdasarkan hari, semester, dosen, dan ruangan
  • βœ… Floating Chat Icon - Icon chat yang floating di kanan bawah
  • βœ… Chat Popup Modal - Chatbot muncul dalam popup modal yang stylish
  • βœ… Markdown rendering untuk respons bot
  • βœ… Responsive design

Backend

  • βœ… Express.js Server
  • βœ… Integrasi Gemini API 2.5 Flash Lite
  • βœ… CORS enabled untuk frontend
  • βœ… Conversational memory - chatbot mengingat history percakapan

🎯 Cara Menggunakan Chatbot

  1. Buka aplikasi - Halaman akan terbuka di browser
  2. Klik Chat Icon - Icon chat floating di bagian kanan bawah layar
  3. Ketik pesan - Tulis pertanyaan atau pesan Anda
  4. Kirim - Tekan tombol "Kirim" atau Enter
  5. Tutup - Klik tombol X di sudut kanan atas popup untuk menutup

Contoh Pertanyaan

  • "Berikan rekomendasi wisata di Sulawesi Selatan"
  • "Buat itinerary 3 hari ke Bantimurung"
  • "Apa saja destinasi wisata di Makassar?"

πŸ“ Struktur Folder

.
β”œβ”€β”€ index.js                 # Backend server utama
β”œβ”€β”€ package.json             # Dependencies & scripts
β”œβ”€β”€ .env.example             # Template environment variables
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ index.html          # Main HTML file
β”‚   β”œβ”€β”€ script.js           # Frontend JavaScript
β”‚   β”œβ”€β”€ style.css           # Styling (termasuk chat icon & modal)
β”‚   └── assets/             # Logo & gambar
└── README.md               # File ini

πŸ”§ API Endpoints

POST /api/chat

Mengirim pesan ke Gemini AI dan mendapatkan respons.

Request:

{
  "conversation": [
    { "role": "user", "text": "Halo" },
    { "role": "model", "text": "Halo! Apa kabar?" }
  ]
}

Response:

{
  "result": "Respons dari Gemini AI..."
}

βš™οΈ Konfigurasi

Environment Variables

  • GEMINI_API_KEY - API key untuk Gemini
  • MODEL - Model Gemini yang digunakan (default: gemini-2.5-flash-lite)
  • PORT - Port server (default: 3000)

System Instruction

Chatbot dikonfigurasi sebagai "Agen Penjadwalan Kuliah Pada Sistem Informasi UIN Alauddin Makassar" yang:

  1. BATASAN BAHASA: Anda HANYA diizinkan merespons menggunakan Bahasa Indonesia yang baik, formal, dan mudah dipahami.
  2. BATASAN DOMAIN: Anda HANYA beroperasi untuk lingkup Program Studi Sistem Informasi.
  3. BATASAN TOPIK: Anda HANYA boleh menjawab pertanyaan yang berhubungan dengan jadwal perkuliahan, nama dosen, mata kuliah, hari, jam, dan ruangan kelas.
  4. PENOLAKAN PERTANYAAN DI LUAR KONTEKS: Jika pengguna menanyakan hal di luar jadwal kuliah (misalnya: cara memprogram PHP, berita terkini, jadwal jurusan lain, resep makanan, dll), Anda WAJIB menolak dengan sopan.
    • Contoh Penolakan: "Mohon maaf, saya hanya asisten penjadwalan kuliah Jurusan Sistem Informasi UIN Alauddin Makassar. Saya tidak dapat menjawab pertanyaan di luar informasi jadwal perkuliahan."
  5. KEBENARAN DATA (NO HALLUCINATION): Jawaban Anda WAJIB 100% bersumber dari [DATA JADWAL KULIAH] di bawah ini. Jangan pernah menebak, mengarang jadwal, atau memodifikasi waktu/ruangan. Jika data dosen, mata kuliah, atau jadwal yang dicari pengguna tidak ada di dalam daftar, sampaikan bahwa "Jadwal tersebut tidak ditemukan pada data Semester Genap 2025/2026."

πŸ› Troubleshooting

API Key Error

CORS Error

  • Server sudah dikonfigurasi dengan CORS enabled
  • Pastikan frontend mengakses http://localhost:3000

Chat tidak terhubung

  • Pastikan server running dengan npm start
  • Buka browser console (F12) untuk melihat error details
  • Check network tab untuk melihat API request

πŸ“ Catatan Penting

  1. Chat Memory - Setiap percakapan menyimpan history untuk konteks yang lebih baik
  2. Markdown Support - Bot merespons dengan formatting Markdown yang akan di-render
  3. Responsive - Chat modal responsive untuk mobile devices
  4. Floating Icon - Icon always visible dan accessible di mana pun user berada di halaman

🎨 Customization

Mengubah Warna Chat Icon

Edit di public/style.css:

.chat-icon {
  background-color: #0d6efd; /* Ubah warna sini */
}

Mengubah System Instruction Bot

Edit di index.js, bagian systemInstruction di dalam request config.

Mengubah Posisi Chat Icon

Edit di public/style.css:

.chat-icon {
  bottom: 30px;  /* Jarak dari bawah */
  right: 30px;   /* Jarak dari kanan */
}

πŸ“ž Support

Untuk pertanyaan atau issues, silakan buat issue di repository ini.


Dibuat untuk Final Project RevoU Hacktivi Mini Project ✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors