# vaidhika1105/ai-search-engine architecture

> Architecture diagram of the GitHub repository vaidhika1105/ai-search-engine, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vaidhika1105/ai-search-engine
- Repository: https://github.com/vaidhika1105/ai-search-engine

## Overview

This is a multi-platform repository discovery and analysis application: users search repositories, inspect details, compare projects, explore trending results, and access recommendations and saved/history features. The frontend search page shown uses mock repository data, while the backend exposes provider-backed discovery and initializes an AI facade for semantic search, query understanding, ranking, recommendations, and summarization. Several backend routes and AI modules are indexed but not excerpted, so their subsystem coverage is shown without asserting unverified calls.

Main entry points: [`ai-search/ai/facade.py`](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/facade.py) (AI facade), [`backend/app/main.py`](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/main.py) (FastAPI application), [`backend/app/routers/search.py`](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/routers/search.py) (Search route), [`frontend/src/App.jsx`](https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/App.jsx) (Route application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web interface"]
  node_web_app["Route application<br/>[App.jsx]"]
  node_search_page["Search page<br/>[Search.jsx]"]
  node_mock_repositories["Mock repositories"]
  node_other_pages["Explore pages"]
  node_api_client["API client<br/>[api.js]"]
end

subgraph group_backend["Backend API"]
  node_api["FastAPI application<br/>[main.py]"]
  node_search_route["Search route<br/>[search.py]"]
  node_feature_routes["Feature routes"]
  node_database[("SQLite database<br/>[database.py]")]
  node_db_models["History and favorites<br/>[database_models.py]"]
  node_ai_service["AI service adapter<br/>[ai_service.py]"]
end

subgraph group_discovery["Repository discovery"]
  node_discovery_service["Discovery service"]
  node_platform_providers["Platform providers"]
end

subgraph group_ai["AI search"]
  node_ai_facade["AI facade<br/>[facade.py]"]
  node_query_engine["Query understanding<br/>[engine.py]"]
  node_semantic_search["Semantic search<br/>[search_engine.py]"]
  node_vector_index[("FAISS index<br/>[faiss_index.py]")]
  node_ranking["Result ranking<br/>[service.py]"]
  node_recommendations["Recommendations<br/>[engine.py]"]
  node_summarizer["Repository summaries<br/>[summarizer.py]"]
  node_embeddings["Embedding generation<br/>[generator.py]"]
end

node_user(("User"))

node_user -->|"uses"| node_web_app
node_web_app -->|"routes to"| node_search_page
node_web_app -->|"routes to"| node_other_pages
node_search_page -->|"filters"| node_mock_repositories
node_api -->|"registers"| node_search_route
node_api -->|"registers"| node_feature_routes
node_search_route -->|"queries"| node_discovery_service
node_search_route -->|"accesses"| node_database
node_search_route -->|"uses"| node_db_models
node_discovery_service -->|"dispatches"| node_platform_providers
node_api -->|"creates tables"| node_database
node_db_models -->|"uses base"| node_database
node_api -->|"initializes"| node_ai_facade
node_ai_facade -->|"uses"| node_query_engine
node_ai_facade -->|"uses"| node_semantic_search
node_ai_facade -->|"uses"| node_vector_index
node_ai_facade -->|"uses"| node_ranking
node_ai_facade -->|"uses"| node_recommendations
node_ai_facade -->|"uses"| node_summarizer
node_ai_facade -->|"uses"| node_embeddings
node_semantic_search -->|"builds and searches"| node_vector_index

click node_web_app "https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/App.jsx"
click node_search_page "https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/pages/Search.jsx"
click node_mock_repositories "https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/data/mockRepositories.js"
click node_other_pages "https://github.com/vaidhika1105/ai-search-engine/tree/main/frontend/src/pages"
click node_api_client "https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/services/api.js"
click node_api "https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/main.py"
click node_search_route "https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/routers/search.py"
click node_feature_routes "https://github.com/vaidhika1105/ai-search-engine/tree/main/backend/app/routers"
click node_discovery_service "https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/services/discovery_service.py"
click node_platform_providers "https://github.com/vaidhika1105/ai-search-engine/tree/main/backend/app/services/providers"
click node_database "https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/database.py"
click node_db_models "https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/database_models.py"
click node_ai_service "https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/services/ai_service.py"
click node_ai_facade "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/facade.py"
click node_query_engine "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/query_processor/engine.py"
click node_semantic_search "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/semantic_search/search_engine.py"
click node_vector_index "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/semantic_search/faiss_index.py"
click node_ranking "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/ranking/service.py"
click node_recommendations "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/recommendation/engine.py"
click node_summarizer "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/summarizer/summarizer.py"
click node_embeddings "https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/embeddings/generator.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_web_app,node_search_page,node_mock_repositories,node_other_pages,node_api_client,node_user toneBlue
class node_api,node_search_route,node_feature_routes,node_database,node_db_models,node_ai_service toneAmber
class node_discovery_service,node_platform_providers toneMint
class node_ai_facade,node_query_engine,node_semantic_search,node_vector_index,node_ranking,node_recommendations,node_summarizer,node_embeddings toneRose
```

## Components

### Web interface

- [Route application](https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Search page](https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/pages/Search.jsx): `frontend/src/pages/Search.jsx`
- [Mock repositories](https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/data/mockRepositories.js): `frontend/src/data/mockRepositories.js`
- [Explore pages](https://github.com/vaidhika1105/ai-search-engine/tree/main/frontend/src/pages): `frontend/src/pages`
- [API client](https://github.com/vaidhika1105/ai-search-engine/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### Backend API

- [FastAPI application](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/main.py): `backend/app/main.py`
- [Search route](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/routers/search.py): `backend/app/routers/search.py`
- [Feature routes](https://github.com/vaidhika1105/ai-search-engine/tree/main/backend/app/routers): `backend/app/routers`
- [SQLite database](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/database.py): `backend/app/database.py`
- [History and favorites](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/database_models.py): `backend/app/database_models.py`
- [AI service adapter](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/services/ai_service.py): `backend/app/services/ai_service.py`

### Repository discovery

- [Discovery service](https://github.com/vaidhika1105/ai-search-engine/blob/main/backend/app/services/discovery_service.py): `backend/app/services/discovery_service.py`
- [Platform providers](https://github.com/vaidhika1105/ai-search-engine/tree/main/backend/app/services/providers): `backend/app/services/providers`

### AI search

- [AI facade](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/facade.py): `ai-search/ai/facade.py`
- [Query understanding](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/query_processor/engine.py): `ai-search/ai/query_processor/engine.py`
- [Semantic search](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/semantic_search/search_engine.py): `ai-search/ai/semantic_search/search_engine.py`
- [FAISS index](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/semantic_search/faiss_index.py): `ai-search/ai/semantic_search/faiss_index.py`
- [Result ranking](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/ranking/service.py): `ai-search/ai/ranking/service.py`
- [Recommendations](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/recommendation/engine.py): `ai-search/ai/recommendation/engine.py`
- [Repository summaries](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/summarizer/summarizer.py): `ai-search/ai/summarizer/summarizer.py`
- [Embedding generation](https://github.com/vaidhika1105/ai-search-engine/blob/main/ai-search/ai/embeddings/generator.py): `ai-search/ai/embeddings/generator.py`

### Other components

- **User**

## Connections

- User → Route application: uses (evidence: `frontend/src/App.jsx`)
- Route application → Search page: routes to (evidence: `frontend/src/App.jsx`)
- Route application → Explore pages: routes to (evidence: `frontend/src/App.jsx`)
- Search page → Mock repositories: filters (evidence: `frontend/src/pages/Search.jsx`)
- FastAPI application → Search route: registers (evidence: `backend/app/main.py`)
- FastAPI application → Feature routes: registers (evidence: `backend/app/main.py`)
- Search route → Discovery service: queries (evidence: `backend/app/routers/search.py`)
- Search route → SQLite database: accesses (evidence: `backend/app/routers/search.py`)
- Search route → History and favorites: uses (evidence: `backend/app/routers/search.py`)
- Discovery service → Platform providers: dispatches (evidence: `backend/app/services/discovery_service.py`)
- FastAPI application → SQLite database: creates tables (evidence: `backend/app/main.py`)
- History and favorites → SQLite database: uses base (evidence: `backend/app/database_models.py`)
- FastAPI application → AI facade: initializes (evidence: `backend/app/main.py`)
- AI facade → Query understanding: uses (evidence: `ai-search/ai/facade.py`)
- AI facade → Semantic search: uses (evidence: `ai-search/ai/facade.py`)
- AI facade → FAISS index: uses (evidence: `ai-search/ai/facade.py`)
- AI facade → Result ranking: uses (evidence: `ai-search/ai/facade.py`)
- AI facade → Recommendations: uses (evidence: `ai-search/ai/facade.py`)
- AI facade → Repository summaries: uses (evidence: `ai-search/ai/facade.py`)
- AI facade → Embedding generation: uses (evidence: `ai-search/ai/facade.py`)
- Semantic search → FAISS index: builds and searches (evidence: `ai-search/ai/semantic_search/search_engine.py`)
