# felipusa96/nexus-central-de-jogos architecture

> Architecture diagram of the GitHub repository felipusa96/nexus-central-de-jogos, 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/felipusa96/nexus-central-de-jogos
- Repository: https://github.com/felipusa96/nexus-central-de-jogos

## Overview

NEXUS is a browser-based casual-games platform: visitors browse the catalog, choose a game, and play its own challenge; compatible games can submit or read rankings through optional Firebase services. The graph preserves the catalog’s major games and the sampled separation between game interfaces, pure rules engines, and ranking modules. CrossMath and Crosswords capabilities are documented in the README, but their internal wiring was not sampled; their relationships are therefore not inferred.

Main entry points: [`assets/js/catalog.js`](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/catalog.js) (Game catalog), [`assets/js/firebase.js`](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/firebase.js) (Firebase client), [`jogos/campo-minado/jogo.js`](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/jogo.js) (Minesweeper), [`jogos/sudoku/jogo.js`](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/jogo.js) (Sudoku)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform"]
  node_home["Platform entry<br/>[index.html]"]
  node_catalog["Game catalog<br/>[catalog.js]"]
  node_platform_app["Platform interface<br/>[app.js]"]
end

subgraph group_games["Game modules"]
  node_mines_ui["Minesweeper<br/>[jogo.js]"]
  node_mines_engine["Minesweeper rules<br/>[engine.js]"]
  node_sudoku_ui["Sudoku<br/>[jogo.js]"]
  node_sudoku_engine["Sudoku rules<br/>[engine.js]"]
  node_memory_ui["Memory<br/>[jogo.js]"]
  node_memory_engine["Memory rules<br/>[engine.js]"]
  node_spider_ui["Spider Solitaire<br/>[jogo.js]"]
  node_spider_engine["Spider rules<br/>[engine.js]"]
  node_crossmath["CrossMath<br/>[jogo.js]"]
  node_crosswords["Crosswords<br/>[jogo.js]"]
  node_word_search["Word search<br/>[index.html]"]
end

subgraph group_shared["Shared services"]
  node_word_bank[("Word bank<br/>[word-bank.js]")]
  node_firebase["Firebase client<br/>[firebase.js]"]
end

subgraph group_rankings["Rankings"]
  node_mines_ranking["Minesweeper ranking<br/>[ranking.js]"]
  node_sudoku_ranking["Sudoku ranking<br/>[ranking.js]"]
  node_memory_ranking["Memory ranking<br/>[ranking.js]"]
  node_spider_ranking["Spider ranking<br/>[ranking.js]"]
end

node_visitor(("Visitor"))
node_firebase_services[("Firebase services")]

node_visitor -->|"opens"| node_home
node_home -->|"offers navigation"| node_catalog
node_catalog -->|"launches"| node_mines_ui
node_catalog -->|"launches"| node_sudoku_ui
node_catalog -->|"launches"| node_memory_ui
node_catalog -->|"launches"| node_spider_ui
node_catalog -->|"launches"| node_crossmath
node_catalog -->|"launches"| node_crosswords
node_catalog -->|"launches"| node_word_search
node_mines_ui -->|"calls rules"| node_mines_engine
node_mines_ui -->|"uses ranking"| node_mines_ranking
node_sudoku_ui -->|"calls rules"| node_sudoku_engine
node_sudoku_ui -->|"loads ranking"| node_sudoku_ranking
node_memory_ui -->|"calls rules"| node_memory_engine
node_memory_ui -->|"loads ranking"| node_memory_ranking
node_spider_ui -->|"calls rules"| node_spider_engine
node_spider_ui -->|"loads ranking"| node_spider_ranking
node_mines_ranking -->|"uses client"| node_firebase
node_memory_ranking -->|"uses client"| node_firebase
node_memory_ranking -->|"uses score rules"| node_memory_engine
node_spider_ranking -->|"uses client"| node_firebase
node_spider_ranking -->|"uses score rules"| node_spider_engine
node_sudoku_ranking -->|"uses client"| node_firebase
node_firebase -.->|"connects optionally"| node_firebase_services

