# rudr-automates/pixel-perfect-pixels architecture

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

- Interactive diagram: https://gitdiagram.com/rudr-automates/pixel-perfect-pixels
- Repository: https://github.com/rudr-automates/pixel-perfect-pixels

## Overview

AgriVoice is a voice-first community agricultural knowledge archive, not an advisory chatbot. Its core loop is capturing a spoken contribution, transcribing and structuring it, saving it, making it searchable, and letting people trace the contributor and report outcomes. The graph also preserves the distinct community and scientific evidence views. Wiring is based on the README’s architecture and sampled source; unsampled subsystems are included where their paths and product capabilities are clear, but uncertain implementation links are omitted.

Main entry points: [`src/lib/repositories/knowledge-repository.ts`](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/knowledge-repository.ts) (Repository interface), [`src/routes/knowledge.$id.tsx`](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/knowledge.%24id.tsx) (Knowledge detail), [`src/features/search/VoiceQueryBar.tsx`](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/features/search/VoiceQueryBar.tsx) (Voice query bar), [`src/hooks/useCreateKnowledge.ts`](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useCreateKnowledge.ts) (Knowledge creation hook)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_home["Home page<br/>[index.tsx]"]
  node_record["Record page<br/>[record.tsx]"]
  node_searchpage["Search page<br/>[search.tsx]"]
  node_explore["Explore page<br/>[explore.tsx]"]
  node_detail["Knowledge detail<br/>[knowledge.$id.tsx]"]
  node_voicebar["Voice query bar<br/>[VoiceQueryBar.tsx]"]
  node_outcomeform["Outcome reporting"]
  node_knowledgeview["Knowledge presentation"]
  node_evidenceview["Evidence panels"]
end

subgraph group_capture["Capture and structure"]
  node_capturehook["Voice capture<br/>[useVoiceCapture.ts]"]
  node_recordhook["Knowledge creation hook"]
  node_speech["Speech service<br/>[speech-service.ts]"]
  node_structureapi["Structure endpoint"]
  node_understanding["Understanding service"]
end

subgraph group_discovery["Search and evidence"]
  node_searchhook["Search hook"]
  node_searchservice["Knowledge search"]
end

subgraph group_data["Services and data"]
  node_knowledge["Knowledge service"]
  node_outcomeservice["Outcome service<br/>[outcome-service.ts]"]
  node_evidenceservice["Evidence service"]
  node_repository["Repository interface"]
  node_demorepo[("Demo repository")]
  node_supabaserepo["Supabase repository"]
end

node_community(("Community member"))
node_sarvam{{"Sarvam speech"}}
node_gemini{{"Gemini model"}}

node_community -->|"asks or browses"| node_home
node_community -->|"records knowledge"| node_record
node_community -->|"reviews record"| node_detail
node_home -->|"offers query"| node_voicebar
node_voicebar -->|"captures audio"| node_capturehook
node_voicebar -->|"transcribes"| node_speech
node_voicebar -->|"submits query"| node_searchpage
node_record -->|"captures recording"| node_capturehook
node_record -->|"creates record"| node_recordhook
node_recordhook -->|"transcribes"| node_speech
node_recordhook -->|"requests structure"| node_structureapi
node_structureapi -->|"structures transcript"| node_understanding
node_recordhook -->|"saves contribution"| node_knowledge
node_searchpage -->|"runs search"| node_searchhook
node_searchhook -->|"requests matches"| node_searchservice
node_searchservice -->|"interprets query"| node_understanding
node_searchservice -->|"searches records"| node_repository
node_explore -->|"lists records"| node_repository
node_detail -->|"loads record"| node_knowledge
node_detail -->|"offers reporting"| node_outcomeform
node_detail -->|"loads evidence"| node_evidenceservice
node_detail -->|"displays record"| node_knowledgeview
node_detail -->|"displays evidence"| node_evidenceview
node_outcomeform -->|"submits outcome"| node_outcomeservice
node_knowledge -->|"reads and writes"| node_repository
node_outcomeservice -->|"adds and lists reports"| node_repository
node_evidenceservice -->|"loads evidence"| node_repository
node_repository -->|"implemented by"| node_demorepo
node_repository -->|"implemented by"| node_supabaserepo
node_speech -.->|"transcribes audio"| node_sarvam
node_understanding -.->|"interprets content"| node_gemini

