3 Commits

Author SHA1 Message Date
92de2bd7de feat: add F-Droid store icon and CI workflow
Some checks failed
Build and Release to F-Droid / build-and-deploy (push) Has been cancelled
Build and Release to F-Droid / ci (push) Has been cancelled
CI / ci (push) Failing after 1m2s
Add 512x512 app icon to F-Droid metadata for en-US and de-DE locales.
Add CI pipeline with static analysis, tests, security audit, and debug build.
Add security gate in release workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 11:44:40 +01:00
bca7e391ad ci: add CI pipeline with analysis, tests, security audit, and debug build
Add ci.yaml triggered on branch pushes and PRs with flutter analyze,
flutter test, dart pub audit, Trivy scan, and debug APK build. Gate the
release workflow behind a CI job so release builds only proceed after
all checks pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 11:42:17 +01:00
3902755f61 docs: add project README with features, screenshots, and setup instructions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 11:03:02 +01:00
6 changed files with 266 additions and 1 deletions

102
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,102 @@
name: CI
on:
push:
branches:
- '**'
tags-ignore:
- '**'
pull_request:
jobs:
ci:
runs-on: docker
env:
ANDROID_HOME: /opt/android-sdk
ANDROID_SDK_ROOT: /opt/android-sdk
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Install Android SDK packages
run: |
sdkmanager --licenses >/dev/null <<'EOF'
y
y
y
y
y
y
y
y
y
y
EOF
sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0"
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Trust Flutter SDK git directory
run: |
set -e
FLUTTER_BIN_DIR="$(dirname "$(command -v flutter)")"
FLUTTER_SDK_DIR="$(cd "$FLUTTER_BIN_DIR/.." && pwd -P)"
git config --global --add safe.directory "$FLUTTER_SDK_DIR"
if [ -n "${FLUTTER_ROOT:-}" ]; then
git config --global --add safe.directory "$FLUTTER_ROOT"
fi
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.4-x64 || true
- name: Verify Android + Flutter toolchain
run: flutter doctor -v
- name: Install dependencies
run: flutter pub get
- name: Static analysis
run: flutter analyze --no-pub
- name: Run tests
run: flutter test
- name: Check outdated dependencies
run: dart pub outdated
continue-on-error: true
- name: Security audit
run: dart pub audit
- name: Trivy filesystem scan
run: |
set -e
SUDO=""
if command -v sudo >/dev/null 2>&1; then
SUDO="sudo"
fi
if command -v apt-get >/dev/null 2>&1; then
$SUDO apt-get update
$SUDO apt-get install -y wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | $SUDO tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | $SUDO tee /etc/apt/sources.list.d/trivy.list
$SUDO apt-get update
$SUDO apt-get install -y trivy
elif command -v apk >/dev/null 2>&1; then
$SUDO apk add --no-cache trivy || (wget -qO trivy.tar.gz https://github.com/aquasecurity/trivy/releases/latest/download/trivy_0.62.1_Linux-64bit.tar.gz && tar xzf trivy.tar.gz trivy && $SUDO mv trivy /usr/local/bin/)
fi
trivy filesystem --severity HIGH,CRITICAL --exit-code 0 .
continue-on-error: true
- name: Build debug APK
run: flutter build apk --debug

View File

@@ -7,7 +7,100 @@ on:
workflow_dispatch:
jobs:
ci:
runs-on: docker
env:
ANDROID_HOME: /opt/android-sdk
ANDROID_SDK_ROOT: /opt/android-sdk
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Install Android SDK packages
run: |
sdkmanager --licenses >/dev/null <<'EOF'
y
y
y
y
y
y
y
y
y
y
EOF
sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0"
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Trust Flutter SDK git directory
run: |
set -e
FLUTTER_BIN_DIR="$(dirname "$(command -v flutter)")"
FLUTTER_SDK_DIR="$(cd "$FLUTTER_BIN_DIR/.." && pwd -P)"
git config --global --add safe.directory "$FLUTTER_SDK_DIR"
if [ -n "${FLUTTER_ROOT:-}" ]; then
git config --global --add safe.directory "$FLUTTER_ROOT"
fi
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.41.4-x64 || true
- name: Verify Android + Flutter toolchain
run: flutter doctor -v
- name: Install dependencies
run: flutter pub get
- name: Static analysis
run: flutter analyze --no-pub
- name: Run tests
run: flutter test
- name: Check outdated dependencies
run: dart pub outdated
continue-on-error: true
- name: Security audit
run: dart pub audit
- name: Trivy filesystem scan
run: |
set -e
SUDO=""
if command -v sudo >/dev/null 2>&1; then
SUDO="sudo"
fi
if command -v apt-get >/dev/null 2>&1; then
$SUDO apt-get update
$SUDO apt-get install -y wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | $SUDO tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | $SUDO tee /etc/apt/sources.list.d/trivy.list
$SUDO apt-get update
$SUDO apt-get install -y trivy
elif command -v apk >/dev/null 2>&1; then
$SUDO apk add --no-cache trivy || (wget -qO trivy.tar.gz https://github.com/aquasecurity/trivy/releases/latest/download/trivy_0.62.1_Linux-64bit.tar.gz && tar xzf trivy.tar.gz trivy && $SUDO mv trivy /usr/local/bin/)
fi
trivy filesystem --severity HIGH,CRITICAL --exit-code 0 .
continue-on-error: true
- name: Build debug APK
run: flutter build apk --debug
build-and-deploy:
needs: ci
runs-on: docker
env:
ANDROID_HOME: /opt/android-sdk

View File

@@ -2,6 +2,13 @@
All notable changes to HouseHoldKeeper are documented in this file.
## [1.1.4] - 2026-03-17
### Added
- CI workflow for branch pushes and pull requests with static analysis, tests, security audit, and debug build
- Security gate in release workflow — CI checks must pass before release build proceeds
- F-Droid store icon (512x512) for en-US and de-DE metadata
## [1.1.3] - 2026-03-17
### Added

View File

@@ -1,2 +1,65 @@
# HouseHoldKeaper
# Household Keeper
Your household, effortlessly organized.
Household Keeper helps you organize and manage your household tasks. Create rooms, assign tasks, set recurring reminders, and keep your home running smoothly.
## Features
- **Room Management** — Create and organize rooms with drag-and-drop reordering
- **Task Templates** — Quickly add common household tasks or create your own
- **Recurring Scheduling** — Daily, weekly, monthly, or yearly task recurrence
- **Calendar View** — Day-by-day task overview with a floating "Today" button
- **Task History** — View past completions for each task
- **Task Sorting** — Sort by name, due date, or room with persistent preferences
- **Notifications** — Local reminders for due tasks
- **Light & Dark Theme** — Follows your system preference
- **Localization** — German and English
## Screenshots
<p float="left">
<img src="fdroid-metadata/de.jeanlucmakiola.household_keeper/en-US/phoneScreenshots/1_overview.png" width="200" />
<img src="fdroid-metadata/de.jeanlucmakiola.household_keeper/en-US/phoneScreenshots/2_create_room.png" width="200" />
<img src="fdroid-metadata/de.jeanlucmakiola.household_keeper/en-US/phoneScreenshots/3_task_templates.png" width="200" />
<img src="fdroid-metadata/de.jeanlucmakiola.household_keeper/en-US/phoneScreenshots/4_room_tasks.png" width="200" />
</p>
## Tech Stack
- **Flutter** (SDK ^3.11.0)
- **Riverpod** — State management
- **Drift** — Local SQLite database
- **GoRouter** — Navigation
- **flutter_local_notifications** — Scheduled reminders
## Getting Started
```bash
# Clone the repo
git clone https://gitea.jeanlucmakiola.de/makiolaj/HouseHoldKeaper.git
cd HouseHoldKeaper
# Install dependencies
flutter pub get
# Generate code (drift, riverpod, l10n)
dart run build_runner build --delete-conflicting-outputs
# Run the app
flutter run
```
## Building
```bash
# Debug APK
flutter build apk --debug
# Release APK (requires signing config)
flutter build apk --release
```
## License
[MIT](LICENSE) — Jean-Luc Makiola, 2026

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB