Skip to content

Frostswing/CoupleTasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoupleTasks

Meant for all the couples out there fighting for doing chores

A React Native mobile application built with Expo to help couples manage household tasks, shopping lists, and inventory together in real-time.

Features

  • 📋 Task management with categories and scheduling
  • 🛒 Shared shopping lists
  • 📦 Inventory tracking
  • 🔔 Notifications and reminders
  • 👥 Real-time synchronization between partners
  • 🌐 Multi-language support (English, Hebrew)
  • 📊 History and statistics

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI
  • Android Studio (for Android development) or Xcode (for iOS development)

Installation

# Install dependencies
npm install

# Start Expo development server
npm start

Running the App

npm start          # Start Expo dev server
npm run android    # Run on Android
npm run ios        # Run on iOS
npm run web        # Run on web (limited support)

Building Android APK Locally

You can build an Android APK locally without using EAS Build. This is useful for quick testing or when you don't want to use cloud build services.

Quick Build

npm run build:android

This command will:

  1. Generate the native Android project (expo prebuild)
  2. Build a release APK using Gradle
  3. Output the APK to: android/app/build/outputs/apk/release/app-release.apk

Prerequisites

  • Android SDK installed (via Android Studio)
  • Java Development Kit (JDK) 17 or higher
  • Android Studio (recommended) or Android SDK command-line tools

Manual Build Steps

If you prefer more control over the build process:

# 1. Generate native Android project (first time only, or after config changes)
npm run prebuild:android

# 2. Build the APK manually
cd android
./gradlew assembleRelease

# The APK will be at: android/app/build/outputs/apk/release/app-release.apk

Installing the APK

After building, you can install the APK on your Android device:

# Using ADB (Android Debug Bridge)
adb install android/app/build/outputs/apk/release/app-release.apk

# Or transfer the APK file to your device and install manually

Note: The android/ folder is generated by expo prebuild and contains the native Android project. You can add it to .gitignore if you don't want to commit it to version control.

Creating a New Release

The project uses automated CI/CD for building and releasing Android APKs via GitHub Actions and EAS Build.

Testing Builds Locally (Recommended)

Before creating a release, test the build locally to ensure everything works:

./scripts/build-local.sh

This script will:

  • Build an APK using EAS Build (same as CI/CD)
  • Let you choose between preview or production profile
  • Optionally wait for the build and download the APK
  • Save the APK locally for testing

Prerequisites:

  • EAS CLI installed: npm install -g eas-cli
  • Logged in to EAS: eas login
  • EAS project initialized: eas init (run once, script will prompt if needed)
  • Android credentials set up: eas credentials --platform android (run once, script will prompt if needed)
  • Expo account with build credits

Quick Release Steps

  1. Run the release script:

    ./scripts/release.sh
  2. Select version bump type:

    • 1 - Patch (x.x.X): Bug fixes and minor changes
    • 2 - Minor (x.X.x): New features, backwards compatible
    • 3 - Major (X.x.x): Breaking changes
  3. Confirm the release when prompted

  4. The script automatically:

    • Updates version in package.json and app.json
    • Generates release notes from recent commits
    • Commits the version changes
    • Creates a git tag (e.g., v1.0.1)
    • Pushes commits and tag to GitHub
  5. GitHub Actions automatically:

    • Builds Android APK using EAS Build
    • Creates a GitHub Release with the APK attached
    • Includes auto-generated release notes

Monitoring the Build

  • Go to the Actions tab in your GitHub repository
  • Watch the "Build and Release" workflow progress
  • Once complete, the release will appear in the Releases section

Prerequisites for Releases

Before creating your first release, ensure:

  1. Expo Token is set in GitHub Secrets:

  2. EAS CLI is installed and configured:

    npm install -g eas-cli
    eas login

For detailed setup instructions, see documentation/RELEASE_SETUP.md.

Project Structure

CoupleTasks/
├── src/                    # Source code
│   ├── components/         # React components
│   ├── screens/           # Screen components
│   ├── services/          # Business logic services
│   ├── navigation/        # Navigation configuration
│   └── firebase/          # Firebase configuration
├── assets/                # Images and icons
├── scripts/               # Utility scripts
│   └── release.sh         # Release script
├── documentation/        # Documentation files
├── app.json              # Expo configuration
└── package.json          # Dependencies

Documentation

Technology Stack

  • Framework: React Native (Expo)
  • Backend: Firebase (Realtime Database, Auth, Storage)
  • Build: EAS Build
  • CI/CD: GitHub Actions

License

Private project

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published