Skip to content

cneuralnetwork/75hard

Repository files navigation

75 Hard Tracker

Offline Android-first tracker for a personal 75 Hard Challenge. The app is built with Expo SDK 54 and React Native, stores progress locally with AsyncStorage, and has no login, backend, cloud sync, subscription, or social features.

Features

  • Setup flow before Day 1 with start date, water goal, reading goal, reminder time, and locked daily task selection.
  • Default tasks can be enabled, disabled, or renamed. Multiple custom tasks can be added.
  • Today screen with Day N / 75, date, quote, progress, checklist, notes, photo picker, warning state, and day completion confetti.
  • 75-day progress grid with completed, failed, pending, and current indicators.
  • Day detail modal for checklist edits, notes, progress photo, previous-day warning, and failure confirmation.
  • Stats for completion percentage, current streak, longest streak, days remaining, perfect days, and task-wise completion.
  • Settings for restart, start date, locked checklist editing with warning, reminders, why-I-started text, JSON export/import, and reset.
  • Past incomplete days are marked failed automatically the next time the app opens after midnight.

Folder Structure

.
├── App.tsx
├── app.json
├── eas.json
├── package.json
├── src
│   ├── components
│   ├── lib
│   ├── screens
│   ├── state
│   ├── theme.ts
│   └── types.ts
└── README.md

Install Dependencies

npm install

Run Locally

Start the Expo development server:

npm run start

Run in Expo Go on a connected Android device or emulator:

npm run android

Or run npm run start and scan the QR code from Expo Go.

This project is pinned to Expo SDK 54 so it can run in Expo Go versions that reject SDK 55 projects with Project is incompatible with this version of Expo Go.

Build an Android APK

Option 1: EAS APK build

Log in and build the APK with the project-local EAS CLI:

npx --yes eas-cli login
npm run build:apk

If EAS tries to package sibling folders from /home/deeponh/Projects or fails with ENOSPC, use the isolated build script:

npm run build:apk:isolated

The preview profile in eas.json is configured with "buildType": "apk".

Option 2: Local APK build

Requires Android Studio, Android SDK, Java, and Gradle support on your machine.

npm run build:apk:local

The APK will be generated at:

android/app/build/outputs/apk/release/app-release.apk

If you already installed an older APK, uninstall it from the phone before installing the new one. APKs do not live reload like Expo Go.

Verification

npm run typecheck
npx expo-doctor
npx expo export --platform android --output-dir /tmp/75hard-expo-export-sdk54

All three checks passed in this workspace after implementation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors