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.
- 📋 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
- Node.js 18+
- npm or yarn
- Expo CLI
- Android Studio (for Android development) or Xcode (for iOS development)
# Install dependencies
npm install
# Start Expo development server
npm startnpm 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)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.
npm run build:androidThis command will:
- Generate the native Android project (
expo prebuild) - Build a release APK using Gradle
- Output the APK to:
android/app/build/outputs/apk/release/app-release.apk
- Android SDK installed (via Android Studio)
- Java Development Kit (JDK) 17 or higher
- Android Studio (recommended) or Android SDK command-line tools
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.apkAfter 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 manuallyNote: 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.
The project uses automated CI/CD for building and releasing Android APKs via GitHub Actions and EAS Build.
Before creating a release, test the build locally to ensure everything works:
./scripts/build-local.shThis 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
-
Run the release script:
./scripts/release.sh
-
Select version bump type:
1- Patch (x.x.X): Bug fixes and minor changes2- Minor (x.X.x): New features, backwards compatible3- Major (X.x.x): Breaking changes
-
Confirm the release when prompted
-
The script automatically:
- Updates version in
package.jsonandapp.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
- Updates version in
-
GitHub Actions automatically:
- Builds Android APK using EAS Build
- Creates a GitHub Release with the APK attached
- Includes auto-generated release notes
- 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
Before creating your first release, ensure:
-
Expo Token is set in GitHub Secrets:
- Repository → Settings → Secrets and variables → Actions
- Add
EXPO_TOKENwith your Expo access token - Get token from: https://expo.dev/accounts/[your-account]/settings/access-tokens
-
EAS CLI is installed and configured:
npm install -g eas-cli eas login
For detailed setup instructions, see documentation/RELEASE_SETUP.md.
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
- Architecture - System architecture and technical details
- Release Setup - Detailed release setup guide
- Firebase Security Rules - Database security configuration
- Notifications - Notification system documentation
- Framework: React Native (Expo)
- Backend: Firebase (Realtime Database, Auth, Storage)
- Build: EAS Build
- CI/CD: GitHub Actions
Private project