Skip to content

Haafzd/CORELASI_MOBILE

Repository files navigation

CORELASI (Flutter)

Aplikasi mobile sederhana untuk presensi siswa berbasis QR, rekap kehadiran, dan BAP (Berita Acara Pembelajaran), dilengkapi Settings (Dark Mode, Language, Edit Account, Bookmarks, Privacy & Help) dan ikon notifikasi di kanan atas AppBar.

Flutter · Features · Quickstart · Structure · Screens · Team


Features

  • Bottom Navigation (3 tab): Home · Scan · Profile

  • Notifikasi lokal via ikon lonceng di AppBar (kanan atas)

  • Scan QR untuk presensi (format: NIS|NAMA)

  • Rekap Kehadiran: total/hadir/absen, toggle status

  • BAP: input topik & catatan → preview ringkas

  • Settings (Profile):

    • Dark Mode (persist, SharedPreferences)
    • Language (ID/EN sederhana, persist)
    • Edit Account (form sederhana)
    • Bookmarks (catatan singkat, persist)
    • Privacy & Help (informasi statis)
  • Tanpa backend: semua data lokal (mudah dipahami & dikembangkan)


Tech Stack

  • Flutter (Material 3, Google Fonts)
  • State: provider
  • Storage: shared_preferences (JSON)
  • QR Scan: qr_code_scanner
  • Local Notifications: flutter_local_notifications

Screens & Flows

  • LoginHomeShell (AppBar + BottomNav)
  • Home: kartu jadwal contoh + link ke Rekap & BAP
  • Scan: kamera + overlay; simpan/toggle presensi dari QR (NIS|NAMA)
  • Profile/Settings: Dark Mode, Language, Edit Account, Bookmarks, Privacy & Help
  • AppBar: ikon 🔔 untuk trigger notifikasi lokal

Catatan BAP: Saat ini preview teks. Jika ingin export PDF, tambahkan paket pdf + printing.


Quickstart

1) Requirement

  • Flutter SDK terbaru (3.x)
  • Android Studio / Xcode untuk build device

2) Clone & Install

git clone https://github.com/<org-or-user>/corelasi.git
cd corelasi
flutter pub get

3) Jalankan

flutter run

4) Permissions

Androidandroid/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA" />

iOSios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>Camera is used for scanning QR codes for attendance.</string>

Project Structure

lib/
  main.dart
  app_theme.dart
  models/
    student.dart
  providers/
    theme_provider.dart
    data_provider.dart
  services/
    notification_service.dart
  screens/
    login_screen.dart
    home_shell.dart
    home_page.dart
    scan_page.dart
    profile_page.dart
    edit_account_page.dart
    language_page.dart
    bookmarks_page.dart
    privacy_help_page.dart
    bap_page.dart
    attendance_recap_page.dart

assets/
  logo.png  (opsional untuk splash/header)
  • data_provider.dart: simpan students, bookmarks, language ke SharedPreferences (JSON).
  • theme_provider.dart: Dark Mode toggle + persist.
  • notification_service.dart: inisialisasi & tampilkan notifikasi lokal.
  • scan_page.dart: QRView → DataProvider.toggleScan(code).

Data Model

Student {
  "nis": "string",
  "name": "string",
  "present": true | false,
  "time": "ISO8601"
}
  • QR format: NIS|NAMA (contoh: 120031|Adi Nugraha)

Configuration

  • Ubah logo (opsional) di assets/logo.png
  • Tambah kelas/jadwal di home_page.dart (kartu contoh)
  • Notifikasi saat ini manual trigger (ikon 🔔). Bisa di-upgrade ke scheduled jika dibutuhkan.

Roadmap (opsional)

  • Export BAP ke PDF (pdf + printing)
  • Scheduled notifications sesuai jam pelajaran
  • Import/Export CSV daftar siswa
  • Integrasi backend (Firestore/REST) + auth sebenarnya
  • Role guru/siswa, multi-kelas & mata pelajaran

FAQ

Q: Kenapa data hilang saat reinstall?
D: Disimpan lokal (SharedPreferences). Untuk persist lebih kuat/sync multi-device, pakai DB lokal (Hive/Isar) atau backend.

Q: QR tidak terbaca?
D: Pastikan izin kamera aktif. Format harus NIS|NAMA. Coba perbesar/terangi QR.

Q: Notifikasi tidak tampil?
D: Cek izin notifikasi OS. Di iOS, notifikasi perlu izin user; di Android 13+ juga.


License

MIT © 2025 CORELASI Team


About

Flutter CORELASI mobile app for QR attendance, recap, BAP, profile settings, and local notifications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors