Skip to content

Instantly share code, notes, and snippets.

@untainsYD
Last active June 12, 2025 00:54
Show Gist options
  • Save untainsYD/8699eb411b8c5441b358c12c334966d2 to your computer and use it in GitHub Desktop.
Save untainsYD/8699eb411b8c5441b358c12c334966d2 to your computer and use it in GitHub Desktop.
Application system design
graph TB
    subgraph "Client Layer"
        Client[heyhomie-client<br/>React.js Frontend]
        AdminPanel[heyhomie-admin<br/>Rails Admin Panel]
    end
    
    subgraph "API Layer"
        API[heyhomie-api<br/>Rails API Server]
        PaymentRecovery[heyhomie-payment-recovery<br/>Payment Recovery Service]
    end
    
    subgraph "External Services"
        Stripe[Stripe Payment Gateway]
        Email[Email Service]
        SMS[SMS Service]
    end
    
    subgraph "Data Layer"
        PostgreSQL[(PostgreSQL Database<br/>with PostGIS)]
        Redis[(Redis Cache)]
    end
    
    subgraph "Infrastructure"
        Docker[Docker Containers]
        Nginx[Nginx Reverse Proxy]
    end
    
    %% Client connections
    Client -->|HTTP/REST API| API
    AdminPanel -->|HTTP/REST API| API
    
    %% API connections
    API -->|SQL Queries| PostgreSQL
    API -->|Cache| Redis
    API -->|Payment Processing| Stripe
    API -->|Notifications| Email
    API -->|SMS Notifications| SMS
    
    %% Payment Recovery connections
    PaymentRecovery -->|SQL Queries| PostgreSQL
    PaymentRecovery -->|Payment Processing| Stripe
    PaymentRecovery -->|Email Recovery| Email
    PaymentRecovery <-->|Recovery Triggers| API
    
    %% Infrastructure
    Docker -.->|Contains| API
    Docker -.->|Contains| AdminPanel
    Docker -.->|Contains| PaymentRecovery
    Docker -.->|Contains| PostgreSQL
    Docker -.->|Contains| Redis
    
    Nginx -->|Proxy| API
    Nginx -->|Proxy| AdminPanel
    
    classDef frontend fill:#e1f5fe
    classDef backend fill:#f3e5f5
    classDef database fill:#e8f5e8
    classDef external fill:#fff3e0
    classDef infrastructure fill:#f5f5f5
    
    class Client,AdminPanel frontend
    class API,PaymentRecovery backend
    class PostgreSQL,Redis database
    class Stripe,Email,SMS external
    class Docker,Kubernetes,Nginx infrastructure
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment