Skip to content
DeveloperFardeenPublic

About

A fully customizable, offline-first routine & time tracker mobile app.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Routine

A fully customizable, offline-first routine & time tracker built with React Native + Expo. Track how you spend your 1440 minutes a day — by priority, with optional deadlines and sleep sign-off. Runs in Expo Go, or as a standalone Android APK.

Features

  • One-tap tracking — tap an activity to start a live timer; tap another to switch, or stop & save. Add a note to any session.
  • Fully customizable activities — name, color (15 presets), icon (30 Ionicons), and an optional daily goal. Create, edit, archive, or delete.
  • History — every session grouped by day with totals, start/end times, and notes. Log past time manually, or delete entries.
  • Stats — Today / This Week breakdown per activity with progress bars, % of total, % of daily goal, plus a 7-day bar chart.
  • Appearance — Light / Dark / System theme and 10 accent colors.
  • Preferences — week starts on Monday or Sunday; keep the screen awake while tracking.
  • Offline & private — all data is stored locally on the device via AsyncStorage. The running timer survives app restarts.

Running it (Expo Go)

  1. Install Expo Go on your Android phone (Play Store).
  2. In this folder:
    npm install
    npm start
  3. Scan the QR code in the terminal with Expo Go.

npm run android launches straight onto a connected device/emulator.

Tech / architecture

  • Expo SDK 56, React Native 0.85, React 19, TypeScript.
  • State + persistence: a single AppProvider (src/context/AppContext.tsx) holds all data and auto-saves to AsyncStorage (src/storage/store.ts).
  • Theming: token-based light/dark themes with a user-chosen accent (src/theme/palette.ts).
  • Navigation: a lightweight state-driven bottom tab bar in App.tsx (no extra nav deps → maximal Expo Go compatibility).
src/
├── context/AppContext.tsx   # global state, timer logic, persistence
├── storage/store.ts         # AsyncStorage load/save + defaults/seed
├── theme/palette.ts         # theme tokens, accent/color/icon presets
├── types.ts                 # data models
├── utils/time.ts            # duration/date formatting helpers
├── hooks/useNow.ts          # ticking clock for the live timer
├── components/              # Card, Button, Sheet, ActivityEditor, …
└── screens/                 # Timer, Stats, History, Activities, Settings

Data model

Activity { id, name, color, icon, dailyGoalMinutes, archived } · TimeEntry { id, activityId, start, end, note } · RunningTimer { activityId, start, note } — all persisted under one key.

About

A fully customizable, offline-first routine & time tracker mobile app.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages