Skip to content

Efe-Cal/MeTracker

Repository files navigation

MeTracker

MeTracker is a React Native (Expo) application for personal health and habit tracking. It ships with a set of prebuilt trackers (e.g. caffeine intake and toilet logs) and lets you create fully custom trackers (including substance trackers with decay visualization). Data is stored locally using SQLite for privacy and offline reliability.

Adsız tasarım (3)

Key Features

1. Prebuilt Trackers

2. Custom Trackers

Create arbitrary trackers with fields (number, boolean, text, select, image):

3. Substance Trackers (Custom)

Any custom tracker can be marked as a “substance tracker” to:

4. Local SQLite Storage

All persistence is local (offline-first):

5. Theming (Light / Dark)

6. PIN Lock (Simple Local Auth)

7. Reusable UI Components

  • Floating action button: FloatingPlusButton
  • Input helpers: NumberField, image selector (ImageField), select fields, etc.
  • Generic swipeable card: Card
  • Themed wrappers: ThemedText, ThemedView (used across screens)

8. Toast Feedback

Consistent success/error feedback via react-native-toast-message (e.g. deletions & saves in tracker and toilet flows).

9. Data Visualization

High-Level Architecture

Layer Responsibility
Screens (app/*) Navigation targets & feature composition
Components (components/*) Reusable presentation & interaction units
Hooks (hooks/*) Data fetching & derived state (e.g. useIntakes)
Theme (constants/Colors.ts) Color tokens (light/dark)
SQLite Access Direct lightweight queries per feature (no heavy ORM)

Data Model Examples

  • Caffeine intakes: caffeine_intakes (id, name, time, amount)
  • Substance trackers: <substance>_intakes
  • Custom trackers: tracker_<trackerID> plus metadata in trackers
  • Toilet logs: toilet (time, urination, urinationColor, isPainUrination, isBM, BMColor, BMshape, isPainBM, isSmell, photo, notes)

Navigation

Expo Router file-based navigation:

Getting Started

Prerequisites

  • Node.js (LTS)
  • Expo CLI (npx expo will scaffold)
  • iOS Simulator / Android Emulator / Expo Go

Install

npm install

Run (Development)

npx expo start

Select a platform (press i for iOS simulator, a for Android, or scan the QR code).

Build (Example)

# Example: Prebuild native project (if needed)
npx expo prebuild

Typical Workflow

  1. Open app – authenticate via PIN if set (SignIn)
  2. View dashboard of prebuilt + custom trackers app/index.tsx
  3. Add data (e.g. caffeine intake or toilet log) via floating button FloatingPlusButton
  4. For substance trackers, observe decay curve SubstanceDecayGraph
  5. Create new tracker with fields in creation UI app/createTracker/createMenu.tsx
  6. Manage tracker (delete or review) in settings app/customTrackers/settings/[name].tsx

Deleting & Editing

  • Swipe cards (custom logs & intakes) to trigger delete confirmations (see SubstanceLogCard, CustomtTrackerLogCard)
  • Full log deletion for toilet entries from details page (Delete Log action)

Theming

All screens read current theme from context and apply palette defined in constants/Colors.ts.

Security / Privacy

  • All data is local (SQLite)
  • PIN stored via SecureStore (see usage inside SignIn)

Roadmap Ideas

  • Data export (CSV / JSON)
  • Charts for non-substance trackers
  • Cloud sync (optional)
  • Field editing after tracker creation
  • Accessibility & localization improvements

Contributing

  1. Fork / branch
  2. Implement change
  3. Test on at least one platform
  4. Submit PR

Built to help individuals observe patterns in daily health metrics with full local ownership of their data.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published