Skip to content

shashank35i/pulsegrid-android

Repository files navigation

PulseGrid

PulseGrid

Multi-role healthcare operations app for patients, doctors, lab techs, and admins with real-time workflows on Firebase RTDB.

Platform Backend Database AI Payments Status License

Built by Shashank Preetham Pendyala


Overview

PulseGrid is a production-ready healthcare operations app with role-specific workflows for Admins, Doctors, Lab Technicians, and Patients. It streamlines intake, lab testing, prescriptions, risk monitoring, and payment flows while keeping every role synced in real time using Firebase RTDB, Functions, and FCM. AI modules (TFLite + ML Kit) support on-device intelligence and assisted workflows.


Table of Contents


Why It Matters

  • Multi-role clinical workflows are fragmented across tools and teams.
  • Labs and clinicians need fast, reliable coordination for critical results.
  • Patients need a clear, trusted path for reports, prescriptions, and payments.

Key Features

Capability Description
Role-based UX Distinct flows for Admin, Doctor, Lab Tech, Patient.
Real-time sync Firebase RTDB keeps assignments, alerts, and statuses live.
Lab lifecycle Test ordering, entry, validation, and report delivery.
Critical alerts Alerts and notifications via FCM.
Prescriptions Structured entry, history, and sharing.
Payments Razorpay checkout and invoice workflows.
AI utilities On-device models + assisted decision support UI.
Audit trail Operational logging for clinical actions.

Roles and Permissions

  • Admin: onboarding, assignments, invoice oversight, operational stats.
  • Doctor: patient lists, risk panels, alerts, prescriptions, follow-ups.
  • Lab Tech: test intake, parameters, validation, report delivery.
  • Patient: onboarding, history, prescriptions, payments, risk insights.

Architecture

flowchart LR
  U[Users\nAdmin / Doctor / Lab / Patient] --> AND[Android App\nPulseGrid]
  AND -->|HTTPS + SDK| RTDB[(Firebase RTDB)]
  AND --> FCM[Firebase Cloud Messaging]
  AND --> FUNC[Firebase Functions]
  AND --> PAY[Razorpay Checkout]
  AND --> ML[TFLite + ML Kit]

  subgraph Firebase
    RTDB
    FCM
    FUNC
  end
Loading

Tech Stack

  • Mobile: Android (Java/Kotlin), Material 3, Gradle
  • Backend: Firebase (RTDB, Functions, FCM)
  • AI/ML: TFLite, ML Kit (Translate)
  • Networking: OkHttp
  • Security: AndroidX Security Crypto
  • Payments: Razorpay

Project Structure

.
|-- app/                         # Android client
|   |-- src/main/
|   |   |-- AndroidManifest.xml
|   |   |-- java/com/pulsegrid/app/
|   |   |-- res/
|   |-- build.gradle.kts
|-- functions/                   # Firebase Cloud Functions
|-- assets/                       # Repo assets (logo, docs)
|-- gradle/                       # Gradle wrapper
|-- settings.gradle.kts
|-- README.md

Firebase Data Model

criticalNotifications/{doctorId}/{alertId}
patients/{patientId}
patientHistory/{patientId}/{entryId}
labTests/{labId}/{testId}
labReports/{patientId}/{reportId}
prescriptions/{patientId}/{rxId}
assignments/{doctorId}/{patientId}

Getting Started

Prerequisites

  • Android Studio (recent stable)
  • JDK 17
  • Firebase project (RTDB, FCM, Functions enabled)

Android Setup

git clone <REPO_URL>
cd pulsegrid-android

Open in Android Studio and let Gradle sync.


Environment Variables

Add these to gradle.properties (or local CI secrets):

Key Purpose Example
GEMINI_API_KEY Optional AI calls AI...
OPENAI_API_KEY Optional AI calls sk-...
OPENAI_API_KEY_1..5 Optional key rotation sk-...

Run, Build, Test

./gradlew :app:assembleDebug
./gradlew :app:installDebug
./gradlew test

Configuration

  • app/google-services.json: Firebase config (replace with your project keys)
  • app/src/main/res/values/strings.xml: branding + UI copy
  • functions/: Firebase Functions deployment

Deployment

Android

./gradlew :app:bundleRelease

Firebase Functions

cd functions
npm install
firebase deploy --only functions

Monitoring and Logging

  • Android: Logcat
  • Firebase: Functions logs, RTDB usage, Crashlytics (if enabled)

Security Notes

  • Never commit real API keys or service credentials.
  • Use Firebase Security Rules to scope patient/role access.
  • Validate inputs for all write paths and protect critical alert flows.

Troubleshooting

  • Build errors: ensure JDK 17 and Gradle sync.
  • Firebase issues: replace app/google-services.json with your own.
  • Payments: verify Razorpay keys and configuration.

License

MIT License. See LICENSE.

About

PulseGrid – A multi‑role healthcare Android app using Firebase RTDB for real‑time workflows across patients, doctors, labs, and admins.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages