Mobile App Development for Private Tutors
Most tutors work via WhatsApp and Google Calendar. Demand for a separate app appears when there are more than 10–15 students and schedule starts conflicting, payment gets lost in chats. The app's task — automate booking, reminders, and payment without losing personal contact.
Main Architectural Challenge — Two-Way Schedule
Tutor sets availability slots. Student sees free windows and books. Simple until you hit timezone hell: tutor in Moscow, student in Berlin. If you store time in local format without UTC normalization — lessons "shift" when daylight saving time changes. Solution: everything in UTC in database, convert on client via intl Flutter package with DateFormat and TimeZone from timezone package. Display — always in device's local time.
Slot conflicts are another story. If two students simultaneously open booking screen for same time, both see slot as free. Without optimistic locking at DB level (PostgreSQL SELECT FOR UPDATE or advisory locks) one gets success, second — silent error. On client: handle HTTP 409 with human-readable message "Time just booked by another student".
Tech Stack
Flutter cross-platform — iOS + Android from one codebase. Schedule state — Riverpod AsyncNotifier with caching via hive: lessons available offline. Video calls — Agora RTC SDK integration (Flutter package agora_rtc_engine) or Jitsi Meet SDK for self-hosted. Lesson recording — Agora Cloud Recording API saving to S3.
Payments: YooKassa or Stripe with confirmation webhooks. Important: charge only after lesson confirmation, not at booking — otherwise cancellations become a support nightmare.
Functional core:
- Tutor catalog with filters (subject, level, hourly rate)
- Online schedule with Google Calendar sync via Calendar API v3
- Built-in chat — Firebase Realtime Database, media (homework photos) via Storage
- Video call right in app
- Lesson history and student progress
- Auto reminders 24 hours and 1 hour before — FCM scheduled notifications via server cron
Monetization and Roles
Two scenarios: B2C marketplace (platform takes commission) or white-label for specific tutor/center. In latter case, remove catalog, keep schedule + payment + communication. Architecture must support both — config flag at AppConfig level, not hardcoded.
Timeline
MVP for one tutor (schedule, chat, payment): 6–9 weeks. Marketplace with catalog, video, tutor analytics: 14–18 weeks. Cost calculated individually after requirements analysis.







