CareHaven is a caregiver platform for seniors in Singapore. It connects caregivers with their elderly care recipients through a mobile app, enabling task management, health monitoring, SOS alerts, and real-time updates.
This is the CareHaven monorepo — all project components live in one Git repository.
| Directory | Tech | Purpose |
|---|---|---|
caregiver-app |
Flutter + Kotlin | Mobile app for caregivers and seniors |
microservices |
C# / .NET 10 | Backend: 5 .NET microservices + API Gateway |
microservices/generativeAI-service |
Go | AI inference service (health summaries, anomaly detection) |
microservices/telegram-bot |
Go | Telegram bot for SOS alert notifications |
grpc-protobuffers |
Protobuf | Shared gRPC service definitions |
code-style-guide |
Markdown | Coding standards (C#, Dart, Python, Go, Kotlin, Protobuf) |
test-suite |
Python | Integration tests and stress/load tests |
algorithms |
Python | Research prototypes (geofencing, anomaly detection, health scoring) |
docs |
Markdown | Documentation and API specs |
i18n |
JSON | Localization files for multiple languages |
cloud-native-paper |
LaTeX | Cloud-native architecture research paper |
haven-cli |
Go | Project CLI tool for setup, build, and deployment |
Required:
- Git
- Go 1.23+ — builds the
havenCLI - Docker and Docker Compose — runs all backend services
- Flutter SDK 3.0+ — mobile app
- .NET 10 SDK — backend microservices (if running outside Docker)
- Python 3 — integration tests and i18n sync
- protoc — protobuf compiler
protoc-gen-dart—dart pub global activate protoc_plugin
Optional (per feature):
protoc-gen-go/protoc-gen-go-grpc— Go stubs for the Telegram bot- Firebase CLI —
haven deploy deeplink - cloudflared — tunnel for Telegram bot webhook
- Locust —
haven stress - ghz —
haven bench
# Clone the monorepo
git clone <carehaven-repo-url> CareHaven
cd CareHaven
# Set up the haven CLI
source haven-cli/setup.sh
# Full project setup (config, protos, Docker, deps)
haven setup
# Start the backend and run the app
haven start
haven runTo make haven available in every terminal session, add to ~/.zshrc or ~/.bashrc:
source /path/to/CareHaven/haven-cli/setup.shAll project operations go through the haven CLI. See haven-cli/README.md for the full reference.
| Command | Description |
|---|---|
haven start |
Start all backend services (Docker) |
haven stop |
Stop all backend services |
haven restart |
Restart all backend services |
haven status |
Show service URLs and health |
haven logs [service] |
View service logs |
haven run [device] |
Run the Flutter app (auto-detects IP) |
haven apk [debug|release] |
Build an Android APK |
haven proto |
Generate protobuf stubs (Dart, Python, Go) |
haven clean |
Remove containers, volumes, build artifacts, TLS certs |
haven start # Start backend (auto-detects your IP)
haven apk # Build release APK with your IP baked in
adb install caregiver-app/build/app/outputs/flutter-apk/app-release.apkThe phone must be on the same Wi-Fi network as your computer.
| Service | REST / UI | gRPC |
|---|---|---|
| API Gateway | http://localhost:8090 | localhost:8092 |
| Firebase Emulator UI | http://localhost:4000 | — |
| Swagger | http://localhost:8090/swagger | — |
| Grafana Dashboards | http://localhost:3000 | — |
# Pull the latest monorepo changes
git pullUniversity of Glasgow — CS 2025 — Team N2