Skip to content

eyenpi/done-app

Repository files navigation

Done.

A proof-based habit tracking app. Habits only count when you prove them — no more self-reported streaks.

Screenshots

Today screen Habit detail Configure habit

What it does

Done. lets you create daily habits and requires proof of completion before marking them done. Proof methods include:

  • Camera + AI — Take a photo and an AI model verifies it matches your habit
  • Buddy verification — Invite a friend to confirm your completion
  • Sensor data — Use device sensors (steps, health data)
  • External APIs — Connect to Apple Health, Strava, etc.

Other features:

  • Streak tracking (current and best)
  • Flexible scheduling (daily, weekdays, weekends)
  • Predefined habit templates organized by category
  • Buddy system for mutual accountability
  • Light and dark mode
  • Onboarding flow for new users

Tech stack

  • Framework: React Native + Expo (managed workflow)
  • Language: TypeScript
  • Navigation: Expo Router (file-based)
  • Styling: TailwindCSS via NativeWind
  • Backend: Supabase (PostgreSQL, Auth, Storage, Edge Functions)
  • Camera: expo-camera
  • AI verification: OpenAI (via Supabase Edge Function)
  • Animations: React Native Reanimated + Gesture Handler

Prerequisites

  • Node.js
  • npm
  • Expo CLI (npm install -g expo-cli)
  • A Supabase project
  • An OpenAI API key (for AI proof verification)

Getting started

  1. Clone and install dependencies

    git clone <repo-url>
    cd done-app
    npm install
  2. Set up environment variables

    cp .env.example .env

    Fill in your values:

    EXPO_PUBLIC_SUPABASE_URL=your-supabase-url
    EXPO_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
    OPENAI_API_KEY=your-openai-api-key
    
  3. Run database migrations

    Apply the SQL migrations in supabase/migrations/ to your Supabase project.

  4. Start the dev server

    npm start

    Then press i for iOS simulator, a for Android emulator, or w for web.

Scripts

Command Description
npm start Start the Expo dev server
npm run ios Run on iOS simulator
npm run android Run on Android emulator
npm run web Run in the browser
npm run lint Run ESLint

Project structure

app/
├── (auth)/           Auth screens (sign-in, sign-up, forgot-password)
├── (tabs)/           Main tabs (today, profile)
├── create-habit/     Habit creation flow
├── habit/            Habit detail, proof submission, editing
├── onboarding.tsx    Onboarding carousel
└── _layout.tsx       Root layout

components/ui/        Reusable UI components
contexts/             Auth context provider
hooks/                Data hooks (habits, logs, invitations)
lib/                  Supabase client, types, theme, utilities
supabase/migrations/  Database schema migrations

Platforms

  • iOS
  • Android
  • Web

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors