# berker00/sudokusolver architecture

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

## Overview

Sudoku Solver is a browser-based puzzle solver supporting 4×4, 9×9, and 16×16 boards. The user enters clues, the client validates the board, and Solve submits it to the server; the server validates and solves it with backtracking, then returns the solution for display. The client also checks API health and supports clearing or restoring the puzzle. Source excerpts show the client-to-API calls and the API-to-solver call; no persistence layer is present.

Main entry points: [`client/src/App.jsx`](https://github.com/berker00/sudokusolver/blob/main/client/src/App.jsx) (Board UI), [`server/index.js`](https://github.com/berker00/sudokusolver/blob/main/server/index.js) (HTTP API), [`server/solveSudoku.js`](https://github.com/berker00/sudokusolver/blob/main/server/solveSudoku.js) (Sudoku Solver), [`client/src/main.jsx`](https://github.com/berker00/sudokusolver/blob/main/client/src/main.jsx) (React Bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Browser Client"]
  node_app["Board UI<br/>[App.jsx]"]
  node_bootstrap["React Bootstrap<br/>[main.jsx]"]
end

subgraph group_server["Solver Service"]
  node_api["HTTP API<br/>[index.js]"]
  node_solver["Sudoku Solver<br/>[solveSudoku.js]"]
end

node_user(("Puzzle User"))

node_user -->|"enters clues"| node_app
node_bootstrap -->|"renders"| node_app
node_app -->|"checks health"| node_api
node_api -->|"returns health"| node_app
node_app -->|"submits board"| node_api
node_api -->|"calls solver"| node_solver
node_solver -->|"returns solution"| node_api
node_api -->|"returns solution"| node_app
node_app -->|"shows solution"| node_user

click node_app "https://github.com/berker00/sudokusolver/blob/main/client/src/App.jsx"
click node_bootstrap "https://github.com/berker00/sudokusolver/blob/main/client/src/main.jsx"
click node_api "https://github.com/berker00/sudokusolver/blob/main/server/index.js"
click node_solver "https://github.com/berker00/sudokusolver/blob/main/server/solveSudoku.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_bootstrap,node_user toneBlue
class node_api,node_solver toneAmber
```

## Components

### Browser Client

- [Board UI](https://github.com/berker00/sudokusolver/blob/main/client/src/App.jsx): `client/src/App.jsx`
- [React Bootstrap](https://github.com/berker00/sudokusolver/blob/main/client/src/main.jsx): `client/src/main.jsx`

### Solver Service

- [HTTP API](https://github.com/berker00/sudokusolver/blob/main/server/index.js): `server/index.js`
- [Sudoku Solver](https://github.com/berker00/sudokusolver/blob/main/server/solveSudoku.js): `server/solveSudoku.js`

### Other components

- **Puzzle User**

## Connections

- Puzzle User → Board UI: enters clues
- React Bootstrap → Board UI: renders
- Board UI → HTTP API: checks health
- HTTP API → Board UI: returns health
- Board UI → HTTP API: submits board
- HTTP API → Sudoku Solver: calls solver
- Sudoku Solver → HTTP API: returns solution
- HTTP API → Board UI: returns solution
- Board UI → Puzzle User: shows solution
