MarkIT is built offline-first: attendance-taking keeps working with no internet connection, and syncs automatically once you’re back online.
The sync status chip
Visible at the top of every logged-in screen. It has three states:
- Green, checkmark — “All synced — tap to force refresh” — everything is saved to the server. Tap it anytime to manually re-sync.
- Orange, with a count — “X change(s) waiting to sync — tap to retry” — you have local changes not yet on the server (normal when offline, or right after a burst of swipes). Tap to retry immediately.
- Blue, spinning — “Syncing…” — actively pushing/pulling right now.
What works offline
- Taking attendance (swipe screen), editing/undoing records, settings changes, and reason codes all write to your device first and queue up to sync later. You can keep marking attendance with zero signal.
What requires a connection
- Adding/editing/deleting students and classes
- CSV import
- Photo uploads
- Logging in (there’s no offline login)
These show a clear “you’re offline” message if you try them without a connection, rather than a generic error.
How sync happens automatically
- Every 30 seconds while the app is open.
- Immediately when your device comes back online.
- When you switch away from the tab/app (so a background app kill doesn’t lose queued writes — especially relevant on some Android devices).
If a queued item keeps failing after 20 attempts (e.g. a stale action from an old app version), it’s dropped with a toast rather than retrying forever — this is rare and doesn’t affect items that synced successfully.
Installing for best offline support
See Getting Started → Installing as an app — installing the PWA gives the most reliable offline experience, especially on iOS.