How nur1s-lam/irfan-academy works
Irfan Academy is a Flutter education app with authentication, lessons and homework, Quran study, prayer tools, profiles, and administration. The user-facing journey begins at sign-in and continues through the home screen into learning or religious-study features; administrators also manage video lessons. The tree and supplied excerpts identify these capabilities and the R2 callable backend, but most Dart implementation was not sampled, so screen-to-service wiring is shown only where documentation supports it.
Main entry points: admin_screen.dart Administration · quran Quran study · index.js R2 callable functions · auth Sign in / register
Components 24
App navigation
- App entry
lib/main.dart - Sign in / register
lib/screens/auth - Home
lib/screens/home/home_screen.dart - Profile and settings
lib/screens/profile - Administration
lib/screens/admin/admin_screen.dart
Learning
- Lessons
lib/screens/lessons - Lesson records
lib/models/lesson.dart - Homework records
lib/models/homework.dart - Video lesson records
lib/models/video_lesson.dart
Religious study
- Quran study
lib/screens/quran - Quran data
lib/services/quran_data_service.dart - Quran audio
lib/services/quran_audio_service.dart - Prayer and Qibla
lib/screens/prayer/prayer_screen.dart - Prayer calculations
lib/services/prayer_service.dart - Prayer times
lib/models/prayer_time.dart
Services and storage
- Authentication
lib/services/auth_service.dart - Firestore access
lib/services/firestore_service.dart - Admin operations
lib/services/admin_service.dart - Firebase
- R2 callable functions
functions/index.js - Cloudflare R2
- Video storage client
lib/services/cloudinary_video_service.dart
Other components
- Learner or admin
- Cloudinary
Connections 23
- Learner or admin → App entry: opens app
- App entry → Sign in / register: shows
- Learner or admin → Sign in / register: signs in
- Sign in / register → Authentication: authenticates
- Authentication → Firebase: uses Firebase Auth
- Learner or admin → Home: continues to
- Home → Lessons: opens lessons
- Learner or admin → Quran study: opens Quran
- Quran study → Quran data: loads Quran
- Quran study → Quran audio: plays recitation
- Learner or admin → Prayer and Qibla: opens prayer tools
- Prayer and Qibla → Prayer calculations: gets prayer times
- Prayer calculations → Prayer times: produces times
- Learner or admin → Administration: manages content
- Administration → Admin operations: requests admin actions
- Admin operations → Firebase: uses Firebase
- Video storage client → Cloudinary: uploads video
- Administration → R2 callable functions: manages R2 videos
- R2 callable functions → Firebase: checks admin role
- R2 callable functions → Cloudflare R2: uploads or signs access
- Lessons → Firestore access: accesses lesson data
- Firestore access → Firebase: reads and writes
- Profile and settings → Firestore access: accesses profile data