# sravan99k/sos-bord-game architecture

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

- Interactive diagram: https://gitdiagram.com/sravan99k/sos-bord-game
- Repository: https://github.com/sravan99k/sos-bord-game

## Overview

GAMEZONE is a React playground for SOS, with local setup, computer or friend play, and a puzzle section; Tombola is scaffolded rather than fully implemented. The main workflow is selecting SOS, configuring a game, then playing on the grid. The graph includes the documented Tombola pages and puzzle data, but their wiring is limited to what the README, tree, and sampled code establish; unsampled page behavior is not inferred.

Main entry points: [`src/App.tsx`](https://github.com/sravan99k/sos-bord-game/blob/main/src/App.tsx) (Routes and toaster), [`src/pages/TombolaAuth.tsx`](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaAuth.tsx) (Tombola auth), [`src/pages/Index.tsx`](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/Index.tsx) (Game selection), [`src/pages/SOSSetup.tsx`](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSSetup.tsx) (SOS setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_entry["React entry<br/>[main.tsx]"]
  node_router["Routes and toaster<br/>[App.tsx]"]
  node_home["Game selection<br/>[Index.tsx]"]
end

subgraph group_sos["SOS game"]
  node_setup["SOS setup<br/>[SOSSetup.tsx]"]
  node_sosgame["SOS gameplay<br/>[SOSGame.tsx]"]
end

subgraph group_puzzles["Puzzle content"]
  node_puzzlepage["SOS puzzles<br/>[SOSPuzzles.tsx]"]
  node_puzzledata["Puzzle definitions<br/>[puzzles.ts]"]
end

subgraph group_tombola["Tombola scaffold"]
  node_auth["Tombola auth<br/>[TombolaAuth.tsx]"]
  node_lobby["Tombola lobby<br/>[TombolaLobby.tsx]"]
  node_room["Tombola room<br/>[TombolaRoom.tsx]"]
  node_tombolagame["Tombola game<br/>[TombolaGame.tsx]"]
  node_browserstore[("Browser local storage")]
  node_utils["Tombola utilities<br/>[utils.ts]"]
end

node_player(("Player"))

node_player -->|"opens app"| node_entry
node_entry -->|"renders"| node_router
node_router -->|"routes /"| node_home
node_router -->|"routes setup"| node_setup
node_router -->|"routes game"| node_sosgame
node_router -->|"routes puzzles"| node_puzzlepage
node_router -->|"routes auth"| node_auth
node_router -->|"routes lobby"| node_lobby
node_router -->|"routes room"| node_room
node_router -->|"routes game"| node_tombolagame
node_player -->|"selects game"| node_home
node_home -->|"starts SOS setup"| node_setup
node_setup -->|"starts game"| node_sosgame
node_player -->|"plays moves"| node_sosgame
node_player -->|"enters details"| node_auth
node_auth -->|"stores profile"| node_browserstore
node_auth -->|"navigates"| node_lobby
node_player -->|"plays Tombola"| node_tombolagame
node_tombolagame -->|"generates ticket"| node_utils

click node_entry "https://github.com/sravan99k/sos-bord-game/blob/main/src/main.tsx"
click node_router "https://github.com/sravan99k/sos-bord-game/blob/main/src/App.tsx"
click node_home "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/Index.tsx"
click node_setup "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSSetup.tsx"
click node_sosgame "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSGame.tsx"
click node_puzzlepage "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSPuzzles.tsx"
click node_puzzledata "https://github.com/sravan99k/sos-bord-game/blob/main/src/data/puzzles.ts"
click node_auth "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaAuth.tsx"
click node_lobby "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaLobby.tsx"
click node_room "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaRoom.tsx"
click node_tombolagame "https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaGame.tsx"
click node_utils "https://github.com/sravan99k/sos-bord-game/blob/main/src/lib/utils.ts"

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_entry,node_router,node_home toneBlue
class node_setup,node_sosgame toneAmber
class node_puzzlepage,node_puzzledata toneMint
class node_auth,node_lobby,node_room,node_tombolagame,node_browserstore,node_utils toneRose
class node_player toneIndigo
```

## Components

### App shell

- [React entry](https://github.com/sravan99k/sos-bord-game/blob/main/src/main.tsx): `src/main.tsx`
- [Routes and toaster](https://github.com/sravan99k/sos-bord-game/blob/main/src/App.tsx): `src/App.tsx`
- [Game selection](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/Index.tsx): `src/pages/Index.tsx`

### SOS game

- [SOS setup](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSSetup.tsx): `src/pages/SOSSetup.tsx`
- [SOS gameplay](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSGame.tsx): `src/pages/SOSGame.tsx`

### Puzzle content

- [SOS puzzles](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/SOSPuzzles.tsx): `src/pages/SOSPuzzles.tsx`
- [Puzzle definitions](https://github.com/sravan99k/sos-bord-game/blob/main/src/data/puzzles.ts): `src/data/puzzles.ts`

### Tombola scaffold

- [Tombola auth](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaAuth.tsx): `src/pages/TombolaAuth.tsx`
- [Tombola lobby](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaLobby.tsx): `src/pages/TombolaLobby.tsx`
- [Tombola room](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaRoom.tsx): `src/pages/TombolaRoom.tsx`
- [Tombola game](https://github.com/sravan99k/sos-bord-game/blob/main/src/pages/TombolaGame.tsx): `src/pages/TombolaGame.tsx`
- **Browser local storage**
- [Tombola utilities](https://github.com/sravan99k/sos-bord-game/blob/main/src/lib/utils.ts): `src/lib/utils.ts`

### Other components

- **Player**

## Connections

- Player → React entry: opens app
- React entry → Routes and toaster: renders
- Routes and toaster → Game selection: routes /
- Routes and toaster → SOS setup: routes setup
- Routes and toaster → SOS gameplay: routes game
- Routes and toaster → SOS puzzles: routes puzzles
- Routes and toaster → Tombola auth: routes auth
- Routes and toaster → Tombola lobby: routes lobby
- Routes and toaster → Tombola room: routes room
- Routes and toaster → Tombola game: routes game
- Player → Game selection: selects game
- Game selection → SOS setup: starts SOS setup
- SOS setup → SOS gameplay: starts game
- Player → SOS gameplay: plays moves
- Player → Tombola auth: enters details
- Tombola auth → Browser local storage: stores profile
- Tombola auth → Tombola lobby: navigates
- Player → Tombola game: plays Tombola
- Tombola game → Tombola utilities: generates ticket
