Skip to content

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 ​

DEVSTAGEPROD
DEV DeploySTAGE DeployPROD Deploy

✅ Quality Checks ​

CheckStatusCoverage
PR ChecksPR Check-
Unit TestsUnit TestsCoverage
E2E TestsE2E TestsCoverage

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 fvm

2. Setup Flutter ​

bash
fvm use

FVM reads version from .fvmrc and installs the configured Flutter version automatically.

3. Install Dependencies ​

bash
fvm flutter pub get

4. Generate Code (freezed, json_serializable, etc.) ​

bash
fvm flutter pub run build_runner build --delete-conflicting-outputs

5. 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.jks

See "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 ​

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 devices

Flavors ​

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:

  1. ORAP (Main App): Authentication, user management, core content
    • Configured via GoogleService-Info.plist (iOS) and google-services.json (Android)
  2. ORAM (Lab Diagnostics): Laboratory orders and diagnostic data
    • Programmatically initialized as Firebase.app('devOram')

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 directory
  • faq.json - Frequently asked questions
  • statistics.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 *.feature files)
  • 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.dart

Key Files ​

FilePurpose
.fvmrcFlutter version specification
.fvm/fvm_config.jsonFVM configuration
.vscode/launch.jsonVS Code run configurations
pubspec.yamlFlutter dependencies and assets
android/build.gradleAndroid project config (Kotlin 2.0.0)
android/app/build.gradleAndroid flavors and signing
ios/Flutter/Debug.xcconfigiOS dev environment config
ios/Flutter/Release.xcconfigiOS prod environment config
.secrets/Environment-specific secrets (gitignored)
.firebasercFirebase project aliases
DOKUMENTACJA_GENEROWANIE_GENOGRAMU.mdGenogram generation docs (PL)
DOKUMENTACJA_NOWY_FLOW_GENOGRAM.mdNew genogram flow docs (PL)
CHANGELOG.MDRelease history

Additional Documentation ​

  • Genogram Features: See DOKUMENTACJA_GENEROWANIE_GENOGRAMU.md and DOKUMENTACJA_NOWY_FLOW_GENOGRAM.md for 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

Wellysa Consigliere — internal use only.