Skip to content

s-aahmedramlan/wakeUp

Repository files navigation

RiseRite

Make discipline unavoidable. RiseRite enforces healthy morning and productivity habits by verifying real-world actions using on-device computer vision.

Project Structure

riserite/
├── mobile/          # React Native/Expo mobile app
├── api/             # Backend API (FastAPI)
│   └── fastapi/
├── infra/           # AWS infrastructure setup
├── ml/              # ML/CV models and experiments
└── docs/            # Documentation

MVP Features

  • Wake Module: CV-verified alarm that requires push-ups before silencing
  • Alarm Scheduling: Set your wake-up time
  • Push-up Detection: On-device computer vision to count and verify push-ups
  • Motivational Audio: Audio transitions from alarm to motivational track
  • Session Logging: Sessions are logged to DynamoDB and local SQLite

Getting Started

Prerequisites

  • Node.js 18+
  • Python 3.9+
  • AWS Account (for backend)
  • Expo CLI: npm install -g expo-cli

Mobile App Setup

  1. Navigate to mobile directory:

    cd mobile
  2. Install dependencies:

    npm install
  3. Start Expo:

    npm start
  4. Build development client (required for native modules like MediaPipe):

    Option A: EAS Build (Recommended - Works on Windows for iOS)

    # Install EAS CLI globally
    npm install -g eas-cli
    
    # Login to Expo
    eas login
    
    # Build iOS development client
    eas build --platform ios --profile development
    
    # Or build Android
    eas build --platform android --profile development

    Option B: Local Build (Requires macOS for iOS)

    npx expo prebuild
    npx expo run:android  # or run:ios (macOS only)

Backend Setup

  1. Configure AWS credentials (see infra/aws-setup.md)

  2. Create DynamoDB table:

    aws dynamodb create-table \
      --table-name WakeSessions \
      --attribute-definitions AttributeName=userId,AttributeType=S AttributeName=date,AttributeType=S \
      --key-schema AttributeName=userId,KeyType=HASH AttributeName=date,KeyType=RANGE \
      --billing-mode PAY_PER_REQUEST
  3. Navigate to API directory:

    cd api/fastapi
  4. Install dependencies:

    pip install -r requirements.txt
  5. Set environment variables:

    export AWS_ACCESS_KEY_ID=your_key
    export AWS_SECRET_ACCESS_KEY=your_secret
    export AWS_REGION=us-east-1
  6. Run server:

    python main.py

Development

  • Run linting: npm run lint
  • Format code: npm run format

Architecture

  • Mobile: Expo with React Native, TypeScript, Zustand for state
  • CV: MediaPipe Pose Detection (primary) + TensorFlow Lite (fallback)
  • Backend: FastAPI with AWS DynamoDB
  • Storage: Local SQLite + DynamoDB sync
  • Build: EAS Build for cloud-based iOS/Android builds

Deployment

EAS Build Setup

  1. Install EAS CLI:

    npm install -g eas-cli
  2. Login to Expo:

    cd mobile
    eas login

    (Create account at https://expo.dev if needed)

  3. Build for iOS:

    eas build --platform ios --profile development
  4. Install on Device:

    • EAS provides a download link after build completes
    • Install via TestFlight or direct download
    • Or use eas build:run --platform ios to install directly

See docs/EAS_BUILD_QUICKSTART.md for detailed instructions.

Next Steps (Phase 2+)

  • Brushing verification
  • Move module (workouts)
  • Focus module (deep work tracking)
  • Web dashboard
  • Advanced analytics

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published