# syprisilla/industry-academia-project architecture

> Architecture diagram of the GitHub repository syprisilla/industry-academia-project, 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/syprisilla/industry-academia-project
- Repository: https://github.com/syprisilla/industry-academia-project

## Overview

This repository appears to contain a Ren’Py game, with chapter scripts, battle-related modules, interface assets, and pronunciation/database support. The README does not describe the gameplay workflow, and the supplied excerpts do not show how the game scripts connect, so those relationships are left unspecified. The visible database server handles player creation and writes to SQLite; the database file is generated at runtime and is not present in the tree.

Main entry points: [`game/python/db_server.py`](https://github.com/syprisilla/industry-academia-project/blob/main/game/python/db_server.py) (Player API server)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gameplay["Game content"]
  node_intro["Introduction<br/>[intro.rpy]"]
  node_chapters["Chapter flow<br/>[chapter.rpy]"]
  node_chapter1["Chapter one<br/>[chapter1.rpy]"]
  node_chapter2["Chapter two<br/>[chapter2.rpy]"]
  node_chapter3["Chapter three<br/>[chapter3.rpy]"]
  node_battlemanager["Battle manager<br/>[battle_manager.rpy]"]
  node_battle["Battle system<br/>[battle.rpy]"]
  node_success["Battle success<br/>[success.rpy]"]
  node_failure["Battle failure<br/>[failure.rpy]"]
  node_unrecognized["Unrecognized input<br/>[unrecognized.rpy]"]
end

subgraph group_interface["Game interface"]
  node_screens["Game screens<br/>[screens.rpy]"]
  node_gui["GUI theme<br/>[gui.rpy]"]
end

subgraph group_support["Game support"]
  node_words["Word data<br/>[words.json]"]
  node_pronunciation["Pronunciation system<br/>[pronunciation.rpy]"]
  node_game_state["Game state<br/>[game_state.rpy]"]
  node_voice["Voice engine<br/>[voice_engine.py]"]
end

subgraph group_storage["Player storage"]
  node_dbserver["Player API server<br/>[db_server.py]"]
  node_playerdb[("SQLite player store")]
end

node_player(("Player"))

node_dbserver -->|"writes player"| node_playerdb

click node_intro "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/intro.rpy"
click node_chapters "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter.rpy"
click node_chapter1 "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter1.rpy"
click node_chapter2 "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter2.rpy"
click node_chapter3 "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter3.rpy"
click node_battlemanager "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/battle_manager.rpy"
click node_battle "https://github.com/syprisilla/industry-academia-project/blob/main/game/systems/battle.rpy"
click node_success "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/success.rpy"
click node_failure "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/failure.rpy"
click node_unrecognized "https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/unrecognized.rpy"
click node_screens "https://github.com/syprisilla/industry-academia-project/blob/main/game/screens.rpy"
click node_gui "https://github.com/syprisilla/industry-academia-project/blob/main/game/gui.rpy"
click node_words "https://github.com/syprisilla/industry-academia-project/blob/main/game/data/words.json"
click node_pronunciation "https://github.com/syprisilla/industry-academia-project/blob/main/game/systems/pronunciation.rpy"
click node_game_state "https://github.com/syprisilla/industry-academia-project/blob/main/game/systems/game_state.rpy"
click node_voice "https://github.com/syprisilla/industry-academia-project/blob/main/game/python/voice_engine.py"
click node_dbserver "https://github.com/syprisilla/industry-academia-project/blob/main/game/python/db_server.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_intro,node_chapters,node_chapter1,node_chapter2,node_chapter3,node_battlemanager,node_battle,node_success,node_failure,node_unrecognized toneBlue
class node_screens,node_gui toneAmber
class node_words,node_pronunciation,node_game_state,node_voice toneMint
class node_dbserver,node_playerdb toneRose
class node_player toneIndigo
```

## Components

### Game content

- [Introduction](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/intro.rpy): `game/scripts/intro.rpy`
- [Chapter flow](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter.rpy): `game/scripts/chapter.rpy`
- [Chapter one](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter1.rpy): `game/scripts/chapter1.rpy`
- [Chapter two](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter2.rpy): `game/scripts/chapter2.rpy`
- [Chapter three](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/chapter3.rpy): `game/scripts/chapter3.rpy`
- [Battle manager](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/battle_manager.rpy): `game/scripts/battle/battle_manager.rpy`
- [Battle system](https://github.com/syprisilla/industry-academia-project/blob/main/game/systems/battle.rpy): `game/systems/battle.rpy`
- [Battle success](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/success.rpy): `game/scripts/battle/success.rpy`
- [Battle failure](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/failure.rpy): `game/scripts/battle/failure.rpy`
- [Unrecognized input](https://github.com/syprisilla/industry-academia-project/blob/main/game/scripts/battle/unrecognized.rpy): `game/scripts/battle/unrecognized.rpy`

### Game interface

- [Game screens](https://github.com/syprisilla/industry-academia-project/blob/main/game/screens.rpy): `game/screens.rpy`
- [GUI theme](https://github.com/syprisilla/industry-academia-project/blob/main/game/gui.rpy): `game/gui.rpy`

### Game support

- [Word data](https://github.com/syprisilla/industry-academia-project/blob/main/game/data/words.json): `game/data/words.json`
- [Pronunciation system](https://github.com/syprisilla/industry-academia-project/blob/main/game/systems/pronunciation.rpy): `game/systems/pronunciation.rpy`
- [Game state](https://github.com/syprisilla/industry-academia-project/blob/main/game/systems/game_state.rpy): `game/systems/game_state.rpy`
- [Voice engine](https://github.com/syprisilla/industry-academia-project/blob/main/game/python/voice_engine.py): `game/python/voice_engine.py`

### Player storage

- [Player API server](https://github.com/syprisilla/industry-academia-project/blob/main/game/python/db_server.py): `game/python/db_server.py`
- **SQLite player store**

### Other components

- **Player**

## Connections

- Player API server → SQLite player store: writes player (evidence: `game/python/db_server.py`)
