Skip to content

Project architecture

LeNDuyA edited this page Oct 23, 2025 · 1 revision
---
title: Project architecture
---
graph LR
    subgraph Bots
        discordBot[Discord Bot]
        yourBot[Your Bot]
    end
    
    subgraph "Mobile Clients"
        android[Android]
        iOS[iOS]
    end
    
    subgraph Features
        glossaryInfil[Glossary Infil]
        wikiWavu[Wiki Wavu]
        yourWiki[Your Wiki]
    end
    
    discordBot -->|uses| glossaryInfil
    discordBot -->|uses| wikiWavu
    discordBot -.->|uses| yourWiki
    
    yourBot -.->|uses| yourWiki
    
    android -->|uses| wikiWavu
    
    iOS -->|uses| wikiWavu
    
    style discordBot fill:#3B82F6,stroke:#2563EB,color:#fff
    style yourBot fill:#6B7280,stroke:#4B5563,color:#fff,stroke-dasharray: 5 5
    style android fill:#10B981,stroke:#059669,color:#fff
    style iOS fill:#A78BFA,stroke:#7C3AED,color:#fff,stroke-dasharray: 5 5
    style glossaryInfil fill:#10B981,stroke:#059669,color:#fff
    style wikiWavu fill:#10B981,stroke:#059669,color:#fff
    style yourWiki fill:#6B7280,stroke:#4B5563,color:#fff,stroke-dasharray: 5 5
Loading
---
title: Client-feature architecture
---
graph TB
    discordBot[Discord Bot]
    
    subgraph "Wrapper interface"
        registeredFeature[RegisteredFeature<br/>+ commands<br/>+ serviceInfo]
    end
    
    subgraph "Features"
        glossaryInfil[feat/GlossaryInfil]
        wikiWavu[feat/WikiWavu]
        yourService[feat/YourService]
    end
    
    subgraph "Features"
        apiGlossary[Glossary API]
        apiWavu[Wavu API]
        apiYour[Your API]
    end
    
    discordBot <-->|n:n| registeredFeature
    
    glossaryInfil -.->|implements| registeredFeature
    wikiWavu -.->|implements| registeredFeature
    yourService -.->|implements| registeredFeature
    
    glossaryInfil -->|pulls data| apiGlossary
    wikiWavu -->|pulls data| apiWavu
    yourService -->|pulls data| apiYour
    
    style discordBot fill:#3B82F6,stroke:#2563EB,color:#fff
    style registeredFeature fill:#F59E0B,stroke:#D97706,color:#fff
    style glossaryInfil fill:#10B981,stroke:#059669,color:#fff
    style wikiWavu fill:#10B981,stroke:#059669,color:#fff
    style yourService fill:#6B7280,stroke:#4B5563,color:#fff,stroke-dasharray: 5 5
    style apiGlossary fill:#8B5CF6,stroke:#7C3AED,color:#fff
    style apiWavu fill:#8B5CF6,stroke:#7C3AED,color:#fff
    style apiYour fill:#6B7280,stroke:#4B5563,color:#fff,stroke-dasharray: 5 5
Loading

Clone this wiki locally