Appearance
Wellysa Onkoradar Mobile
Flutter-based mobile application for oncology patient care and monitoring, available on iOS and Android with multi-environment deployment (dev/stage/prod).
CI/CD Status
🚀 Deployments
| DEV | STAGE | PROD |
|---|---|---|
✅ Quality Checks
| Check | Status | Coverage |
|---|---|---|
| PR Checks | - | |
| Unit Tests | ||
| E2E Tests |
Tech Stack
- Framework: Flutter (version managed via FVM)
- Language: Dart (primary), Kotlin 2.0.0 (Android native)
- Platform Support: iOS, Android
- Backend: Firebase (dual-project architecture)
- Testing: Unit tests, BDD/Gherkin integration tests
- CI/CD: GitHub Actions
Features
- Patient oncology data management
- Genogram generation and visualization (see
DOKUMENTACJA_GENEROWANIE_GENOGRAMU.md,DOKUMENTACJA_NOWY_FLOW_GENOGRAM.md) - Multi-environment deployment (dev/stage/prod)
- Firebase dual-project integration (ORAP for core app, ORAM for lab diagnostics)
- Medical statistics and FAQ modules
Quick Info
Bundle IDs (unverified — confirm with team):
- iOS Dev:
com.wellysa.onkoradar.nzoz.dev(Wellysa DEV) - iOS Stage:
com.wellysa.onkoradar.nzoz.stage(Wellysa STAGE) - iOS Prod:
com.wellysa.onkoradar.nzoz(Wellysa) - Android Dev:
com.wellysa.onkoradar_dev_dev(Wellysa DEV) - Android Stage:
com.wellysa.onkoradar_stage(Wellysa STAGE) - Android Prod:
com.wellysa.onkoradar_dev(Wellysa)
Flutter Version: Managed via FVM (check .fvmrc for exact version)
Setup
1. Install FVM
bash
dart pub global activate fvm2. Setup Flutter
bash
fvm useFVM reads version from .fvmrc and installs the configured Flutter version automatically.
3. Install Dependencies
bash
fvm flutter pub get4. Generate Code (freezed, json_serializable, etc.)
bash
fvm flutter pub run build_runner build --delete-conflicting-outputs5. Add Secret Files
Create .secrets/ folder structure:
.secrets/
├── dev/
│ ├── defines.json # environment variables
│ ├── android-key.properties # Android signing config
│ └── android-keystore.jks # Android keystore
├── stage/
│ ├── defines.json
│ ├── android-key.properties
│ └── android-keystore.jks
└── prod/
├── defines.json
├── android-key.properties
└── android-keystore.jksSee "Environment Variables" section below for required variables in defines.json.
6. Firebase Configuration
Ensure Firebase config files are in place:
- iOS:
ios/firebase/{env}/GoogleService-Info.plist - Android:
android/firebase/{env}/google-services.json
Running Locally
VS Code (Recommended)
Press F5 and select from .vscode/launch.json configurations:
- Flutter (dev) debug - Dev with debugging
- Flutter (dev) nodebug - Dev without debugging
- Flutter (prod) debug - Prod with debugging
- Flutter (prod) release - Prod in release mode
Terminal
bash
# Dev
fvm flutter run -d <device-id> --flavor dev --dart-define-from-file=.secrets/dev/defines.json
# Stage (unverified — confirm launch command)
fvm flutter run -d <device-id> --flavor stage --dart-define-from-file=.secrets/stage/defines.json
# Prod release
fvm flutter run -d <device-id> --flavor prod --release --dart-define-from-file=.secrets/prod/defines.json
# List devices
fvm flutter devicesFlavors
The app supports three environments via Flutter flavors:
iOS
Build configurations: Debug-dev, Release-dev, Profile-dev, Debug-stage, Release-stage, Profile-stage, Debug-prod, Release-prod, Profile-prod
Config files:
- Dev →
ios/Flutter/Debug.xcconfig - Prod →
ios/Flutter/Release.xcconfig
Android
Product flavors defined in android/app/build.gradle:
gradle
dev {
applicationId "com.wellysa.onkoradar_dev_dev"
resValue "string", "app_name", "Wellysa DEV"
}
stage {
applicationId "com.wellysa.onkoradar_stage"
resValue "string", "app_name", "Wellysa STAGE"
}
prod {
applicationId "com.wellysa.onkoradar_dev"
resValue "string", "app_name", "Wellysa"
}Architecture
Firebase Dual-Project Setup
The app integrates with two separate Firebase projects:
- ORAP (Main App): Authentication, user management, core content
- Configured via
GoogleService-Info.plist(iOS) andgoogle-services.json(Android)
- Configured via
- ORAM (Lab Diagnostics): Laboratory orders and diagnostic data
- Programmatically initialized as
Firebase.app('devOram')
- Programmatically initialized as
Firebase Config Files
ios/firebase/
├── dev/GoogleService-Info.plist → copied to ios/Runner/
├── stage/GoogleService-Info.plist
└── prod/GoogleService-Info.plist
android/firebase/
├── dev/google-services.json → copied to android/app/src/dev/
├── stage/google-services.json → copied to android/app/src/stage/
└── prod/google-services.json → copied to android/app/src/prod/Data Assets
Static data loaded from assets/data/:
doctors.json- Medical staff directoryfaq.json- Frequently asked questionsstatistics.json- Medical statistics data
Environment Variables
Each environment (dev/stage/prod) requires a defines.json file in .secrets/{env}/ with runtime configuration variables. See .secrets/README.md for the complete list of required variables and their format.
Testing
- Unit tests: Dart-based unit test suite with coverage reporting
- Integration tests: Gherkin/BDD-style automated tests (see
*.featurefiles) - CI automation: All tests run on PR via GitHub Actions
Run tests locally:
bash
# Unit tests
fvm flutter test
# Integration tests (unverified — confirm command)
fvm flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dartKey Files
| File | Purpose |
|---|---|
.fvmrc | Flutter version specification |
.fvm/fvm_config.json | FVM configuration |
.vscode/launch.json | VS Code run configurations |
pubspec.yaml | Flutter dependencies and assets |
android/build.gradle | Android project config (Kotlin 2.0.0) |
android/app/build.gradle | Android flavors and signing |
ios/Flutter/Debug.xcconfig | iOS dev environment config |
ios/Flutter/Release.xcconfig | iOS prod environment config |
.secrets/ | Environment-specific secrets (gitignored) |
.firebaserc | Firebase project aliases |
DOKUMENTACJA_GENEROWANIE_GENOGRAMU.md | Genogram generation docs (PL) |
DOKUMENTACJA_NOWY_FLOW_GENOGRAM.md | New genogram flow docs (PL) |
CHANGELOG.MD | Release history |
Additional Documentation
- Genogram Features: See
DOKUMENTACJA_GENEROWANIE_GENOGRAMU.mdandDOKUMENTACJA_NOWY_FLOW_GENOGRAM.mdfor detailed implementation guides (in Polish) - Secrets Setup: Refer to
.secrets/README.md(if available) for environment variable specifications
Default Branch: ci
Last Updated: 2026-05-10