# tarigopullasathwik/hack_with architecture

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

- Interactive diagram: https://gitdiagram.com/tarigopullasathwik/hack_with
- Repository: https://github.com/tarigopullasathwik/hack_with

## Overview

RecallDesk is an AI customer-support application with a React interface and FastAPI backend. The principal workflow is a customer-support chat: the frontend submits a customer message, the backend agent can consult customer history and support tools, and the response can include a resolution, ticket, or escalation handoff. The product also exposes customer, ticket, knowledge, memory, and demo views. Route implementations and several agent details were not sampled, so links between those subsystems are shown only where supported by the supplied entry point, client, or tool excerpts.

Main entry points: [`recalldesk/backend/app/main.py`](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/main.py) (FastAPI application), [`recalldesk/frontend/src/services/api.ts`](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/services/api.ts) (API client), [`recalldesk/backend/app/hindsight/manager.py`](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/hindsight/manager.py) (Memory manager), [`recalldesk/backend/app/agents/support_agent.py`](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/agents/support_agent.py) (Support agent)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Support workspace"]
  node_app["Web application<br/>[App.tsx]"]
  node_chat_ui["Chat interface<br/>[ChatWindow.tsx]"]
  node_api_client["API client<br/>[api.ts]"]
  node_dashboard["Dashboard view<br/>[DashboardPage.tsx]"]
  node_demo["Demo scenarios<br/>[DemoPage.tsx]"]
  node_memory_view["Memory view<br/>[MemoryPage.tsx]"]
  node_tickets_view["Ticket view<br/>[TicketsPage.tsx]"]
  node_knowledge_view["Knowledge view<br/>[KnowledgePage.tsx]"]
end

subgraph group_api["Backend API"]
  node_backend["FastAPI application<br/>[main.py]"]
  node_chat_route["Chat endpoint<br/>[chat.py]"]
  node_customer_routes["Customer endpoints<br/>[customers.py]"]
  node_ticket_routes["Ticket endpoints<br/>[tickets.py]"]
  node_knowledge_routes["Knowledge endpoints<br/>[knowledge.py]"]
  node_memory_routes["Memory endpoints<br/>[memory.py]"]
  node_demo_routes["Demo endpoints<br/>[demo.py]"]
end

subgraph group_agent["Support agent"]
  node_support_agent["Support agent<br/>[support_agent.py]"]
  node_support_tools["Support tools<br/>[support_tools.py]"]
  node_llm["LLM client<br/>[llm_client.py]"]
end

subgraph group_state["Product state"]
  node_database[("Application database<br/>[db.py]")]
  node_models["Domain models"]
  node_memory_manager["Memory manager<br/>[manager.py]"]
end

node_operator(("Support user"))
node_provider(("LLM provider"))
node_hindsight[("Hindsight service")]

node_operator -->|"uses"| node_app
node_app -->|"renders"| node_chat_ui
node_chat_ui -->|"submits message"| node_api_client
node_dashboard -->|"requests data"| node_api_client
node_demo -->|"requests scenarios"| node_api_client
node_memory_view -->|"requests memories"| node_api_client
node_tickets_view -->|"requests tickets"| node_api_client
node_knowledge_view -->|"requests articles"| node_api_client
node_api_client -->|"HTTP requests"| node_backend
node_backend -->|"mounts routes"| node_chat_route
node_backend -->|"mounts routes"| node_customer_routes
node_backend -->|"mounts routes"| node_ticket_routes
node_backend -->|"mounts routes"| node_knowledge_routes
node_backend -->|"mounts routes"| node_memory_routes
node_backend -->|"mounts routes"| node_demo_routes
node_chat_route -->|"handles chat"| node_support_agent
node_support_agent -->|"invokes tools"| node_support_tools
node_support_agent -->|"generates response"| node_llm
node_llm -->|"calls completion API"| node_provider
node_support_tools -->|"reads and writes"| node_database
node_support_tools -->|"recalls history"| node_memory_manager
node_memory_routes -->|"manages memories"| node_memory_manager
node_demo_routes -->|"reads memory history"| node_memory_manager
node_memory_manager -.->|"stores and recalls"| node_hindsight
node_database -->|"persists records"| node_models

