# husnaqayyum99-byte/app architecture

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

- Interactive diagram: https://gitdiagram.com/husnaqayyum99-byte/app
- Repository: https://github.com/husnaqayyum99-byte/app

## Overview

Apna Wakeel appears to be an Android legal-assistance app: users can browse legal topics and sources, describe a case, receive follow-up questions and analysis, and view a legal plan; separate screens support chat, voice, and case history. The tree also indicates agent-based legal processing, local case/topic data, and Firebase/Gemini integrations. The README is empty and the supplied source excerpts contain only build configuration, so internal wiring and workflow edges cannot be verified and are omitted.

Main entry points: [`app/src/main/java/com/example/data/auth/FirebaseAuthService.kt`](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/auth/FirebaseAuthService.kt) (Firebase auth), [`app/src/main/java/com/example/data/cloud/FirestoreSyncService.kt`](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/cloud/FirestoreSyncService.kt) (Cloud sync), [`app/src/main/java/com/example/data/ai/FirebaseAIChatService.kt`](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/FirebaseAIChatService.kt) (Firebase AI chat), [`app/src/main/java/com/example/data/ai/GeminiLegalService.kt`](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiLegalService.kt) (Gemini legal service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["App experience"]
  node_main["Android entry<br/>[MainActivity.kt]"]
  node_navigation["Navigation state"]
  node_home["Home<br/>[HomeScreen.kt]"]
  node_intake["Case intake"]
  node_questions["Follow-up questions"]
  node_analysis["Case analysis<br/>[AnalyzingScreen.kt]"]
  node_plan["Plan result"]
  node_history["Case history"]
  node_topics["Legal topics"]
  node_sources["Sources directory"]
  node_chat["Legal chat<br/>[LegalChatScreen.kt]"]
  node_voice["Voice conversation"]
end

subgraph group_legal["Legal assistance"]
  node_orchestration["Case orchestration"]
  node_intake_agent["Intake agent<br/>[IntakeAgent.kt]"]
  node_specialists["Specialist agents"]
  node_verification["Verification"]
  node_plan_builder["Plan builder"]
  node_sources_registry["Sources registry"]
end

subgraph group_data["Case and legal data"]
  node_case_models["Case models<br/>[CaseModels.kt]"]
  node_case_dao["Case access<br/>[CaseDao.kt]"]
  node_case_store[("Local case database<br/>[AppDatabase.kt]")]
  node_topic_repository["Topic repository"]
  node_topic_dao["Topic access<br/>[LegalTopicDao.kt]"]
  node_topic_data["Topic data"]
end

subgraph group_services["Platform services"]
  node_auth["Firebase auth"]
  node_firestore_sync["Cloud sync"]
  node_firebase_chat["Firebase AI chat"]
  node_gemini_legal["Gemini legal service"]
  node_gemini_live["Gemini live voice"]
  node_transcription["Gemini transcription"]
  node_recording["Audio recording"]
end

node_person(("User"))
node_firebase["Firebase"]
node_gemini["Gemini services"]

node_auth -.->|"uses"| node_firebase
node_firestore_sync -.->|"syncs with"| node_firebase
node_firebase_chat -.->|"uses"| node_firebase
node_gemini_legal -.->|"uses"| node_gemini
node_gemini_live -.->|"uses"| node_gemini
node_transcription -.->|"uses"| node_gemini

click node_main "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/MainActivity.kt"
click node_navigation "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/viewmodel/LegalNavViewModel.kt"
click node_home "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/HomeScreen.kt"
click node_intake "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/CaseIntakeScreen.kt"
click node_questions "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/FollowUpQuestionsScreen.kt"
click node_analysis "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/AnalyzingScreen.kt"
click node_plan "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/LegalPlanResultScreen.kt"
click node_history "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/CaseHistoryScreen.kt"
click node_topics "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/LegalTopicsScreen.kt"
click node_sources "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/SourcesDirectoryScreen.kt"
click node_chat "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/LegalChatScreen.kt"
click node_voice "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/VoiceConversationScreen.kt"
click node_orchestration "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/OrchestrationAgent.kt"
click node_intake_agent "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/IntakeAgent.kt"
click node_specialists "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/SpecialistAgents.kt"
click node_verification "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/VerificationEngine.kt"
click node_plan_builder "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/LegalPlanBuilder.kt"
click node_sources_registry "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/sources/LegalSourcesRegistry.kt"
click node_case_models "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/models/CaseModels.kt"
click node_case_dao "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/CaseDao.kt"
click node_case_store "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/AppDatabase.kt"
click node_topic_repository "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/LegalTopicRepository.kt"
click node_topic_dao "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/LegalTopicDao.kt"
click node_topic_data "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/LegalTopicEntity.kt"
click node_auth "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/auth/FirebaseAuthService.kt"
click node_firestore_sync "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/cloud/FirestoreSyncService.kt"
click node_firebase_chat "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/FirebaseAIChatService.kt"
click node_gemini_legal "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiLegalService.kt"
click node_gemini_live "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiLiveVoiceService.kt"
click node_transcription "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiTranscriptionService.kt"
click node_recording "https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/audio/AudioRecordingManager.kt"

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_main,node_navigation,node_home,node_intake,node_questions,node_analysis,node_plan,node_history,node_topics,node_sources,node_chat,node_voice,node_person toneBlue
class node_orchestration,node_intake_agent,node_specialists,node_verification,node_plan_builder,node_sources_registry toneAmber
class node_case_models,node_case_dao,node_case_store,node_topic_repository,node_topic_dao,node_topic_data toneMint
class node_auth,node_firestore_sync,node_firebase_chat,node_gemini_legal,node_gemini_live,node_transcription,node_recording toneRose
class node_firebase,node_gemini toneIndigo
```

## Components

### App experience

- [Android entry](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/MainActivity.kt): `app/src/main/java/com/example/MainActivity.kt`
- [Navigation state](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/viewmodel/LegalNavViewModel.kt): `app/src/main/java/com/example/ui/viewmodel/LegalNavViewModel.kt`
- [Home](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/HomeScreen.kt): `app/src/main/java/com/example/ui/screens/HomeScreen.kt`
- [Case intake](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/CaseIntakeScreen.kt): `app/src/main/java/com/example/ui/screens/CaseIntakeScreen.kt`
- [Follow-up questions](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/FollowUpQuestionsScreen.kt): `app/src/main/java/com/example/ui/screens/FollowUpQuestionsScreen.kt`
- [Case analysis](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/AnalyzingScreen.kt): `app/src/main/java/com/example/ui/screens/AnalyzingScreen.kt`
- [Plan result](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/LegalPlanResultScreen.kt): `app/src/main/java/com/example/ui/screens/LegalPlanResultScreen.kt`
- [Case history](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/CaseHistoryScreen.kt): `app/src/main/java/com/example/ui/screens/CaseHistoryScreen.kt`
- [Legal topics](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/LegalTopicsScreen.kt): `app/src/main/java/com/example/ui/screens/LegalTopicsScreen.kt`
- [Sources directory](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/SourcesDirectoryScreen.kt): `app/src/main/java/com/example/ui/screens/SourcesDirectoryScreen.kt`
- [Legal chat](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/LegalChatScreen.kt): `app/src/main/java/com/example/ui/screens/LegalChatScreen.kt`
- [Voice conversation](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/ui/screens/VoiceConversationScreen.kt): `app/src/main/java/com/example/ui/screens/VoiceConversationScreen.kt`

### Legal assistance

- [Case orchestration](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/OrchestrationAgent.kt): `app/src/main/java/com/example/data/agents/OrchestrationAgent.kt`
- [Intake agent](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/IntakeAgent.kt): `app/src/main/java/com/example/data/agents/IntakeAgent.kt`
- [Specialist agents](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/SpecialistAgents.kt): `app/src/main/java/com/example/data/agents/SpecialistAgents.kt`
- [Verification](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/VerificationEngine.kt): `app/src/main/java/com/example/data/agents/VerificationEngine.kt`
- [Plan builder](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/agents/LegalPlanBuilder.kt): `app/src/main/java/com/example/data/agents/LegalPlanBuilder.kt`
- [Sources registry](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/sources/LegalSourcesRegistry.kt): `app/src/main/java/com/example/data/sources/LegalSourcesRegistry.kt`

### Case and legal data

- [Case models](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/models/CaseModels.kt): `app/src/main/java/com/example/data/models/CaseModels.kt`
- [Case access](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/CaseDao.kt): `app/src/main/java/com/example/data/local/CaseDao.kt`
- [Local case database](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/AppDatabase.kt): `app/src/main/java/com/example/data/local/AppDatabase.kt`
- [Topic repository](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/LegalTopicRepository.kt): `app/src/main/java/com/example/data/local/LegalTopicRepository.kt`
- [Topic access](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/LegalTopicDao.kt): `app/src/main/java/com/example/data/local/LegalTopicDao.kt`
- [Topic data](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/local/LegalTopicEntity.kt): `app/src/main/java/com/example/data/local/LegalTopicEntity.kt`

### Platform services

- [Firebase auth](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/auth/FirebaseAuthService.kt): `app/src/main/java/com/example/data/auth/FirebaseAuthService.kt`
- [Cloud sync](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/cloud/FirestoreSyncService.kt): `app/src/main/java/com/example/data/cloud/FirestoreSyncService.kt`
- [Firebase AI chat](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/FirebaseAIChatService.kt): `app/src/main/java/com/example/data/ai/FirebaseAIChatService.kt`
- [Gemini legal service](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiLegalService.kt): `app/src/main/java/com/example/data/ai/GeminiLegalService.kt`
- [Gemini live voice](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiLiveVoiceService.kt): `app/src/main/java/com/example/data/ai/GeminiLiveVoiceService.kt`
- [Gemini transcription](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/ai/GeminiTranscriptionService.kt): `app/src/main/java/com/example/data/ai/GeminiTranscriptionService.kt`
- [Audio recording](https://github.com/husnaqayyum99-byte/app/blob/main/app/src/main/java/com/example/data/audio/AudioRecordingManager.kt): `app/src/main/java/com/example/data/audio/AudioRecordingManager.kt`

### Other components

- **User**
- **Firebase**
- **Gemini services**

## Connections

- Firebase auth → Firebase: uses
- Cloud sync → Firebase: syncs with
- Firebase AI chat → Firebase: uses
- Gemini legal service → Gemini services: uses
- Gemini live voice → Gemini services: uses
- Gemini transcription → Gemini services: uses