click node_home "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/index.html"
click node_catalog "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/catalog.js"
click node_platform_app "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/app.js"
click node_word_bank "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/word-bank.js"
click node_firebase "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/firebase.js"
click node_mines_ui "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/jogo.js"
click node_mines_engine "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/engine.js"
click node_mines_ranking "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/ranking.js"
click node_sudoku_ui "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/jogo.js"
click node_sudoku_engine "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/engine.js"
click node_sudoku_ranking "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/ranking.js"
click node_memory_ui "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/memoria/jogo.js"
click node_memory_engine "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/memoria/engine.js"
click node_memory_ranking "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/memoria/ranking.js"
click node_spider_ui "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/paciencia-spider/jogo.js"
click node_spider_engine "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/paciencia-spider/engine.js"
click node_spider_ranking "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/paciencia-spider/ranking.js"
click node_crossmath "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/crossmath/jogo.js"
click node_crosswords "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/palavras-cruzadas/jogo.js"
click node_word_search "https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/caca-palavras/index.html"

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_catalog,node_platform_app toneBlue
class node_mines_ui,node_mines_engine,node_sudoku_ui,node_sudoku_engine,node_memory_ui,node_memory_engine,node_spider_ui,node_spider_engine,node_crossmath,node_crosswords,node_word_search,node_firebase_services toneAmber
class node_word_bank,node_firebase toneMint
class node_mines_ranking,node_sudoku_ranking,node_memory_ranking,node_spider_ranking toneRose
class node_visitor toneIndigo
```

## Components

### Platform

- [Platform entry](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/index.html): `index.html`
- [Game catalog](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/catalog.js): `assets/js/catalog.js`
- [Platform interface](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/app.js): `assets/js/app.js`

### Game modules

- [Minesweeper](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/jogo.js): `jogos/campo-minado/jogo.js`
- [Minesweeper rules](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/engine.js): `jogos/campo-minado/engine.js`
- [Sudoku](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/jogo.js): `jogos/sudoku/jogo.js`
- [Sudoku rules](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/engine.js): `jogos/sudoku/engine.js`
- [Memory](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/memoria/jogo.js): `jogos/memoria/jogo.js`
- [Memory rules](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/memoria/engine.js): `jogos/memoria/engine.js`
- [Spider Solitaire](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/paciencia-spider/jogo.js): `jogos/paciencia-spider/jogo.js`
- [Spider rules](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/paciencia-spider/engine.js): `jogos/paciencia-spider/engine.js`
- [CrossMath](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/crossmath/jogo.js): `jogos/crossmath/jogo.js`
- [Crosswords](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/palavras-cruzadas/jogo.js): `jogos/palavras-cruzadas/jogo.js`
- [Word search](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/caca-palavras/index.html): `jogos/caca-palavras/index.html`

### Shared services

- [Word bank](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/word-bank.js): `assets/js/word-bank.js`
- [Firebase client](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/assets/js/firebase.js): `assets/js/firebase.js`

### Rankings

- [Minesweeper ranking](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/campo-minado/ranking.js): `jogos/campo-minado/ranking.js`
- [Sudoku ranking](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/sudoku/ranking.js): `jogos/sudoku/ranking.js`
- [Memory ranking](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/memoria/ranking.js): `jogos/memoria/ranking.js`
- [Spider ranking](https://github.com/felipusa96/nexus-central-de-jogos/blob/main/jogos/paciencia-spider/ranking.js): `jogos/paciencia-spider/ranking.js`

### Other components

- **Visitor**
- **Firebase services**

## Connections

- Visitor → Platform entry: opens (evidence: `README.md`)
- Platform entry → Game catalog: offers navigation (evidence: `README.md`)
- Game catalog → Minesweeper: launches (evidence: `README.md`)
- Game catalog → Sudoku: launches (evidence: `README.md`)
- Game catalog → Memory: launches (evidence: `README.md`)
- Game catalog → Spider Solitaire: launches (evidence: `README.md`)
- Game catalog → CrossMath: launches (evidence: `README.md`)
- Game catalog → Crosswords: launches (evidence: `README.md`)
- Game catalog → Word search: launches (evidence: `README.md`)
- Minesweeper → Minesweeper rules: calls rules (evidence: `jogos/campo-minado/jogo.js`)
- Minesweeper → Minesweeper ranking: uses ranking (evidence: `jogos/campo-minado/jogo.js`)
- Sudoku → Sudoku rules: calls rules (evidence: `jogos/sudoku/jogo.js`)
- Sudoku → Sudoku ranking: loads ranking (evidence: `jogos/sudoku/jogo.js`)
- Memory → Memory rules: calls rules (evidence: `jogos/memoria/jogo.js`)
- Memory → Memory ranking: loads ranking (evidence: `jogos/memoria/jogo.js`)
- Spider Solitaire → Spider rules: calls rules (evidence: `jogos/paciencia-spider/jogo.js`)
- Spider Solitaire → Spider ranking: loads ranking (evidence: `jogos/paciencia-spider/jogo.js`)
- Minesweeper ranking → Firebase client: uses client (evidence: `jogos/campo-minado/ranking.js`)
- Memory ranking → Firebase client: uses client (evidence: `jogos/memoria/ranking.js`)
- Memory ranking → Memory rules: uses score rules (evidence: `jogos/memoria/ranking.js`)
- Spider ranking → Firebase client: uses client (evidence: `jogos/paciencia-spider/ranking.js`)
- Spider ranking → Spider rules: uses score rules (evidence: `jogos/paciencia-spider/ranking.js`)
- Sudoku ranking → Firebase client: uses client (evidence: `jogos/sudoku/ranking.js`)
- Firebase client → Firebase services: connects optionally (evidence: `README.md`)
