Changes: - Add wellnuoSheme/ folder with project documentation - Rename patients -> beneficiaries (proper WellNuo terminology) - Add BeneficiaryContext for state management - Update API service with WellNuo endpoints - Add dashboard screen for beneficiary overview - Update navigation and layout Scheme files include: - API documentation with credentials - Project description - System analysis - UX flow - Legal documents (privacy, terms, support) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
274 lines
6.2 KiB
JSON
274 lines
6.2 KiB
JSON
{
|
||
"_meta": {
|
||
"name": "WellNuo - System Analysis",
|
||
"updatedAt": "2025-12-12T20:50:09.210Z"
|
||
},
|
||
"elements": [
|
||
{
|
||
"id": "header",
|
||
"type": "card",
|
||
"title": "System Analysis",
|
||
"borderColor": "purple",
|
||
"tags": [
|
||
"overview"
|
||
],
|
||
"description": "WellNuo Voice Assistant\n\nТип: Distributed Mobile Application\nПарадигма: Client-Server with AI Integration\n\nКомпоненты:\n- Mobile Client\n- Backend Server\n- AI Processing\n- Data Layer",
|
||
"x": 140,
|
||
"y": 145
|
||
},
|
||
{
|
||
"id": "mobile_client",
|
||
"type": "card",
|
||
"title": "Mobile Client",
|
||
"borderColor": "green",
|
||
"tags": [
|
||
"frontend"
|
||
],
|
||
"description": "Stack: React Native, Expo, TypeScript\n\nModules:\n- Conversation Manager\n- UI Components\n- Storage Manager\n- API Client",
|
||
"x": 520,
|
||
"y": 145
|
||
},
|
||
{
|
||
"id": "backend_server",
|
||
"type": "card",
|
||
"title": "Backend Server",
|
||
"borderColor": "blue",
|
||
"tags": [
|
||
"backend"
|
||
],
|
||
"description": "Stack: Node.js, Express.js\n\nModules:\n- Auth Service\n- User Management\n- Chat API\n- Integration Layer",
|
||
"x": 900,
|
||
"y": 260
|
||
},
|
||
{
|
||
"id": "ai_processing",
|
||
"type": "card",
|
||
"title": "AI Processing Layer",
|
||
"borderColor": "orange",
|
||
"tags": [
|
||
"external"
|
||
],
|
||
"description": "Provider: OpenRouter\n\nCapabilities:\n- Natural Language Processing\n- Intent Recognition\n- Response Generation",
|
||
"x": 1280,
|
||
"y": 77.5
|
||
},
|
||
{
|
||
"id": "data_layer",
|
||
"type": "card",
|
||
"title": "Data Layer",
|
||
"borderColor": "blue",
|
||
"tags": [
|
||
"backend"
|
||
],
|
||
"description": "Primary: PostgreSQL\nCache: Redis\nORM: Prisma\n\nData:\n- Users\n- Conversations\n- Settings",
|
||
"x": 1280,
|
||
"y": 375
|
||
},
|
||
{
|
||
"id": "tech_mobile",
|
||
"type": "card",
|
||
"title": "Mobile Tech Spec",
|
||
"borderColor": "teal",
|
||
"tags": [
|
||
"frontend",
|
||
"tech"
|
||
],
|
||
"description": "Framework: React Native + Expo SDK 54\nLanguage: TypeScript\nNavigation: Expo Router\nStorage: SecureStore + AsyncStorage",
|
||
"x": 1660,
|
||
"y": 145
|
||
},
|
||
{
|
||
"id": "tech_backend",
|
||
"type": "card",
|
||
"title": "Backend Tech Spec",
|
||
"borderColor": "teal",
|
||
"tags": [
|
||
"backend",
|
||
"tech"
|
||
],
|
||
"description": "Runtime: Node.js 18+\nAPI: RESTful\nAuth: JWT + OAuth 2.0\nDocs: Swagger/OpenAPI",
|
||
"x": 1660,
|
||
"y": 260
|
||
},
|
||
{
|
||
"id": "tech_database",
|
||
"type": "card",
|
||
"title": "Database Tech Spec",
|
||
"borderColor": "teal",
|
||
"tags": [
|
||
"backend",
|
||
"tech"
|
||
],
|
||
"description": "Primary: PostgreSQL 14+\nCache: Redis 7+\nORM: Prisma\nBackups: Daily + PITR",
|
||
"x": 1660,
|
||
"y": 375
|
||
},
|
||
{
|
||
"id": "performance",
|
||
"type": "card",
|
||
"title": "Performance Requirements",
|
||
"borderColor": "gray",
|
||
"tags": [
|
||
"requirements"
|
||
],
|
||
"description": "Response Times:\n- UI: < 100ms\n- API: < 500ms\n- AI: < 2000ms\n\nAvailability: 99.9%",
|
||
"x": 2040,
|
||
"y": 260
|
||
},
|
||
{
|
||
"id": "security",
|
||
"type": "card",
|
||
"title": "Security Architecture",
|
||
"borderColor": "red",
|
||
"tags": [
|
||
"security"
|
||
],
|
||
"description": "Encryption: AES-256\nAuth: JWT + refresh\nAPI: Rate limiting\nCompliance: GDPR",
|
||
"x": 2420,
|
||
"y": 260
|
||
},
|
||
{
|
||
"id": "privacy",
|
||
"type": "card",
|
||
"title": "Privacy Requirements",
|
||
"borderColor": "red",
|
||
"tags": [
|
||
"security"
|
||
],
|
||
"description": "- Data minimization\n- Explicit consent\n- Right to deletion\n- Data portability",
|
||
"x": 2800,
|
||
"y": 260
|
||
},
|
||
{
|
||
"id": "monitoring",
|
||
"type": "card",
|
||
"title": "Monitoring",
|
||
"borderColor": "blue",
|
||
"tags": [
|
||
"backend"
|
||
],
|
||
"description": "Metrics: APM, Business, Infra\nLogging: Structured JSON\nAlerting: Email/Slack",
|
||
"x": 3180,
|
||
"y": 260
|
||
},
|
||
{
|
||
"id": "risks",
|
||
"type": "card",
|
||
"title": "Risk Assessment",
|
||
"borderColor": "yellow",
|
||
"tags": [
|
||
"overview"
|
||
],
|
||
"description": "Tech Risks:\n- AI latency → Multiple providers\n- Offline limits → Progressive sync\n\nBusiness:\n- AI costs → Quotas\n- Privacy → By design",
|
||
"x": 3560,
|
||
"y": 260
|
||
}
|
||
],
|
||
"connections": [
|
||
{
|
||
"from": "header",
|
||
"to": "mobile_client",
|
||
"label": "frontend"
|
||
},
|
||
{
|
||
"from": "header",
|
||
"to": "backend_server",
|
||
"label": "backend"
|
||
},
|
||
{
|
||
"from": "header",
|
||
"to": "ai_processing",
|
||
"label": "AI"
|
||
},
|
||
{
|
||
"from": "mobile_client",
|
||
"to": "backend_server",
|
||
"label": "API"
|
||
},
|
||
{
|
||
"from": "backend_server",
|
||
"to": "ai_processing"
|
||
},
|
||
{
|
||
"from": "backend_server",
|
||
"to": "data_layer"
|
||
},
|
||
{
|
||
"from": "mobile_client",
|
||
"to": "tech_mobile"
|
||
},
|
||
{
|
||
"from": "backend_server",
|
||
"to": "tech_backend"
|
||
},
|
||
{
|
||
"from": "data_layer",
|
||
"to": "tech_database"
|
||
},
|
||
{
|
||
"from": "tech_mobile",
|
||
"to": "performance"
|
||
},
|
||
{
|
||
"from": "tech_backend",
|
||
"to": "performance"
|
||
},
|
||
{
|
||
"from": "tech_database",
|
||
"to": "performance"
|
||
},
|
||
{
|
||
"from": "performance",
|
||
"to": "security"
|
||
},
|
||
{
|
||
"from": "security",
|
||
"to": "privacy"
|
||
},
|
||
{
|
||
"from": "privacy",
|
||
"to": "monitoring"
|
||
},
|
||
{
|
||
"from": "monitoring",
|
||
"to": "risks"
|
||
}
|
||
],
|
||
"tagsDictionary": [
|
||
{
|
||
"id": "tag-overview",
|
||
"name": "overview",
|
||
"color": "purple"
|
||
},
|
||
{
|
||
"id": "tag-frontend",
|
||
"name": "frontend",
|
||
"color": "green"
|
||
},
|
||
{
|
||
"id": "tag-backend",
|
||
"name": "backend",
|
||
"color": "blue"
|
||
},
|
||
{
|
||
"id": "tag-external",
|
||
"name": "external",
|
||
"color": "orange"
|
||
},
|
||
{
|
||
"id": "tag-tech",
|
||
"name": "tech",
|
||
"color": "teal"
|
||
},
|
||
{
|
||
"id": "tag-requirements",
|
||
"name": "requirements",
|
||
"color": "gray"
|
||
},
|
||
{
|
||
"id": "tag-security",
|
||
"name": "security",
|
||
"color": "red"
|
||
}
|
||
]
|
||
} |