# taufikurrshoab/software-engineering-game-project architecture

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

- Interactive diagram: https://gitdiagram.com/taufikurrshoab/software-engineering-game-project
- Repository: https://github.com/taufikurrshoab/software-engineering-game-project

## Overview

This is a Django web application combining student planning and skill development with browser-based games and algorithm visualizations. Users enter through web pages, configure academic or learning data, or interact with a game/visualization; server-side views handle documented puzzle and AI-game requests, while visualization algorithms run in JavaScript. The sampled sources establish the academic and puzzle workflows and the two game-AI calls. Several other routes and skill services are indexed but not shown, so their connections are left unverified rather than inferred.

Main entry points: [`academic/views.py`](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/views.py) (Semester dashboard), [`academic/models.py`](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/models.py) (Semester records), [`academic/forms.py`](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/forms.py) (Semester forms), [`puzzle8/views.py`](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/views.py) (Puzzle gameplay)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planning["Academic planning"]
  node_academic_views["Semester dashboard<br/>[views.py]"]
  node_academic_forms["Semester forms<br/>[forms.py]"]
  node_academic_models[("Semester records<br/>[models.py]")]
  node_academic_ui["Academic interface"]
end

subgraph group_learning["Skill development"]
  node_skill_views["Skill workflows<br/>[views.py]"]
  node_assessment_views["Assessment workflows"]
  node_assessment_services["Assessment services"]
  node_skill_forms["Skill forms<br/>[forms.py]"]
  node_skill_models[("Skill records<br/>[models.py]")]
  node_adaptive["Adaptive learning<br/>[adaptive.py]"]
  node_recommendations["Learning suggestions<br/>[recommendations.py]"]
  node_skill_ui["Skill interface"]
end

subgraph group_games["Interactive games"]
  node_puzzle_views["Puzzle gameplay<br/>[views.py]"]
  node_puzzle_solver["A-star solver<br/>[solver.py]"]
  node_puzzle_ui["Puzzle interface<br/>[puzzle8.js]"]
  node_dots_views["Dots gameplay<br/>[views.py]"]
  node_dots_ai["Dots AI<br/>[ai.py]"]
  node_dots_ui["Dots interface<br/>[app.js]"]
  node_ttt_views["Tic-tac-toe gameplay<br/>[views.py]"]
  node_ttt_ai["Tic-tac-toe AI<br/>[ai.py]"]
  node_ttt_ui["Tic-tac-toe interface<br/>[app.js]"]
end

subgraph group_visualization["Algorithm visualization"]
  node_visual_views["Visualization pages<br/>[views.py]"]
  node_visual_algorithms["Search visualizers"]
end

subgraph group_platform["Web platform"]
  node_signup["Account signup<br/>[views.py]"]
  node_dashboard["Site dashboard<br/>[views.py]"]
end

node_student(("Student"))

node_student -.->|"opens dashboard"| node_academic_views
node_academic_views -->|"reads semester"| node_academic_models
node_academic_views -->|"validates setup"| node_academic_forms
node_academic_forms -->|"models forms"| node_academic_models
node_academic_views -->|"saves schedule"| node_academic_models
node_student -.->|"manages skills"| node_skill_views
node_student -.->|"takes assessment"| node_assessment_views
node_student -.->|"plays puzzle"| node_puzzle_views
node_puzzle_views -->|"solves board"| node_puzzle_solver
node_student -.->|"plays dots"| node_dots_views
node_dots_views -->|"requests AI moves"| node_dots_ai
node_student -.->|"plays game"| node_ttt_views
node_ttt_views -->|"requests move"| node_ttt_ai
node_student -.->|"opens visualizer"| node_visual_views
node_student -.->|"creates account"| node_signup
node_student -.->|"opens dashboard"| node_dashboard

