# zhaofuchen99/eldercare-system architecture

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

- Interactive diagram: https://gitdiagram.com/zhaofuchen99/eldercare-system
- Repository: https://github.com/zhaofuchen99/eldercare-system

## Overview

AI-powered eldercare community platform with separate member and administrator Vue clients backed by a Spring Boot API. Members authenticate, manage health records and assessments, book examinations, join activities, track points and messages, and consult an AI assistant; administrators manage those services, users and RBAC, and review dashboard data. The graph preserves the documented AI, health, activity, points, messaging and dashboard branches, but sampled backend calls mainly establish authentication, role management and appointment orchestration; other links are documented in the README or left unasserted. Database and AI-provider wiring is not fully shown.

Main entry points: [`src/main/java/com/zfc/eldercare/api/controller`](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/api/controller) (Admin API), [`src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java`](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java) (Authentication), [`src/main/java/com/zfc/eldercare/core/service/AppointmentService.java`](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/AppointmentService.java) (Exam booking), [`src/main/java/com/zfc/eldercare/core/service/impl/AiChatServiceImpl.java`](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/AiChatServiceImpl.java) (AI consultation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_member["Member services"]
  node_member_ui["Member app"]
end

subgraph group_admin["Administration"]
  node_admin_ui["Admin app"]
end

subgraph group_backend["Backend domain"]
  node_member_api["Member API"]
  node_admin_api["Admin API"]
  node_authentication["Authentication"]
  node_appointment["Exam booking"]
  node_health_assessment["Health &amp; assessment"]
  node_activities["Community activities"]
  node_points["Points ledger<br/>[PointsService.java]"]
  node_messages["Messages"]
  node_ai_services["AI consultation"]
  node_rbac["RBAC management"]
  node_dashboard["Admin dashboard"]
  node_file_storage["Report files"]
end

subgraph group_platform["Platform internals"]
  node_mysql[("MySQL")]
  node_redis[("Redis")]
end

node_member_actor(("Member"))
node_admin_actor(("Administrator"))
node_deepseek["DeepSeek"]

node_member_actor -->|"uses"| node_member_ui
node_admin_actor -->|"uses"| node_admin_ui
node_member_ui -.->|"requests"| node_member_api
node_admin_ui -.->|"requests"| node_admin_api
node_member_api -.->|"delegates"| node_authentication
node_admin_api -.->|"delegates"| node_authentication
node_authentication -->|"grants bonus"| node_points
node_authentication -->|"stores tokens"| node_mysql
node_authentication -->|"blacklists tokens"| node_redis
node_admin_api -->|"delegates"| node_appointment
node_member_api -->|"delegates"| node_appointment
node_appointment -.->|"stores reports"| node_file_storage
node_appointment -->|"consumes &amp; refunds"| node_points
node_member_api -.->|"delegates"| node_health_assessment
node_admin_api -.->|"manages"| node_health_assessment
node_member_api -.->|"delegates"| node_activities
node_member_api -.->|"delegates"| node_messages
node_member_api -.->|"delegates"| node_ai_services
node_ai_services -.->|"streams responses"| node_deepseek
node_ai_services -.->|"calls booking tools"| node_appointment
node_admin_api -->|"delegates"| node_rbac
node_admin_api -.->|"delegates"| node_dashboard
node_admin_api -.->|"manages"| node_activities
node_admin_api -.->|"manages"| node_messages
node_admin_api -.->|"manages"| node_points
node_health_assessment -.->|"AI scoring"| node_ai_services

click node_member_ui "https://github.com/zhaofuchen99/eldercare-system/tree/main/web-member/src"
click node_admin_ui "https://github.com/zhaofuchen99/eldercare-system/tree/main/web-admin/src"
click node_member_api "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/api/controller"
click node_admin_api "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/api/controller"
click node_authentication "https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java"
click node_appointment "https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/AppointmentService.java"
click node_health_assessment "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service"
click node_activities "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service"
click node_points "https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/PointsService.java"
click node_messages "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service"
click node_ai_services "https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/AiChatServiceImpl.java"
click node_rbac "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service"
click node_dashboard "https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service"
click node_file_storage "https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/LocalFileStorageServiceImpl.java"

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_member_ui toneBlue
class node_admin_ui toneAmber
class node_member_api,node_admin_api,node_authentication,node_appointment,node_health_assessment,node_activities,node_points,node_messages,node_ai_services,node_rbac,node_dashboard,node_file_storage toneMint
class node_mysql,node_redis toneRose
class node_member_actor,node_admin_actor,node_deepseek toneIndigo
```

## Components

### Member services

- [Member app](https://github.com/zhaofuchen99/eldercare-system/tree/main/web-member/src): `web-member/src`

### Administration

- [Admin app](https://github.com/zhaofuchen99/eldercare-system/tree/main/web-admin/src): `web-admin/src`

### Backend domain

- [Member API](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/api/controller): `src/main/java/com/zfc/eldercare/api/controller`
- [Admin API](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/api/controller): `src/main/java/com/zfc/eldercare/api/controller`
- [Authentication](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java): `src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java`
- [Exam booking](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/AppointmentService.java): `src/main/java/com/zfc/eldercare/core/service/AppointmentService.java`
- [Health & assessment](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service): `src/main/java/com/zfc/eldercare/core/service`
- [Community activities](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service): `src/main/java/com/zfc/eldercare/core/service`
- [Points ledger](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/PointsService.java): `src/main/java/com/zfc/eldercare/core/service/PointsService.java`
- [Messages](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service): `src/main/java/com/zfc/eldercare/core/service`
- [AI consultation](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/AiChatServiceImpl.java): `src/main/java/com/zfc/eldercare/core/service/impl/AiChatServiceImpl.java`
- [RBAC management](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service): `src/main/java/com/zfc/eldercare/core/service`
- [Admin dashboard](https://github.com/zhaofuchen99/eldercare-system/tree/main/src/main/java/com/zfc/eldercare/core/service): `src/main/java/com/zfc/eldercare/core/service`
- [Report files](https://github.com/zhaofuchen99/eldercare-system/blob/main/src/main/java/com/zfc/eldercare/core/service/impl/LocalFileStorageServiceImpl.java): `src/main/java/com/zfc/eldercare/core/service/impl/LocalFileStorageServiceImpl.java`

### Platform internals

- **MySQL**
- **Redis**

### Other components

- **Member**
- **Administrator**
- **DeepSeek**

## Connections

- Member → Member app: uses (evidence: `README.md`)
- Administrator → Admin app: uses (evidence: `README.md`)
- Member app → Member API: requests
- Admin app → Admin API: requests
- Member API → Authentication: delegates
- Admin API → Authentication: delegates
- Authentication → Points ledger: grants bonus (evidence: `src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java`)
- Authentication → MySQL: stores tokens (evidence: `src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java`)
- Authentication → Redis: blacklists tokens (evidence: `src/main/java/com/zfc/eldercare/core/service/impl/AuthServiceImpl.java`)
- Admin API → Exam booking: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Member API → Exam booking: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AppointmentController.java`)
- Exam booking → Report files: stores reports
- Exam booking → Points ledger: consumes & refunds (evidence: `src/main/java/com/zfc/eldercare/core/service/AppointmentService.java`)
- Member API → Health & assessment: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Admin API → Health & assessment: manages (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Member API → Community activities: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Member API → Messages: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Member API → AI consultation: delegates
- AI consultation → DeepSeek: streams responses (evidence: `README.md`)
- AI consultation → Exam booking: calls booking tools (evidence: `README.md`)
- Admin API → RBAC management: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminRoleController.java`)
- Admin API → Admin dashboard: delegates (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Admin API → Community activities: manages (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Admin API → Messages: manages (evidence: `src/main/java/com/zfc/eldercare/api/controller/AdminAppointmentController.java`)
- Admin API → Points ledger: manages
- Health & assessment → AI consultation: AI scoring (evidence: `README.md`)