click node_home "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/index.tsx"
click node_record "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/record.tsx"
click node_searchpage "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/search.tsx"
click node_explore "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/explore.tsx"
click node_detail "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/knowledge.%24id.tsx"
click node_voicebar "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/features/search/VoiceQueryBar.tsx"
click node_outcomeform "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/features/outcomes/OutcomeReporting.tsx"
click node_knowledgeview "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/components/knowledge/StructuredKnowledge.tsx"
click node_evidenceview "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/components/evidence/ScientificEvidencePanel.tsx"
click node_capturehook "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useVoiceCapture.ts"
click node_recordhook "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useCreateKnowledge.ts"
click node_speech "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/speech/speech-service.ts"
click node_structureapi "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/api/structure-knowledge.ts"
click node_understanding "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/knowledge/understanding-service.ts"
click node_searchhook "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useKnowledgeSearch.ts"
click node_searchservice "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/search/knowledge-search-service.ts"
click node_knowledge "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/knowledge/knowledge-service.ts"
click node_outcomeservice "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/outcome/outcome-service.ts"
click node_evidenceservice "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/evidence/evidence-service.ts"
click node_repository "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/knowledge-repository.ts"
click node_demorepo "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/demo-knowledge-repository.ts"
click node_supabaserepo "https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/supabase-knowledge-repository.ts"

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_home,node_record,node_searchpage,node_explore,node_detail,node_voicebar,node_outcomeform,node_knowledgeview,node_evidenceview toneBlue
class node_capturehook,node_recordhook,node_speech,node_structureapi,node_understanding toneAmber
class node_searchhook,node_searchservice toneMint
class node_knowledge,node_outcomeservice,node_evidenceservice,node_repository,node_demorepo,node_supabaserepo toneRose
class node_community,node_sarvam,node_gemini toneIndigo
```

## Components

### User experience

- [Home page](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Record page](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/record.tsx): `src/routes/record.tsx`
- [Search page](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/search.tsx): `src/routes/search.tsx`
- [Explore page](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/explore.tsx): `src/routes/explore.tsx`
- [Knowledge detail](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/knowledge.%24id.tsx): `src/routes/knowledge.$id.tsx`
- [Voice query bar](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/features/search/VoiceQueryBar.tsx): `src/features/search/VoiceQueryBar.tsx`
- [Outcome reporting](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/features/outcomes/OutcomeReporting.tsx): `src/features/outcomes/OutcomeReporting.tsx`
- [Knowledge presentation](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/components/knowledge/StructuredKnowledge.tsx): `src/components/knowledge/StructuredKnowledge.tsx`
- [Evidence panels](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/components/evidence/ScientificEvidencePanel.tsx): `src/components/evidence/ScientificEvidencePanel.tsx`

### Capture and structure

- [Voice capture](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useVoiceCapture.ts): `src/hooks/useVoiceCapture.ts`
- [Knowledge creation hook](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useCreateKnowledge.ts): `src/hooks/useCreateKnowledge.ts`
- [Speech service](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/speech/speech-service.ts): `src/lib/services/speech/speech-service.ts`
- [Structure endpoint](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/routes/api/structure-knowledge.ts): `src/routes/api/structure-knowledge.ts`
- [Understanding service](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/knowledge/understanding-service.ts): `src/lib/services/knowledge/understanding-service.ts`

### Search and evidence

- [Search hook](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/hooks/useKnowledgeSearch.ts): `src/hooks/useKnowledgeSearch.ts`
- [Knowledge search](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/search/knowledge-search-service.ts): `src/lib/services/search/knowledge-search-service.ts`

### Services and data

- [Knowledge service](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/knowledge/knowledge-service.ts): `src/lib/services/knowledge/knowledge-service.ts`
- [Outcome service](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/outcome/outcome-service.ts): `src/lib/services/outcome/outcome-service.ts`
- [Evidence service](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/services/evidence/evidence-service.ts): `src/lib/services/evidence/evidence-service.ts`
- [Repository interface](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/knowledge-repository.ts): `src/lib/repositories/knowledge-repository.ts`
- [Demo repository](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/demo-knowledge-repository.ts): `src/lib/repositories/demo-knowledge-repository.ts`
- [Supabase repository](https://github.com/rudr-automates/pixel-perfect-pixels/blob/main/src/lib/repositories/supabase-knowledge-repository.ts): `src/lib/repositories/supabase-knowledge-repository.ts`

### Other components

- **Community member**
- **Sarvam speech**
- **Gemini model**

## Connections

- Community member → Home page: asks or browses
- Community member → Record page: records knowledge
- Community member → Knowledge detail: reviews record
- Home page → Voice query bar: offers query
- Voice query bar → Voice capture: captures audio
- Voice query bar → Speech service: transcribes
- Voice query bar → Search page: submits query
- Record page → Voice capture: captures recording
- Record page → Knowledge creation hook: creates record
- Knowledge creation hook → Speech service: transcribes
- Knowledge creation hook → Structure endpoint: requests structure
- Structure endpoint → Understanding service: structures transcript
- Knowledge creation hook → Knowledge service: saves contribution
- Search page → Search hook: runs search
- Search hook → Knowledge search: requests matches
- Knowledge search → Understanding service: interprets query
- Knowledge search → Repository interface: searches records
- Explore page → Repository interface: lists records
- Knowledge detail → Knowledge service: loads record
- Knowledge detail → Outcome reporting: offers reporting
- Knowledge detail → Evidence service: loads evidence
- Knowledge detail → Knowledge presentation: displays record
- Knowledge detail → Evidence panels: displays evidence
- Outcome reporting → Outcome service: submits outcome
- Knowledge service → Repository interface: reads and writes
- Outcome service → Repository interface: adds and lists reports
- Evidence service → Repository interface: loads evidence
- Repository interface → Demo repository: implemented by
- Repository interface → Supabase repository: implemented by
- Speech service → Sarvam speech: transcribes audio
- Understanding service → Gemini model: interprets content
