# kunalll0/isea-phase3-tezpuruniversity-syncchat architecture

> Architecture diagram of the GitHub repository kunalll0/isea-phase3-tezpuruniversity-syncchat, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kunalll0/isea-phase3-tezpuruniversity-syncchat
- Repository: https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat

## Overview

SyncChat is a Tkinter desktop client paired with a multithreaded TCP chat server. Users register or log in, connect to the server, and exchange broadcast or private messages; the server also tracks online users, handles commands, and records chat and security activity. The README additionally documents configurable deployment and benchmark/scalability evaluation. Several capabilities are documented but their implementation was not sampled, so those links reflect documentation rather than inspected calls; Mininet and Wireshark are shown as analysis tools, not runtime dependencies.

Main entry points: [`server.py`](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py) (Client sessions), [`client_gui.py`](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/client_gui.py) (GUI and chat), [`performance_test.py`](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/performance_test.py) (Benchmark runner), [`chat_history.csv`](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/chat_history.csv) (Chat history)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Desktop Client"]
  node_gui["GUI and chat<br/>[client_gui.py]"]
  node_client_auth["Account and login<br/>[client_gui.py]"]
end

subgraph group_server["Chat Server"]
  node_tcp_server["TCP listener<br/>[server.py]"]
  node_session["Client sessions<br/>[server.py]"]
  node_message_commands["Messages and commands<br/>[server.py]"]
  node_config["Runtime settings<br/>[config.json]"]
end

subgraph group_identity["Identity and Records"]
  node_users[("User records<br/>[users.csv]")]
  node_history[("Chat history<br/>[chat_history.csv]")]
  node_chat_log[("Chat event log<br/>[chat_log.txt]")]
  node_security_log[("Security log<br/>[security_log.txt]")]
end

subgraph group_evaluation["Performance Evaluation"]
  node_benchmark["Benchmark runner"]
  node_results[("Benchmark results")]
  node_graphs["Metric graphs"]
end

node_user(("Chat user"))
node_mininet["Mininet"]
node_wireshark["Wireshark"]

node_user -->|"uses"| node_gui
node_gui -->|"submits credentials"| node_client_auth
node_client_auth -.->|"registers accounts"| node_users
node_client_auth -->|"connects and logs in"| node_tcp_server
node_config -->|"configures listener"| node_tcp_server
node_tcp_server -->|"accepts clients"| node_session
node_session -->|"records login events"| node_security_log
node_session -->|"records connections"| node_chat_log
node_session -->|"records membership"| node_history
node_session -->|"sends user updates"| node_gui
node_gui -->|"sends chat and commands"| node_message_commands
node_message_commands -->|"sends messages and replies"| node_gui
node_message_commands -->|"reads and writes history"| node_history
node_message_commands -->|"records messages"| node_chat_log
node_benchmark -.->|"records metrics"| node_results
node_benchmark -.->|"generates graphs"| node_graphs
node_mininet -.->|"emulates network"| node_tcp_server
node_wireshark -.->|"inspects traffic"| node_tcp_server

click node_gui "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/client_gui.py"
click node_client_auth "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/client_gui.py"
click node_tcp_server "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py"
click node_session "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py"
click node_message_commands "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py"
click node_config "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/config.json"
click node_users "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/users.csv"
click node_history "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/chat_history.csv"
click node_chat_log "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/chat_log.txt"
click node_security_log "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/security_log.txt"
click node_benchmark "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/performance_test.py"
click node_results "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/performance_results.csv"
click node_graphs "https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/tree/main/graphs"

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_gui,node_client_auth,node_user toneBlue
class node_tcp_server,node_session,node_message_commands,node_config toneAmber
class node_users,node_history,node_chat_log,node_security_log toneMint
class node_benchmark,node_results,node_graphs toneRose
class node_mininet,node_wireshark toneIndigo
```

## Components

### Desktop Client

- [GUI and chat](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/client_gui.py): `client_gui.py`
- [Account and login](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/client_gui.py): `client_gui.py`

### Chat Server

- [TCP listener](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py): `server.py`
- [Client sessions](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py): `server.py`
- [Messages and commands](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/server.py): `server.py`
- [Runtime settings](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/config.json): `config.json`

### Identity and Records

- [User records](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/users.csv): `users.csv`
- [Chat history](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/chat_history.csv): `chat_history.csv`
- [Chat event log](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/chat_log.txt): `chat_log.txt`
- [Security log](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/security_log.txt): `security_log.txt`

### Performance Evaluation

- [Benchmark runner](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/performance_test.py): `performance_test.py`
- [Benchmark results](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/blob/main/performance_results.csv): `performance_results.csv`
- [Metric graphs](https://github.com/kunalll0/isea-phase3-tezpuruniversity-syncchat/tree/main/graphs): `graphs`

### Other components

- **Chat user**
- **Mininet**
- **Wireshark**

## Connections

- Chat user → GUI and chat: uses
- GUI and chat → Account and login: submits credentials
- Account and login → User records: registers accounts
- Account and login → TCP listener: connects and logs in
- Runtime settings → TCP listener: configures listener
- TCP listener → Client sessions: accepts clients
- Client sessions → Security log: records login events
- Client sessions → Chat event log: records connections
- Client sessions → Chat history: records membership
- Client sessions → GUI and chat: sends user updates
- GUI and chat → Messages and commands: sends chat and commands
- Messages and commands → GUI and chat: sends messages and replies
- Messages and commands → Chat history: reads and writes history
- Messages and commands → Chat event log: records messages
- Benchmark runner → Benchmark results: records metrics
- Benchmark runner → Metric graphs: generates graphs
- Mininet → TCP listener: emulates network
- Wireshark → TCP listener: inspects traffic
