# edilson-nantes/meu-setup-v2 architecture

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

- Interactive diagram: https://gitdiagram.com/edilson-nantes/meu-setup-v2
- Repository: https://github.com/edilson-nantes/meu-setup-v2

## Overview

MeuSetup is a React portal for assembling and saving a compatible gaming-PC component setup, alongside account and help pages. The main flow is: a visitor opens Setup, filters and selects parts, and can save the configuration under their account; Redux holds the current selections and Firebase supplies component and account data. The graph also preserves the documented-in-code login, registration, password recovery, saved configurations, and admin page. Relationship evidence is limited to the supplied excerpts and source index; unsampled internals are not inferred.

Main entry points: [`src/App.js`](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/App.js) (App Router), [`src/view/setup/index.js`](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/setup/index.js) (Setup Page), [`src/config/firebase.js`](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/config/firebase.js) (Firebase Setup), [`src/store/index.js`](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/store/index.js) (Redux Store)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_app["App Router<br/>[App.js]"]
  node_home["Home<br/>[index.js]"]
  node_help["Help<br/>[index.js]"]
end

subgraph group_builder["Setup Builder"]
  node_setup["Setup Page<br/>[index.js]"]
  node_cpu["CPU Selector<br/>[index.js]"]
  node_motherboard["Motherboard Selector<br/>[index.js]"]
  node_ram["RAM Selector<br/>[index.js]"]
  node_gpu["GPU Selector<br/>[index.js]"]
  node_power["Power Selector<br/>[index.js]"]
  node_chosen["Chosen Parts<br/>[index.js]"]
  node_saved["Saved Setups<br/>[index.js]"]
  node_saved_item["Setup Display<br/>[index.js]"]
end

subgraph group_state["Client State"]
  node_actions["State Actions<br/>[configActions.js]"]
  node_user_actions["User Actions<br/>[userActions.js]"]
  node_store["Redux Store<br/>[index.js]"]
  node_config_reducer["Setup Reducer<br/>[configReducer.js]"]
  node_user_reducer["User Reducer<br/>[usuarioReducer.js]"]
end

subgraph group_accounts["Accounts"]
  node_login["Login<br/>[index.js]"]
  node_register["Registration<br/>[index.js]"]
  node_recovery["Password Recovery<br/>[index.js]"]
  node_account["Account Page<br/>[index.js]"]
  node_admin["Admin Panel<br/>[index.js]"]
end

subgraph group_services["Backend Service"]
  node_firebase_config["Firebase Setup<br/>[firebase.js]"]
  node_firebase[("Firebase")]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_app
node_app -->|"routes"| node_home
node_app -->|"routes"| node_help
node_app -->|"routes"| node_setup
node_app -->|"routes"| node_login
node_app -->|"routes"| node_register
node_app -->|"routes"| node_recovery
node_app -->|"routes"| node_saved
node_app -->|"routes"| node_account
node_app -->|"routes"| node_admin
node_app -->|"provides state"| node_store
node_setup -->|"queries parts"| node_firebase_config
node_firebase_config -->|"initializes"| node_firebase
node_setup -->|"renders"| node_cpu
node_setup -->|"renders"| node_motherboard
node_setup -->|"renders"| node_ram
node_setup -->|"renders"| node_gpu
node_setup -->|"renders"| node_power
node_setup -->|"renders"| node_chosen
node_chosen -->|"dispatches"| node_actions
node_login -->|"calls login"| node_user_actions
node_register -->|"creates account"| node_firebase_config
node_saved -->|"loads setups"| node_firebase_config
node_saved -->|"renders"| node_saved_item
node_login -->|"reads state"| node_store
node_chosen -->|"reads state"| node_store
node_store -->|"combines reducers"| node_config_reducer
node_store -->|"combines reducers"| node_user_reducer
node_user_actions -->|"uses auth"| node_firebase_config
node_recovery -->|"uses Firebase"| node_firebase_config
node_account -->|"uses Firebase"| node_firebase_config
node_admin -->|"uses Firebase"| node_firebase_config

