Skip to content

finnianjs/habit-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Habit Tracker

A minimalist mobile habit tracker built with Expo (React Native + TypeScript). Track daily habits, view streaks, and visualize progress with a calendar heatmap — all stored locally on-device.

Features

  • Add and complete daily habits with a single tap
  • Automatic midnight reset — each day starts fresh
  • Stats screen with streaks, completion percentages, and best day of week
  • Calendar heatmap for visualizing consistency over time
  • Dark theme throughout
  • Local-first — all data stored on-device with SQLite

Tech Stack

  • Expo SDK 54 (managed workflow)
  • expo-router — file-based navigation
  • expo-sqlite — local persistence (direct SQL, no ORM)
  • React Context + useReducer — state management
  • react-native-svg — custom calendar heatmap
  • TypeScript

Getting Started

Prerequisites

Install & Run

npm install
npx expo start

Press i for iOS simulator or a for Android emulator.

Project Structure

app/              # expo-router screens (_layout, index, stats)
src/db/           # database singleton + SQL queries
src/context/      # HabitContext (global state + DB sync)
src/components/   # UI components (HabitItem, AddHabitInput, CalendarHeatmap, etc.)
src/hooks/        # useStats hook
src/constants/    # colors.ts, typography.ts (dark theme)

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors