Fall Guardian is a multi-platform fall detection and alert system. It separates fall detection, phone-side alert coordination, caregiver notification, and API persistence into focused projects inside one monorepo.
watch detects possible fall
-> assisted mobile app starts a cancellable countdown
-> uncancelled alert is submitted to the backend API
-> backend stores the alert and notifies linked caregiver devices
-> caregiver app shows the active alert and history
-> caregiver can acknowledge the alert
Cancelled alerts are still part of the backend history so caregivers can see that an assisted user stopped the escalation.
fall_guardian_monorepo/
├── apps/
│ ├── assisted_mobile/ Flutter app for the assisted person
│ ├── caregiver_mobile/ Flutter app for caregivers
│ ├── wear_os/ native Wear OS watch app
│ └── watchos/ native Apple Watch app
├── backend/
│ └── api/ Symfony/API Platform backend
├── packages/ reserved for shared contracts or generated assets
├── docs/ workspace-level documentation
└── scripts/ workspace automation
Each project keeps its own build system, README, and agent instructions. The root Makefile only orchestrates common checks.
backend/api: device identity, invite linking, fall-alert persistence, push dispatch, alert history, acknowledgement, cancellation, rate limiting, and API documentation.apps/assisted_mobile: phone app used by the assisted person. It receives watch events, runs the countdown, manages contacts, submits alerts, and lets the user cancel an alert before escalation.apps/caregiver_mobile: phone app used by caregivers. It links to one or more assisted persons, registers for push notifications, displays active alerts, and shows alert history.apps/wear_os: native Android watch app for Wear OS sensor-based fall detection and handoff to the assisted Android phone.apps/watchos: native watchOS app for Apple Watch sensor-based fall detection and handoff to the assisted iPhone.
- Flutter SDK for the two mobile apps.
- Android Studio, Android SDK, and JDK 17 for Android/Wear OS builds.
- Xcode for iOS/watchOS builds.
- Docker Compose or Podman Compose for the backend.
- GitHub CLI if you need to create or inspect pull requests locally.
The backend Makefile chooses podman compose when Podman is installed, using
Podman's stable macOS runtime directory (/private/tmp) so its external
Compose provider resolves the machine API socket correctly. It falls back to
docker compose otherwise.
Show available root commands:
make helpRun all deterministic checks:
make qualityRun checks for one project:
make quality-api
make quality-assisted
make quality-caregiver
make quality-wear-os
make quality-watchosCheck repository state:
make status- Start from
mainand pull the latest changes. - Create a short-lived branch for the change.
- Keep changes in the project that owns the behavior.
- For cross-project contract changes, update the backend and affected apps in the same branch so the feature remains testable end to end.
- Run the project-level quality command before pushing.
- Open a PR and wait for CI to pass before merging.
- Keep automated line coverage at or above 90% when practical.
- Prefer useful tests that verify behavior, contracts, edge cases, and regressions over tests that only execute lines.
- Do not commit secrets, tokens, certificates, signing files, generated native Firebase files, or local machine configuration.
- Use deterministic tools first: formatters, linters, static analysis, tests, builds, dependency scanners, security scanners, and compiler checks.
- Use agent hooks for fast local safety checks.
- Use written guidance and skills for judgment-heavy architecture and review.
Default local backend documentation is available at:
http://localhost:8002/docs
Default local API base path:
http://localhost:8002/api/v1
When testing on a wired Android device, the mobile Makefiles can reverse
localhost:8002 through ADB with their run-android-wired targets.
Read the project README closest to the code you are changing:
backend/api/README.mdapps/assisted_mobile/README.mdapps/caregiver_mobile/README.mdapps/wear_os/README.mdapps/watchos/README.md