click node_app "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/App.js"
click node_home "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/home/index.js"
click node_help "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/ajuda/index.js"
click node_setup "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/setup/index.js"
click node_cpu "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentcpu/index.js"
click node_motherboard "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentmb/index.js"
click node_ram "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentram/index.js"
click node_gpu "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentgpu/index.js"
click node_power "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentpwr/index.js"
click node_chosen "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/chosencomponents/index.js"
click node_saved "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/minhasconfiguracoes/index.js"
click node_saved_item "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/minhaconfig/index.js"
click node_actions "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/actions/configActions.js"
click node_user_actions "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/actions/userActions.js"
click node_store "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/store/index.js"
click node_config_reducer "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/reducers/configReducer.js"
click node_user_reducer "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/reducers/usuarioReducer.js"
click node_login "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/login/index.js"
click node_register "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/cadastrar/index.js"
click node_recovery "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/recuperarsenha/index.js"
click node_account "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/minhaconta/index.js"
click node_admin "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/paineladmin/index.js"
click node_firebase_config "https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/config/firebase.js"

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_home,node_help toneBlue
class node_setup,node_cpu,node_motherboard,node_ram,node_gpu,node_power,node_chosen,node_saved,node_saved_item toneAmber
class node_actions,node_user_actions,node_store,node_config_reducer,node_user_reducer toneMint
class node_login,node_register,node_recovery,node_account,node_admin toneRose
class node_firebase_config,node_firebase,node_visitor toneIndigo
```

## Components

### Application

- [App Router](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/App.js): `src/App.js`
- [Home](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/home/index.js): `src/view/home/index.js`
- [Help](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/ajuda/index.js): `src/view/ajuda/index.js`

### Setup Builder

- [Setup Page](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/setup/index.js): `src/view/setup/index.js`
- [CPU Selector](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentcpu/index.js): `src/components/componentcpu/index.js`
- [Motherboard Selector](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentmb/index.js): `src/components/componentmb/index.js`
- [RAM Selector](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentram/index.js): `src/components/componentram/index.js`
- [GPU Selector](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentgpu/index.js): `src/components/componentgpu/index.js`
- [Power Selector](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/componentpwr/index.js): `src/components/componentpwr/index.js`
- [Chosen Parts](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/chosencomponents/index.js): `src/components/chosencomponents/index.js`
- [Saved Setups](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/minhasconfiguracoes/index.js): `src/view/minhasconfiguracoes/index.js`
- [Setup Display](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/components/minhaconfig/index.js): `src/components/minhaconfig/index.js`

### Client State

- [State Actions](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/actions/configActions.js): `src/actions/configActions.js`
- [User Actions](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/actions/userActions.js): `src/actions/userActions.js`
- [Redux Store](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/store/index.js): `src/store/index.js`
- [Setup Reducer](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/reducers/configReducer.js): `src/reducers/configReducer.js`
- [User Reducer](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/reducers/usuarioReducer.js): `src/reducers/usuarioReducer.js`

### Accounts

- [Login](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/login/index.js): `src/view/login/index.js`
- [Registration](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/cadastrar/index.js): `src/view/cadastrar/index.js`
- [Password Recovery](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/recuperarsenha/index.js): `src/view/recuperarsenha/index.js`
- [Account Page](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/minhaconta/index.js): `src/view/minhaconta/index.js`
- [Admin Panel](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/view/paineladmin/index.js): `src/view/paineladmin/index.js`

### Backend Service

- [Firebase Setup](https://github.com/edilson-nantes/meu-setup-v2/blob/master/src/config/firebase.js): `src/config/firebase.js`
- **Firebase**

### Other components

- **Visitor**

## Connections

- Visitor → App Router: opens
- App Router → Home: routes (evidence: `src/App.js`)
- App Router → Help: routes (evidence: `src/App.js`)
- App Router → Setup Page: routes (evidence: `src/App.js`)
- App Router → Login: routes (evidence: `src/App.js`)
- App Router → Registration: routes (evidence: `src/App.js`)
- App Router → Password Recovery: routes (evidence: `src/App.js`)
- App Router → Saved Setups: routes (evidence: `src/App.js`)
- App Router → Account Page: routes (evidence: `src/App.js`)
- App Router → Admin Panel: routes (evidence: `src/App.js`)
- App Router → Redux Store: provides state (evidence: `src/App.js`)
- Setup Page → Firebase Setup: queries parts (evidence: `src/view/setup/index.js`)
- Firebase Setup → Firebase: initializes (evidence: `src/config/firebase.js`)
- Setup Page → CPU Selector: renders (evidence: `src/view/setup/index.js`)
- Setup Page → Motherboard Selector: renders (evidence: `src/view/setup/index.js`)
- Setup Page → RAM Selector: renders (evidence: `src/view/setup/index.js`)
- Setup Page → GPU Selector: renders (evidence: `src/view/setup/index.js`)
- Setup Page → Power Selector: renders (evidence: `src/view/setup/index.js`)
- Setup Page → Chosen Parts: renders (evidence: `src/view/setup/index.js`)
- Chosen Parts → State Actions: dispatches (evidence: `src/components/chosencomponents/index.js`)
- Login → User Actions: calls login (evidence: `src/view/login/index.js`)
- Registration → Firebase Setup: creates account (evidence: `src/view/cadastrar/index.js`)
- Saved Setups → Firebase Setup: loads setups (evidence: `src/view/minhasconfiguracoes/index.js`)
- Saved Setups → Setup Display: renders (evidence: `src/view/minhasconfiguracoes/index.js`)
- Login → Redux Store: reads state (evidence: `src/view/login/index.js`)
- Chosen Parts → Redux Store: reads state (evidence: `src/components/chosencomponents/index.js`)
- Redux Store → Setup Reducer: combines reducers (evidence: `src/store/index.js`)
- Redux Store → User Reducer: combines reducers (evidence: `src/store/index.js`)
- User Actions → Firebase Setup: uses auth (evidence: `src/actions/userActions.js`)
- Password Recovery → Firebase Setup: uses Firebase (evidence: `src/view/recuperarsenha/index.js`)
- Account Page → Firebase Setup: uses Firebase (evidence: `src/view/minhaconta/index.js`)
- Admin Panel → Firebase Setup: uses Firebase (evidence: `src/view/paineladmin/index.js`)
