Mobile App

React Native app for all roles — Android and iOS from a single codebase.

Built with React Native (Expo). Uses the same backend API and Socket.IO server as the web portal — no separate API layer required.

Platform Capabilities

  • Single codebase for Android and iOS (React Native + Expo)
  • FCM (Firebase Cloud Messaging) push notifications for all roles
  • Biometric login — Face ID and fingerprint via Expo SecureStore
  • Offline caching for home, courses, attendance, and notices
  • Child switcher for parents managing multiple enrolled children
  • School switcher for super admins managing multiple schools
  • In-app browser for DodoPayments checkout flow
  • Real-time Socket.IO events (live bus tracking, notifications)

Screen Sets Per Role

RoleKey Screens
StudentDashboard, Courses, Assignments, Quizzes, Grades, Timetable, Fees, Notices, Profile
ParentChild overview, Attendance, Fees + Pay, Timetable, Bus tracking, Notices, Chat with teacher
TeacherDashboard, Sessions, Attendance, Assignments (create + grade), Quizzes, Notices
AdminSchool overview, Users, Notices, Fee overview, Reports
AccountantFee accounts, Payments, Defaulters, Reports
Facilities AdminAssets, Maintenance, Transport (bus + routes)
LibrarianCatalogue, Issue/Return, Overdue list
DriverToday's trips, Start trip, Pickup/dropoff, SOS button
Super AdminSchools overview, School switcher, Analytics
Platform AdminPlatform stats, Super admins, School management

Push Notifications (FCM)

On mobile, web push is replaced by FCM. The fcmToken is stored on the User model and updated on each app launch. The existing notificationService.js dispatches both web push and FCM in parallel — no separate notification service needed.