# gyeongrimnam/dr.sanjini architecture

> Architecture diagram of the GitHub repository gyeongrimnam/dr.sanjini, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gyeongrimnam/dr.sanjini
- Repository: https://github.com/gyeongrimnam/dr.sanjini

## Overview

Dr. Sanjini is an Android healthcare app for managing personal health information and finding nearby care. Its documented workflow spans onboarding and health records, symptom analysis, local care discovery, and ongoing medication and appointment management. The tree identifies corresponding screens, ViewModels, repositories, API services, and Room database code, but the sampled source contains no runtime implementation; edges therefore reflect only README-documented behavior and omit uncertain internal wiring.

Main entry points: [`app/src/main/java/com/example/myapplication/map/MapFragment.kt`](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/map/MapFragment.kt) (Nearby care map), [`app/src/main/java/com/example/myapplication/home/HomeActivity.kt`](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/home/HomeActivity.kt) (Home navigation), [`app/src/main/java/com/example/myapplication/data/AppDatabase.kt`](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/data/AppDatabase.kt) (Local health database), [`app/src/main/java/com/example/myapplication/api/service/HospitalService.kt`](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/HospitalService.kt) (Hospital services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_screens["App screens"]
  node_homeactivity["Home navigation<br/>[HomeActivity.kt]"]
  node_homefragment["Health overview<br/>[HomeFragment.kt]"]
  node_onboarding["Health onboarding"]
  node_mypage["Profile screen<br/>[MyPageFragment.kt]"]
  node_calendar["Health calendar"]
  node_chatbot["Symptom chatbot<br/>[ChatBotFragment.kt]"]
  node_map["Nearby care map<br/>[MapFragment.kt]"]
  node_emergency["Emergency screen"]
end

subgraph group_records["Health records"]
  node_pillvm["Medication state<br/>[PillViewModel.kt]"]
  node_room[("Local health database<br/>[AppDatabase.kt]")]
  node_repositories["Data repositories"]
end

subgraph group_care["Care discovery"]
  node_mapvm["Map state<br/>[MapViewModel.kt]"]
end

subgraph group_integrations["External services"]
  node_api["API client<br/>[RetrofitClient.kt]"]
  node_hospitalapi["Hospital services<br/>[HospitalService.kt]"]
  node_emergencyapi["Emergency services"]
  node_pharmacyapi["Pharmacy services<br/>[PharmacyService.kt]"]
  node_gemini["AI service<br/>[GeminiService.kt]"]
  node_healthapis["Care information APIs"]
  node_aiassistant["AI symptom analysis"]
  node_maps["Map and location"]
end

node_user(("App user"))

node_user -->|"opens app"| node_homeactivity
node_homeactivity -->|"shows default"| node_homefragment
node_homeactivity -->|"navigates"| node_calendar
node_homeactivity -->|"navigates"| node_map
node_user -->|"registers health"| node_onboarding
node_user -->|"manages profile"| node_mypage
node_user -->|"enters symptoms"| node_chatbot
node_chatbot -->|"requests analysis"| node_aiassistant
node_gemini -.->|"provides AI"| node_aiassistant
node_user -->|"searches nearby"| node_map
node_map -->|"uses location"| node_maps
node_map -->|"searches hospitals"| node_hospitalapi
node_map -->|"searches emergency care"| node_emergencyapi
node_map -->|"searches pharmacies"| node_pharmacyapi
node_hospitalapi -->|"uses client"| node_api
node_emergencyapi -->|"uses client"| node_api
node_pharmacyapi -->|"uses client"| node_api
node_hospitalapi -->|"queries"| node_healthapis
node_emergencyapi -->|"queries"| node_healthapis
node_pharmacyapi -->|"queries"| node_healthapis
node_user -->|"manages appointments"| node_calendar
node_user -->|"manages medication"| node_pillvm
node_calendar -->|"tracks schedules"| node_pillvm
node_pillvm -->|"stores records"| node_room
node_onboarding -->|"stores health data"| node_room
node_mypage -->|"manages profile data"| node_room
node_room -->|"persists records"| node_repositories
node_map -->|"manages map state"| node_mapvm

click node_homeactivity "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/home/HomeActivity.kt"
click node_homefragment "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/home/HomeFragment.kt"
click node_onboarding "https://github.com/gyeongrimnam/dr.sanjini/tree/main/app/src/main/java/com/example/myapplication/onboarding"
click node_mypage "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/mypage/MyPageFragment.kt"
click node_calendar "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/calendar/CalendarFragment.kt"
click node_chatbot "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/chatbot/ChatBotFragment.kt"
click node_map "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/map/MapFragment.kt"
click node_emergency "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/emergency/EmergencyFragment.kt"
click node_pillvm "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/ViewModel/PillViewModel.kt"
click node_mapvm "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/ViewModel/MapViewModel.kt"
click node_room "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/data/AppDatabase.kt"
click node_repositories "https://github.com/gyeongrimnam/dr.sanjini/tree/main/app/src/main/java/com/example/myapplication/data/repository"
click node_api "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/retrofit/RetrofitClient.kt"
click node_hospitalapi "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/HospitalService.kt"
click node_emergencyapi "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/EmergencyService.kt"
click node_pharmacyapi "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/PharmacyService.kt"
click node_gemini "https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/GeminiService.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_homeactivity,node_homefragment,node_onboarding,node_mypage,node_calendar,node_chatbot,node_map,node_emergency,node_user toneBlue
class node_pillvm,node_room,node_repositories toneAmber
class node_mapvm toneMint
class node_api,node_hospitalapi,node_emergencyapi,node_pharmacyapi,node_gemini,node_healthapis,node_aiassistant,node_maps toneRose
```

## Components

### App screens

- [Home navigation](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/home/HomeActivity.kt): `app/src/main/java/com/example/myapplication/home/HomeActivity.kt`
- [Health overview](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/home/HomeFragment.kt): `app/src/main/java/com/example/myapplication/home/HomeFragment.kt`
- [Health onboarding](https://github.com/gyeongrimnam/dr.sanjini/tree/main/app/src/main/java/com/example/myapplication/onboarding): `app/src/main/java/com/example/myapplication/onboarding`
- [Profile screen](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/mypage/MyPageFragment.kt): `app/src/main/java/com/example/myapplication/mypage/MyPageFragment.kt`
- [Health calendar](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/calendar/CalendarFragment.kt): `app/src/main/java/com/example/myapplication/calendar/CalendarFragment.kt`
- [Symptom chatbot](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/chatbot/ChatBotFragment.kt): `app/src/main/java/com/example/myapplication/chatbot/ChatBotFragment.kt`
- [Nearby care map](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/map/MapFragment.kt): `app/src/main/java/com/example/myapplication/map/MapFragment.kt`
- [Emergency screen](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/emergency/EmergencyFragment.kt): `app/src/main/java/com/example/myapplication/emergency/EmergencyFragment.kt`

### Health records

- [Medication state](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/ViewModel/PillViewModel.kt): `app/src/main/java/com/example/myapplication/ViewModel/PillViewModel.kt`
- [Local health database](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/data/AppDatabase.kt): `app/src/main/java/com/example/myapplication/data/AppDatabase.kt`
- [Data repositories](https://github.com/gyeongrimnam/dr.sanjini/tree/main/app/src/main/java/com/example/myapplication/data/repository): `app/src/main/java/com/example/myapplication/data/repository`

### Care discovery

- [Map state](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/ViewModel/MapViewModel.kt): `app/src/main/java/com/example/myapplication/ViewModel/MapViewModel.kt`

### External services

- [API client](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/retrofit/RetrofitClient.kt): `app/src/main/java/com/example/myapplication/api/retrofit/RetrofitClient.kt`
- [Hospital services](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/HospitalService.kt): `app/src/main/java/com/example/myapplication/api/service/HospitalService.kt`
- [Emergency services](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/EmergencyService.kt): `app/src/main/java/com/example/myapplication/api/service/EmergencyService.kt`
- [Pharmacy services](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/PharmacyService.kt): `app/src/main/java/com/example/myapplication/api/service/PharmacyService.kt`
- [AI service](https://github.com/gyeongrimnam/dr.sanjini/blob/main/app/src/main/java/com/example/myapplication/api/service/GeminiService.kt): `app/src/main/java/com/example/myapplication/api/service/GeminiService.kt`
- **Care information APIs**
- **AI symptom analysis**
- **Map and location**

### Other components

- **App user**

## Connections

- App user → Home navigation: opens app
- Home navigation → Health overview: shows default
- Home navigation → Health calendar: navigates
- Home navigation → Nearby care map: navigates
- App user → Health onboarding: registers health
- App user → Profile screen: manages profile
- App user → Symptom chatbot: enters symptoms
- Symptom chatbot → AI symptom analysis: requests analysis
- AI service → AI symptom analysis: provides AI
- App user → Nearby care map: searches nearby
- Nearby care map → Map and location: uses location
- Nearby care map → Hospital services: searches hospitals
- Nearby care map → Emergency services: searches emergency care
- Nearby care map → Pharmacy services: searches pharmacies
- Hospital services → API client: uses client
- Emergency services → API client: uses client
- Pharmacy services → API client: uses client
- Hospital services → Care information APIs: queries
- Emergency services → Care information APIs: queries
- Pharmacy services → Care information APIs: queries
- App user → Health calendar: manages appointments
- App user → Medication state: manages medication
- Health calendar → Medication state: tracks schedules
- Medication state → Local health database: stores records
- Health onboarding → Local health database: stores health data
- Profile screen → Local health database: manages profile data
- Local health database → Data repositories: persists records
- Nearby care map → Map state: manages map state
