Android project
Build an offline-first notes app with sync and conflict handling
Notes that work with the network off and sync visibly when it returns — including what happens when the same note changed in both places.
The brief
Build a notes app that works fully offline using Room for storage, with search over local notes. Add sync to a mock remote API when connectivity returns, and handle the case where a note was edited offline while it also changed remotely — a simple last-write-wins strategy is fine, but the user must see a visible "updated elsewhere" indicator, not a silent overwrite.
Suggested stack
What you hand in
- A public GitHub repository with the app and a README
- The README explains the sync strategy and how conflicts are surfaced to the user
- A short note on how offline mode was tested (e.g. airplane mode)
Grading happens against the rubric below, so read it before you start — not after.
How this is graded
Published in advance and weighted out of 100. Nothing here is a surprise.
The app is fully usable — create, edit, search — with no network connection at all, proven by testing in airplane mode.
Reconnecting syncs pending local changes without duplicating or losing notes.
When a note changed both locally and remotely, the user sees an indicator rather than one version silently overwriting the other with no trace.
Search returns correct results against locally stored notes, including while offline.
No console errors or crashes, no broken layout, no leftover placeholder text or commented-out code.
Why this project is worth your weekend
- Offline-first is a real, common requirement — connectivity is genuinely spotty for a large share of Android's actual user base — and most tutorials skip straight to always-online apps.
- Sync conflicts are where real apps silently lose user data, and handling them visibly is a mid-level skill that's rarely taught.
- This can't be faked by hardcoding a demo path — an interviewer can turn off airplane mode mid-demo and see if it actually holds up.
Where people lose points
- An app that appears to work offline in a demo but actually hangs or crashes waiting on a network call with no timeout.
- Sync that overwrites a local edit with the remote version with no warning shown to the user.
- No debounce on sync, so every keystroke or reconnect event triggers a redundant sync call.
Other Android projects
Two or three of these turn an empty resume into a portfolio.
Built it? Get it scored against this rubric.
Submit your work and get a score on every criterion above, written feedback, and three resume bullets you can use straight away.