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
-
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)
- Dark Mode (persist,
-
Tanpa backend: semua data lokal (mudah dipahami & dikembangkan)
- Flutter (Material 3, Google Fonts)
- State:
provider - Storage:
shared_preferences(JSON) - QR Scan:
qr_code_scanner - Local Notifications:
flutter_local_notifications
- Login → HomeShell (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
printing.
- Flutter SDK terbaru (3.x)
- Android Studio / Xcode untuk build device
git clone https://github.com/<org-or-user>/corelasi.git
cd corelasi
flutter pub getflutter runAndroid – android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />iOS – ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>Camera is used for scanning QR codes for attendance.</string>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 keSharedPreferences(JSON).theme_provider.dart: Dark Mode toggle + persist.notification_service.dart: inisialisasi & tampilkan notifikasi lokal.scan_page.dart: QRView →DataProvider.toggleScan(code).
Student {
"nis": "string",
"name": "string",
"present": true | false,
"time": "ISO8601"
}- QR format:
NIS|NAMA(contoh:120031|Adi Nugraha)
- 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.
- 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
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.
MIT © 2025 CORELASI Team