AI-powered resume tools for students & job seekers Free to start No credit card Trusted by job seekers
ReachRole Your Career. A Step Ahead.

Android project

Build a habit tracker with local persistence and streaks

Add, track, and persist daily habits — a small app, but the streak logic across day boundaries is the actual test.

6-9 hoursEstimated time
BeginnerDifficulty
5Graded criteria
RepoWhat you submit

The brief

Build a habit tracker app in Jetpack Compose: add, edit, and delete habits, mark a habit done for the day, and track a streak count. Persist everything locally with Room so data survives an app restart. Follow Material 3 design conventions.

Suggested stack

Kotlin Jetpack Compose Room

What you hand in

  • A public GitHub repository with the app and a README
  • The README explains the data model and how the streak is calculated
  • A short note on the app architecture (where state lives)

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.

Local persistence correctness 30 pts

Data survives an app restart, and the streak count is accurate across real calendar day boundaries, not just wall-clock hours since last marked.

UI follows Compose/Material patterns 25 pts

State is hoisted appropriately (not everything in one Composable), and the UI follows Material 3 conventions rather than ad hoc styling.

CRUD completeness 20 pts

Add, edit, and delete all work, and deleting a habit with existing history is handled deliberately (confirmed or explained), not silently.

Architecture 15 pts

UI and data logic are separated (e.g. a ViewModel and repository), not all mixed into a single Activity or Composable.

Finish 10 pts

No console errors or crashes, no broken layout, no leftover placeholder text or commented-out code.

Why this project is worth your weekend

  • A habit tracker's CRUD-plus-local-storage shape is close to the actual first ticket most junior Android developers get assigned.
  • Streak logic — what counts as "still on track" across a midnight or timezone boundary — is a small edge case that reveals real attention to detail.
  • Room plus Compose is the current standard stack, so this proves the candidate isn't stuck on deprecated Views/XML patterns.

Where people lose points

  • Putting all logic directly in the Composable or Activity instead of a ViewModel, so state is lost on rotation.
  • A streak counter that breaks at day boundaries because it uses elapsed wall-clock time instead of calendar days.
  • No confirmation before deleting a habit that has weeks of tracked history.

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.

Submit for grading Add project to your ATS resume Free to start. Grading uses one AI action.