source-code/
student-hub
Public
codeCodeinfoIssues 0call_splitPull Requestsplay_circleActions
andreyyste
andreyysteUpdate coverImage URL in .portfolio.json
f28c4953 days agohistory15 Commits
folderandroid
Refactor schedule_card.dart
10 days ago
folderassets
Update README.md directory structure
10 days ago
folderios
Add .portfolio.json metadata
3 days ago
folderlib
Refactor view_materials_screen.dart
10 days ago
folderlinux
Refactor add_task_screen.dart
10 days ago
foldermacos
Refactor add_edit_schedule_screen.dart
10 days ago
foldertest
Refactor elok_portal_screen.dart
10 days ago
folderweb
Delete commit_script.py
10 days ago
folderwindows
Refactor ai_service.dart
10 days ago
description.gitattributes
Refactor ai_service.dart
10 days ago
description.gitignore
Refactor add_task_screen.dart
10 days ago
description.metadata
Refactor add_edit_schedule_screen.dart
10 days ago
description.portfolio.json
Refactor view_materials_screen.dart
10 days ago
Refactor elok_portal_screen.dart
10 days ago
descriptionpubspec.lock
Refactor elok_portal_screen.dart
10 days ago
descriptionpubspec.yaml
Refactor schedule_screen.dart (part 2)
10 days ago
descriptionREADME.md
Refactor view_materials_screen.dart
10 days ago
README.md

StudentHub šŸŽ“

StudentHub adalah aplikasi manajemen produktivitas berbasis Flutter yang dirancang khusus untuk membantu mahasiswa mengorganisasi jadwal perkuliahan, manajemen tugas, dan pengarsipan materi. Aplikasi ini terintegrasi langsung dengan portal eLOK UGM untuk kemudahan pengunduhan dokumen, serta dilengkapi dengan Asisten AI cerdas berbasis multi-model (Google Gemini, Ollama Lokal, dan GitHub Models) untuk mendampingi proses belajar.

✨ Fitur Utama

  • Manajemen Jadwal Kuliah: Pencatatan jadwal kelas, ruangan, dan waktu secara mendetail. Mendukung penandaan khusus untuk kelas pengganti atau kelas yang dibatalkan.
  • Sistem Pelacakan Tugas: Pemantauan tenggat waktu tugas secara real-time yang dilengkapi dengan fitur pelampiran berkas referensi lokal (PDF).
  • Integrasi eLOK UGM: Peramban internal (WebView) yang dioptimalkan untuk mengakses portal eLOK UGM. Pengguna dapat membaca dan mengunduh materi atau tugas berekstensi PDF langsung ke dalam penyimpanan luring perangkat.
  • Pustaka Materi Luring (Offline): Pengarsipan materi perkuliahan dalam berbagai kategori (Slide, Catatan, Latihan) yang dapat dibaca kapan saja menggunakan penampil PDF terintegrasi.
  • Asisten AI Terintegrasi: Ruang obrolan interaktif dengan kemampuan analisis konteks (mengetahui jadwal dan tugas pengguna). Mendukung penggunaan berbagai model AI seperti Gemini (Cloud), Llama 3 (via Ollama REST API Lokal), dan model lain via GitHub Inference API.

šŸ› ļø Teknologi yang Digunakan

  • Kerangka Kerja (Framework): Flutter (Dart)
  • Basis Data Luring: SQLite (melalui modul sqflite dan sqflite_common_ffi untuk dukungan Desktop).
  • Integrasi AI: google_generative_ai & REST API http.
  • Manajemen Berkas & PDF: syncfusion_flutter_pdfviewer, file_picker, path_provider.
  • Peramban Web Internal: flutter_inappwebview.
  • Manajemen Variabel Lingkungan: flutter_dotenv.

šŸ“‹ Prasyarat

Sebelum memulai proses instalasi, pastikan sistem Anda telah memenuhi persyaratan berikut:

  1. Telah memasang Flutter SDK (versi terbaru direkomendasikan).
  2. Perangkat lunak IDE seperti Android Studio atau Visual Studio Code.
  3. Kunci API yang valid:
    • Google Gemini API Key (Dapatkan di Google AI Studio).
    • GitHub Token (Dapatkan di Pengaturan Akun GitHub Anda untuk akses GitHub Models).
  4. (Opsional) Ollama berjalan secara lokal jika Anda berencana menggunakan model Llama 3.

šŸš€ Panduan Instalasi

Ikuti langkah-langkah di bawah ini untuk menjalankan aplikasi di perangkat atau emulator Anda:

1. Kloning Repositori

git clone [https://github.com/andreyyste/studentHub.git](https://github.com/andreyyste/studentHub.git)
cd studentHub
  1. Unduh Dependensi Unduh seluruh pustaka (packages) yang dibutuhkan oleh proyek.
flutter pub get
  1. Konfigurasi Variabel Lingkungan (.env) Aplikasi ini memerlukan beberapa kredensial API untuk fitur Asisten AI. Buat sebuah berkas bernama .env di direktori utama (root) proyek, lalu tambahkan konfigurasi berikut: Cuplikan kode
GEMINI_API_KEY=masukkan_api_key_gemini_anda_di_sini
GITHUB_TOKEN=masukkan_token_github_anda_di_sini

(Catatan: Berkas .env telah dimasukkan ke dalam .gitignore sehingga kunci API Anda akan tetap aman dan tidak terunggah ke repositori).

  1. Jalankan Aplikasi Pastikan emulator atau perangkat fisik Android/iOS Anda telah terhubung. Bash
flutter run

šŸ“‚ Struktur Direktori Utama

lib/
ā”œā”€ā”€ models/                  # Struktur data (ClassSchedule, StudentTask)
ā”œā”€ā”€ screens/                 # Antarmuka pengguna (UI) utama
ā”œā”€ā”€ widgets/                 # Komponen antarmuka yang dapat digunakan kembali (Cards, Dialogs)
ā”œā”€ā”€ services/                # Layanan integrasi API & kueri basis data (database_helper.dart, ai_service.dart)
ā”œā”€ā”€ utils/                   # Fungsi utilitas pembantu (date_formatter.dart, schedule_helper.dart)
└── main.dart                # Titik masuk utama aplikasi (Entry Point)

šŸ’” Cara Penggunaan

Memantau Dasbor: Halaman utama akan langsung menyajikan kartu informasi mengenai jadwal kelas terdekat di hari tersebut dan tugas dengan tenggat waktu paling mendesak.

Mengelola Dokumen eLOK: Buka menu Portal eLOK, masuk (login) menggunakan akun SSO UGM Anda, cari berkas PDF yang ingin diunduh. Aplikasi akan mencegat URL PDF tersebut dan memunculkan pop-up formulir untuk menyimpannya ke dalam database sebagai Materi atau Tugas.

Menggunakan AI: Buka menu Tanya AI. Secara bawaan, AI telah diberikan konteks membaca jadwal dan tugas Anda di database. Gunakan dropdown di sudut kanan atas untuk beralih antara model Google Gemini, Ollama Lokal, atau model eksternal lainnya.
warningDESIGN PHILOSOPHY
  • āœ“Containment: Every element lives within a rigid bounding box. No floating content.
  • āœ“Contrast: High contrast borders (#1e1b19) are mandatory. 3px standard, 6px heavy.
  • āœ“Depth: Hard solid shadows. No blur. Physical displacement on interaction.

LIVE PRODUCTION DEMO

Experience the rigid geometry in real-time.

REBEL

About

Student Hub UGM - Task & Schedule Tracker

FlutterDartSQLiteAIGeminiMobile App

Contributors

2