Skip to content

Micro-habits tracker, daily essentials push notifier

Notifications You must be signed in to change notification settings

DineshMN1/Pulse

Repository files navigation

Pulse

A minimal habit tracking app built with React Native (Expo) and Supabase.

Screenshots

Home Habits Insights Profile
Home Habits Insights Profile

Features

  • Track daily habits with one-tap completion
  • View streaks and weekly progress
  • Insights with heatmap calendar
  • Journal thoughts section
  • Custom habit creation with icons
  • Push notifications for reminders
  • Dark mode support

Tech Stack

  • React Native + Expo SDK 54
  • TypeScript
  • Supabase (Auth & Database)
  • Expo Router (File-based navigation)
  • Expo Notifications

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo Go app (for development)
  • Supabase account

Installation

# Clone the repo
git clone https://github.com/DineshMn1/pulse.git
cd pulse

# Install dependencies
npm install

# Copy environment file
cp .env.example .env

# Add your Supabase credentials to .env

Environment Setup

Create a .env file with:

EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

Database Setup

Run the SQL in supabase-schema.sql in your Supabase SQL Editor to create:

  • profiles - User profiles
  • habits - User habits
  • completions - Daily completions
  • reflections - Journal entries

Development

# Start Expo development server
npm start

# Run on iOS simulator
npm run ios

# Run on Android emulator
npm run android

# Run on web
npm run web

Scan the QR code with Expo Go (Android) or Camera app (iOS).

Building for Production

Using EAS Build (Recommended)

# Install EAS CLI globally
npm install -g eas-cli

# Login to your Expo account
eas login

# Configure the project (first time only)
eas build:configure

# Build for Android (APK for testing)
eas build --platform android --profile preview

# Build for Android (Play Store)
eas build --platform android --profile production

# Build for iOS (App Store)
eas build --platform ios --profile production

# Build both platforms
eas build --platform all

Build Profiles

Edit eas.json to customize:

{
  "build": {
    "preview": {
      "android": {
        "buildType": "apk"
      }
    },
    "production": {}
  }
}

Local Build (Advanced)

# Generate native projects
npx expo prebuild

# Build Android APK locally
cd android && ./gradlew assembleRelease

# Build iOS (requires Mac + Xcode)
cd ios && xcodebuild -workspace Pulse.xcworkspace -scheme Pulse -configuration Release

Submitting to Stores

# Submit to Google Play
eas submit --platform android

# Submit to App Store
eas submit --platform ios

Project Structure

├── app/                  # Screens (Expo Router)
│   ├── (tabs)/           # Tab navigation screens
│   ├── auth.tsx          # Login/Signup
│   ├── profile.tsx       # User profile
│   └── _layout.tsx       # Root layout
├── assets/               # Images, fonts
├── components/           # Reusable components
├── constants/            # Colors, Layout, Habits config
├── context/              # React Context (Auth)
├── lib/                  # Supabase client & utilities
└── app.json              # Expo config

License

MIT

About

Micro-habits tracker, daily essentials push notifier

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published