A full-stack concept application reimagining the health plan management and telemedicine experience, inspired by Vitable Health. The platform centralizes identity, scheduling, and health plan queries entirely through an interactive Gemini AI conversational interface.
- Conversational UI/UX: The primary mobile entry point is a Chat interface. Identity validation, plan management, and scheduling happen naturally via chat.
- Session-based AI Context: Preservation of chat history and model reasoning (thought signatures) via Firestore centralization, ensuring context awareness across requests.
- Dynamic Appointment Scheduling: Real-time availability checks for multiple healthcare providers with natural language coordination.
- Premium Fluidity: Implements a strict Light/Dark responsive design system honoring Vitable aesthetics with deep teals, clean surfaces, and dynamic typography.
- Robust Security: Pre-configured with RSA Handshake capabilities for payload encryption and asynchronous JWT generation on the backend.
- Clean Architecture: End-to-end decoupling of frameworks from business rules across both Python and Dart environments.
- Feature-Based Clean Architecture: Allows engineers to scale individual features (Chatbot, Identity, Profile) without coupling global logic.
- Riverpod (v3.0+) Notifiers: We utilize modern
NotifierProviderlogic avoiding legacyStateProviderstructures. It ensures predictable UI rebuilds mapped to deterministic state transitions. - GoRouter: Guarantees deep-linking readiness and maintains strict URL-driven navigation trees natively connected to context.
- Google Generative AI (Gemini): Integrated centrally at the
ChatServicelayer. The AI acts as a smart controller—parsing the user intent to manipulate their context behind the scenes without heavy form-filling interfaces.
- Domain-Based Clean Architecture: Broken down into
domain,application,infrastructure, andpresentationlayers. This means our business models and validations live independent of Django's heavy ORM. - Firestore Centralization & Flattening: Instead of deep nested sub-collections which severely impact query performance, we enforce a strict
UID > CIDhierarchy. All Read/Write actions happen exclusively through the staticFirestoreHelperto prevent lazy data duplication. - Security Protocols: A custom
SecurityHelperhandles RSA public/private key generation + PKCS1-OAEP decryption. This assures that the mobile client can send sensitive health data encrypted before it travels through the network, adding a layer of integrity beyond standard HTTPS.
- Flutter SDK (3.x.x)
- Python (3.9+)
- GCP Service Account Key (for Firestore admin actions)
- Navigate to the backend directory:
cd backend - Activate a virtual environment:
python3 -m venv venv source venv/bin/activate - Install dependencies:
pip install django djangorestframework firebase-admin pycryptodome PyJWT google-genai
- Set your GCP Credentials globally in your terminal:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/firebase-adminsdk.json"
- Populate the mock database with available Plans, Meds, and Slots:
python scripts/mock_db.py
- Navigate to the mobile directory:
cd mobile - Fetch Flutter packages:
flutter pub get
- Set your Gemini API Key: Open
lib/features/chatbot/application/chat_service.dartand replaceYOUR_API_KEY_HEREwith your valid Gemini key. - Run the application:
flutter run
All project work adheres to strict Behavior-Driven Development (BDD) acceptance criteria. When expanding upon this framework, log your conversation prompts inside the root /prompts directory and match feature executions against the BDD_TEMPLATE.md to ensure zero lazy technical debt.