-
Notifications
You must be signed in to change notification settings - Fork 1
Architecture Diagrams
Garot Conklin edited this page Dec 17, 2024
·
3 revisions
graph TB
subgraph "Mobile App"
UI[UI Layer]
API_CLIENT[API Client]
end
subgraph "Cloud Services"
API_GATEWAY[AWS API Gateway]
LAMBDA[AWS Lambda]
AUTH[Auth0]
end
subgraph "External Services"
GOOGLE_SEARCH[Google Search API]
GOOGLE_PLACES[Google Places API]
GOOGLE_CALENDAR[Google Calendar API]
end
subgraph "Data Storage"
MONGODB[MongoDB Atlas]
REDIS[Redis Cache]
end
UI --> API_CLIENT
API_CLIENT --> API_GATEWAY
API_GATEWAY --> LAMBDA
LAMBDA --> AUTH
LAMBDA --> GOOGLE_SEARCH
LAMBDA --> GOOGLE_PLACES
LAMBDA --> GOOGLE_CALENDAR
LAMBDA --> MONGODB
LAMBDA --> REDIS
classDef external fill:#99ff99,stroke:#333,stroke-width:2px,color:#000
classDef internal fill:#9999ff,stroke:#333,stroke-width:2px,color:#000
class GOOGLE_SEARCH,GOOGLE_PLACES,GOOGLE_CALENDAR external
class UI,API_CLIENT,API_GATEWAY,LAMBDA,AUTH,MONGODB,REDIS internal
graph TB
subgraph "Presentation Layer"
UI[UI Components]
VM[ViewModels]
STATE[UI State]
end
subgraph "Domain Layer"
UC[Use Cases]
ENT[Entities]
REPO_I[Repository Interfaces]
end
subgraph "Data Layer"
REPO_IMPL[Repository Implementations]
DS[Data Sources]
DTO[Data Transfer Objects]
end
UI --> STATE
STATE --> VM
VM --> UC
UC --> ENT
UC --> REPO_I
REPO_I --> REPO_IMPL
REPO_IMPL --> DS
DS --> DTO
sequenceDiagram
participant U as User
participant UI as UI Layer
participant VM as ViewModel
participant UC as Use Case
participant R as Repository
participant API as Backend API
U->>UI: User Action
UI->>VM: Event
VM->>UC: Execute
UC->>R: Request Data
R->>API: API Call
API-->>R: Response
R-->>UC: Domain Model
UC-->>VM: Result
VM-->>UI: Update State
UI-->>U: Display Update
graph LR
subgraph "Mobile App"
UI[UI Layer]
VM[EventViewModel]
UC[GetEventsUseCase]
REPO[EventRepository]
CACHE[(Local Cache)]
end
subgraph "Backend Services"
API[API Gateway]
LAMBDA[Event Service]
DDB[(Events Database)]
SCRAPER[Event Scraper]
end
UI --> VM
VM --> UC
UC --> REPO
REPO --> CACHE
REPO --> API
API --> LAMBDA
LAMBDA --> DDB
SCRAPER --> DDB
sequenceDiagram
participant U as User
participant App as Mobile App
participant Cognito as AWS Cognito
participant API as API Gateway
participant Lambda as Lambda
U->>App: Login Request
App->>Cognito: Authenticate
Cognito-->>App: JWT Token
App->>API: API Request + Token
API->>Lambda: Validate Token
Lambda-->>API: Validated
API-->>App: Response
App-->>U: Update UI
graph TB
subgraph "Mobile App"
UI[UI Layer]
SYNC[Sync Manager]
DB[(Local DB)]
end
subgraph "Backend"
API[API Gateway]
LAMBDA[Sync Service]
DDB[(DynamoDB)]
end
UI --> SYNC
SYNC --> DB
SYNC --> API
API --> LAMBDA
LAMBDA --> DDB
classDef backend fill:#99ff99,stroke:#333,stroke-width:2px,color:#000
classDef mobile fill:#9999ff,stroke:#333,stroke-width:2px,color:#000
class UI,SYNC,DB mobile
class API,LAMBDA,DDB backend
graph TB
subgraph "App Module"
APP[Application]
NAV[Navigation]
end
subgraph "Feature Modules"
EVENTS[Events Feature]
CALENDAR[Calendar Feature]
SOCIAL[Social Feature]
PROFILE[Profile Feature]
end
subgraph "Core Modules"
COMMON[Common]
NET[Network]
DB[Database]
UI_CORE[UI Components]
end
APP --> NAV
NAV --> EVENTS
NAV --> CALENDAR
NAV --> SOCIAL
NAV --> PROFILE
EVENTS --> COMMON
CALENDAR --> COMMON
SOCIAL --> COMMON
PROFILE --> COMMON
COMMON --> NET
COMMON --> DB
COMMON --> UI_CORE
graph LR
subgraph "Data Collection"
SCRAPER[Web Scraper]
API_IN[External APIs]
end
subgraph "Processing"
NORM[Data Normalizer]
VALID[Validator]
ENRICH[Enrichment Service]
end
subgraph "Storage"
DDB[(DynamoDB)]
S3[(S3 Images)]
end
SCRAPER --> NORM
API_IN --> NORM
NORM --> VALID
VALID --> ENRICH
ENRICH --> DDB
ENRICH --> S3
graph TB
subgraph "Triggers"
EVENT[Event Updates]
TIME[Time-based]
USER[User Actions]
end
subgraph "Processing"
LAMBDA[Notification Service]
FILTER[Filter Rules]
TEMPLATE[Templates]
end
subgraph "Delivery"
FCM[Firebase Cloud Messaging]
EMAIL[Email Service]
SMS[SMS Service]
end
EVENT --> LAMBDA
TIME --> LAMBDA
USER --> LAMBDA
LAMBDA --> FILTER
FILTER --> TEMPLATE
TEMPLATE --> FCM
TEMPLATE --> EMAIL
TEMPLATE --> SMS
© RunOn! 2024
Full-Featured Documentation
- Android Technical Stack (Archived)
- Android Architecture (Archived)
- Business Prospectus (Archived)
- Feature Specifications (Archived)
- UI/UX Design (Archived)