click node_app "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/App.tsx"
click node_chat_ui "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/components/chat/ChatWindow.tsx"
click node_api_client "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/services/api.ts"
click node_dashboard "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/DashboardPage.tsx"
click node_demo "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/DemoPage.tsx"
click node_memory_view "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/MemoryPage.tsx"
click node_tickets_view "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/TicketsPage.tsx"
click node_knowledge_view "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/KnowledgePage.tsx"
click node_backend "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/main.py"
click node_chat_route "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/chat.py"
click node_customer_routes "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/customers.py"
click node_ticket_routes "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/tickets.py"
click node_knowledge_routes "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/knowledge.py"
click node_memory_routes "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/memory.py"
click node_demo_routes "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/demo.py"
click node_support_agent "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/agents/support_agent.py"
click node_support_tools "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/tools/support_tools.py"
click node_llm "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/agents/llm_client.py"
click node_database "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/database/db.py"
click node_models "https://github.com/tarigopullasathwik/hack_with/tree/main/recalldesk/backend/app/models"
click node_memory_manager "https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/hindsight/manager.py"

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_app,node_chat_ui,node_api_client,node_dashboard,node_demo,node_memory_view,node_tickets_view,node_knowledge_view,node_operator toneBlue
class node_backend,node_chat_route,node_customer_routes,node_ticket_routes,node_knowledge_routes,node_memory_routes,node_demo_routes,node_hindsight toneAmber
class node_support_agent,node_support_tools,node_llm toneMint
class node_database,node_models,node_memory_manager toneRose
class node_provider toneIndigo
```

## Components

### Support workspace

- [Web application](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/App.tsx): `recalldesk/frontend/src/App.tsx`
- [Chat interface](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/components/chat/ChatWindow.tsx): `recalldesk/frontend/src/components/chat/ChatWindow.tsx`
- [API client](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/services/api.ts): `recalldesk/frontend/src/services/api.ts`
- [Dashboard view](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/DashboardPage.tsx): `recalldesk/frontend/src/pages/DashboardPage.tsx`
- [Demo scenarios](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/DemoPage.tsx): `recalldesk/frontend/src/pages/DemoPage.tsx`
- [Memory view](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/MemoryPage.tsx): `recalldesk/frontend/src/pages/MemoryPage.tsx`
- [Ticket view](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/TicketsPage.tsx): `recalldesk/frontend/src/pages/TicketsPage.tsx`
- [Knowledge view](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/frontend/src/pages/KnowledgePage.tsx): `recalldesk/frontend/src/pages/KnowledgePage.tsx`

### Backend API

- [FastAPI application](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/main.py): `recalldesk/backend/app/main.py`
- [Chat endpoint](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/chat.py): `recalldesk/backend/app/api/routes/chat.py`
- [Customer endpoints](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/customers.py): `recalldesk/backend/app/api/routes/customers.py`
- [Ticket endpoints](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/tickets.py): `recalldesk/backend/app/api/routes/tickets.py`
- [Knowledge endpoints](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/knowledge.py): `recalldesk/backend/app/api/routes/knowledge.py`
- [Memory endpoints](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/memory.py): `recalldesk/backend/app/api/routes/memory.py`
- [Demo endpoints](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/api/routes/demo.py): `recalldesk/backend/app/api/routes/demo.py`

### Support agent

- [Support agent](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/agents/support_agent.py): `recalldesk/backend/app/agents/support_agent.py`
- [Support tools](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/tools/support_tools.py): `recalldesk/backend/app/tools/support_tools.py`
- [LLM client](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/agents/llm_client.py): `recalldesk/backend/app/agents/llm_client.py`

### Product state

- [Application database](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/database/db.py): `recalldesk/backend/app/database/db.py`
- [Domain models](https://github.com/tarigopullasathwik/hack_with/tree/main/recalldesk/backend/app/models): `recalldesk/backend/app/models`
- [Memory manager](https://github.com/tarigopullasathwik/hack_with/blob/main/recalldesk/backend/app/hindsight/manager.py): `recalldesk/backend/app/hindsight/manager.py`

### Other components

- **Support user**
- **LLM provider**
- **Hindsight service**

## Connections

- Support user → Web application: uses
- Web application → Chat interface: renders
- Chat interface → API client: submits message
- Dashboard view → API client: requests data
- Demo scenarios → API client: requests scenarios
- Memory view → API client: requests memories
- Ticket view → API client: requests tickets
- Knowledge view → API client: requests articles
- API client → FastAPI application: HTTP requests
- FastAPI application → Chat endpoint: mounts routes
- FastAPI application → Customer endpoints: mounts routes
- FastAPI application → Ticket endpoints: mounts routes
- FastAPI application → Knowledge endpoints: mounts routes
- FastAPI application → Memory endpoints: mounts routes
- FastAPI application → Demo endpoints: mounts routes
- Chat endpoint → Support agent: handles chat
- Support agent → Support tools: invokes tools
- Support agent → LLM client: generates response
- LLM client → LLM provider: calls completion API
- Support tools → Application database: reads and writes
- Support tools → Memory manager: recalls history
- Memory endpoints → Memory manager: manages memories
- Demo endpoints → Memory manager: reads memory history
- Memory manager → Hindsight service: stores and recalls
- Application database → Domain models: persists records