click node_academic_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/views.py"
click node_academic_forms "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/forms.py"
click node_academic_models "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/models.py"
click node_academic_ui "https://github.com/taufikurrshoab/software-engineering-game-project/tree/main/academic/static/academic"
click node_skill_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/views.py"
click node_assessment_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/assessment_views.py"
click node_assessment_services "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/assessment_services.py"
click node_skill_forms "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/forms.py"
click node_skill_models "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/models.py"
click node_adaptive "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/adaptive.py"
click node_recommendations "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/recommendations.py"
click node_skill_ui "https://github.com/taufikurrshoab/software-engineering-game-project/tree/main/skill/static/skill"
click node_puzzle_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/views.py"
click node_puzzle_solver "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/solver.py"
click node_puzzle_ui "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/static/js/puzzle8.js"
click node_dots_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/dots_and_boxes/views.py"
click node_dots_ai "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/dots_and_boxes/ai.py"
click node_dots_ui "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/dots_and_boxes/static/dots_and_boxes/app.js"
click node_ttt_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/tic_tac_toe/views.py"
click node_ttt_ai "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/tic_tac_toe/ai.py"
click node_ttt_ui "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/tic_tac_toe/static/tic_tac_toe/app.js"
click node_visual_views "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/visual_lab/views.py"
click node_visual_algorithms "https://github.com/taufikurrshoab/software-engineering-game-project/tree/main/visual_lab/static/visual_lab"
click node_signup "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/accounts/views.py"
click node_dashboard "https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/core/views.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_academic_views,node_academic_forms,node_academic_models,node_academic_ui toneBlue
class node_skill_views,node_assessment_views,node_assessment_services,node_skill_forms,node_skill_models,node_adaptive,node_recommendations,node_skill_ui toneAmber
class node_puzzle_views,node_puzzle_solver,node_puzzle_ui,node_dots_views,node_dots_ai,node_dots_ui,node_ttt_views,node_ttt_ai,node_ttt_ui toneMint
class node_visual_views,node_visual_algorithms toneRose
class node_signup,node_dashboard,node_student toneIndigo
```

## Components

### Academic planning

- [Semester dashboard](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/views.py): `academic/views.py`
- [Semester forms](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/forms.py): `academic/forms.py`
- [Semester records](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/academic/models.py): `academic/models.py`
- [Academic interface](https://github.com/taufikurrshoab/software-engineering-game-project/tree/main/academic/static/academic): `academic/static/academic`

### Skill development

- [Skill workflows](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/views.py): `skill/views.py`
- [Assessment workflows](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/assessment_views.py): `skill/assessment_views.py`
- [Assessment services](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/assessment_services.py): `skill/assessment_services.py`
- [Skill forms](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/forms.py): `skill/forms.py`
- [Skill records](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/models.py): `skill/models.py`
- [Adaptive learning](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/adaptive.py): `skill/adaptive.py`
- [Learning suggestions](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/skill/recommendations.py): `skill/recommendations.py`
- [Skill interface](https://github.com/taufikurrshoab/software-engineering-game-project/tree/main/skill/static/skill): `skill/static/skill`

### Interactive games

- [Puzzle gameplay](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/views.py): `puzzle8/views.py`
- [A-star solver](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/solver.py): `puzzle8/solver.py`
- [Puzzle interface](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/puzzle8/static/js/puzzle8.js): `puzzle8/static/js/puzzle8.js`
- [Dots gameplay](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/dots_and_boxes/views.py): `dots_and_boxes/views.py`
- [Dots AI](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/dots_and_boxes/ai.py): `dots_and_boxes/ai.py`
- [Dots interface](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/dots_and_boxes/static/dots_and_boxes/app.js): `dots_and_boxes/static/dots_and_boxes/app.js`
- [Tic-tac-toe gameplay](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/tic_tac_toe/views.py): `tic_tac_toe/views.py`
- [Tic-tac-toe AI](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/tic_tac_toe/ai.py): `tic_tac_toe/ai.py`
- [Tic-tac-toe interface](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/tic_tac_toe/static/tic_tac_toe/app.js): `tic_tac_toe/static/tic_tac_toe/app.js`

### Algorithm visualization

- [Visualization pages](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/visual_lab/views.py): `visual_lab/views.py`
- [Search visualizers](https://github.com/taufikurrshoab/software-engineering-game-project/tree/main/visual_lab/static/visual_lab): `visual_lab/static/visual_lab`

### Web platform

- [Account signup](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/accounts/views.py): `accounts/views.py`
- [Site dashboard](https://github.com/taufikurrshoab/software-engineering-game-project/blob/main/core/views.py): `core/views.py`

### Other components

- **Student**

## Connections

- Student → Semester dashboard: opens dashboard
- Semester dashboard → Semester records: reads semester (evidence: `academic/views.py`)
- Semester dashboard → Semester forms: validates setup (evidence: `academic/views.py`)
- Semester forms → Semester records: models forms (evidence: `academic/forms.py`)
- Semester dashboard → Semester records: saves schedule (evidence: `academic/views.py`)
- Student → Skill workflows: manages skills
- Student → Assessment workflows: takes assessment
- Student → Puzzle gameplay: plays puzzle
- Puzzle gameplay → A-star solver: solves board (evidence: `puzzle8/views.py`)
- Student → Dots gameplay: plays dots
- Dots gameplay → Dots AI: requests AI moves (evidence: `dots_and_boxes/views.py`)
- Student → Tic-tac-toe gameplay: plays game
- Tic-tac-toe gameplay → Tic-tac-toe AI: requests move (evidence: `tic_tac_toe/views.py`)
- Student → Visualization pages: opens visualizer
- Student → Account signup: creates account
- Student → Site dashboard: opens dashboard
