# nicolasnunez091/buildpc3d architecture

> Architecture diagram of the GitHub repository nicolasnunez091/buildpc3d, 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/nicolasnunez091/buildpc3d
- Repository: https://github.com/nicolasnunez091/buildpc3d

## Overview

BUILDPC3D is a Godot mobile guide for assembling desktop PCs. The intended user flow is to describe a use case, have the app identify a usage profile with its NLP service, and receive a component recommendation intended to satisfy physical and electrical compatibility. The README documents the MVC app, Firebase-backed DAO, and Groq microservice; the sampled source confirms the AI endpoint and catalog-generation script. Godot runtime files were not excerpted, so app-internal calls and the recommendation-to-catalog data path remain unverified.

Main entry points: [`buildpc3d-app/Controller/MainController.gd`](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Controller/MainController.gd) (App controller), [`buildpc3d-app/View/MainScene.tscn`](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/View/MainScene.tscn) (Assembly interface), [`buildpc3d-app/Model/DAO.gd`](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Model/DAO.gd) (Component DAO), [`ia-microservice/app.py`](https://github.com/nicolasnunez091/buildpc3d/blob/main/ia-microservice/app.py) (Usage analysis API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Godot application"]
  node_view["Assembly interface<br/>[MainScene.tscn]"]
  node_controller["App controller<br/>[MainController.gd]"]
  node_recommender["Compatibility recommender<br/>[Recomendador.gd]"]
end

subgraph group_data["Catalog and data"]
  node_dao["Component DAO<br/>[DAO.gd]"]
  node_catalog["Component catalog<br/>[componentes.json]"]
  node_catalog_generator["Catalog generator"]
end

subgraph group_ai["AI service"]
  node_ia_api["Usage analysis API<br/>[app.py]"]
end

subgraph group_external["External services"]
  node_groq["Groq LLM"]
  node_firebase[("Firebase Firestore")]
end

node_user(("PC builder"))

node_user -->|"uses"| node_view
node_view -.->|"interacts with"| node_controller
node_controller -.->|"requests profile"| node_ia_api
node_ia_api -->|"classifies prompt"| node_groq
node_controller -.->|"requests recommendation"| node_recommender
node_controller -.->|"accesses components"| node_dao
node_dao -->|"reads via REST"| node_firebase
node_catalog_generator -->|"writes catalog"| node_catalog

click node_view "https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/View/MainScene.tscn"
click node_controller "https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Controller/MainController.gd"
click node_recommender "https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Model/Recomendador.gd"
click node_dao "https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Model/DAO.gd"
click node_catalog "https://github.com/nicolasnunez091/buildpc3d/blob/main/docs/componentes.json"
click node_catalog_generator "https://github.com/nicolasnunez091/buildpc3d/blob/main/generate_catalog.py"
click node_ia_api "https://github.com/nicolasnunez091/buildpc3d/blob/main/ia-microservice/app.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_view,node_controller,node_recommender toneBlue
class node_dao,node_catalog,node_catalog_generator toneAmber
class node_ia_api toneMint
class node_groq,node_firebase toneRose
class node_user toneIndigo
```

## Components

### Godot application

- [Assembly interface](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/View/MainScene.tscn): `buildpc3d-app/View/MainScene.tscn`
- [App controller](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Controller/MainController.gd): `buildpc3d-app/Controller/MainController.gd`
- [Compatibility recommender](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Model/Recomendador.gd): `buildpc3d-app/Model/Recomendador.gd`

### Catalog and data

- [Component DAO](https://github.com/nicolasnunez091/buildpc3d/blob/main/buildpc3d-app/Model/DAO.gd): `buildpc3d-app/Model/DAO.gd`
- [Component catalog](https://github.com/nicolasnunez091/buildpc3d/blob/main/docs/componentes.json): `docs/componentes.json`
- [Catalog generator](https://github.com/nicolasnunez091/buildpc3d/blob/main/generate_catalog.py): `generate_catalog.py`

### AI service

- [Usage analysis API](https://github.com/nicolasnunez091/buildpc3d/blob/main/ia-microservice/app.py): `ia-microservice/app.py`

### External services

- **Groq LLM**
- **Firebase Firestore**

### Other components

- **PC builder**

## Connections

- PC builder → Assembly interface: uses (evidence: `README.md`)
- Assembly interface → App controller: interacts with
- App controller → Usage analysis API: requests profile
- Usage analysis API → Groq LLM: classifies prompt (evidence: `ia-microservice/app.py`)
- App controller → Compatibility recommender: requests recommendation
- App controller → Component DAO: accesses components
- Component DAO → Firebase Firestore: reads via REST (evidence: `README.md`)
- Catalog generator → Component catalog: writes catalog (evidence: `generate_catalog.py`)
