# habalulu223/techpulse architecture

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

- Interactive diagram: https://gitdiagram.com/habalulu223/techpulse
- Repository: https://github.com/habalulu223/techpulse

## Overview

PyPondo/Techpuls is a role-based equipment, bookings, payments, and PC-café management system, with a React/Capacitor mobile client for server discovery, QR scanning, and mobile workflows. The main server is a Flask application; its sampled source shows database-backed routes, LAN/PC support, and community-equipment status handling. The source excerpts do not expose most route implementations or mobile API calls, so those capability branches are included from the repository tree but their unverified connections are dashed.

Main entry points: [`PythonProject/app.py`](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py) (Flask application), [`PyPondoMobile/pypondo-web/src/App.tsx`](https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/App.tsx) (Mobile interface), [`PyPondoMobile/pypondo-web/src/discovery.ts`](https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/discovery.ts) (Server discovery), [`PythonProject/profile_routes.py`](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/profile_routes.py) (Profile routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mobile["Mobile client"]
  node_mobile_app["Mobile interface<br/>[App.tsx]"]
  node_bootstrap["React bootstrap<br/>[main.tsx]"]
  node_discovery["Server discovery<br/>[discovery.ts]"]
  node_scanner["QR scanner<br/>[scanner.ts]"]
end

subgraph group_server["Web server"]
  node_server["Flask application<br/>[app.py]"]
  node_profile["Profile routes<br/>[profile_routes.py]"]
  node_database[("Application databases")]
  node_auth["Authentication<br/>[app.py]"]
  node_role_dashboards["Role dashboards"]
end

subgraph group_operations["Equipment and operations"]
  node_bookings["Bookings"]
  node_payments["Payments"]
  node_equipment["Equipment inventory"]
  node_community_equipment["Community equipment"]
  node_pc_management["PC management<br/>[app.py]"]
end

subgraph group_desktop["Desktop clients"]
  node_desktop_shell["Desktop shell<br/>[desktop_app.py]"]
end

node_mobile_user(("Mobile user"))
node_desktop_user(("Desktop user"))
node_network{{"LAN server"}}

node_mobile_user -->|"uses"| node_mobile_app
node_bootstrap -->|"renders"| node_mobile_app
node_mobile_app -->|"discovers servers"| node_discovery
node_mobile_app -->|"scans codes"| node_scanner
node_discovery -->|"probes server info"| node_network
node_mobile_app -.->|"requests mobile services"| node_server
node_server -->|"registers routes"| node_profile
node_server -->|"reads and writes"| node_database
node_profile -->|"reads and writes"| node_database
node_server -.->|"handles sign-in"| node_auth
node_server -.->|"renders pages"| node_role_dashboards
node_server -.->|"serves booking pages"| node_bookings
node_server -.->|"serves payment pages"| node_payments
node_server -.->|"serves inventory pages"| node_equipment
node_server -.->|"updates status"| node_community_equipment
node_server -.->|"handles PC operations"| node_pc_management
node_desktop_user -.->|"uses"| node_desktop_shell
node_desktop_shell -.->|"hosts client UI"| node_server

click node_mobile_app "https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/App.tsx"
click node_bootstrap "https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/main.tsx"
click node_discovery "https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/discovery.ts"
click node_scanner "https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/scanner.ts"
click node_server "https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py"
click node_profile "https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/profile_routes.py"
click node_database "https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/instance"
click node_auth "https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py"
click node_role_dashboards "https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates"
click node_bookings "https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates"
click node_payments "https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates"
click node_equipment "https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates"
click node_community_equipment "https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/templates/community_equipment.html"
click node_pc_management "https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py"
click node_desktop_shell "https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/desktop_app.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_mobile_app,node_bootstrap,node_discovery,node_scanner,node_mobile_user,node_desktop_user toneBlue
class node_server,node_profile,node_database,node_auth,node_role_dashboards toneAmber
class node_bookings,node_payments,node_equipment,node_community_equipment,node_pc_management,node_network toneMint
class node_desktop_shell toneRose
```

## Components

### Mobile client

- [Mobile interface](https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/App.tsx): `PyPondoMobile/pypondo-web/src/App.tsx`
- [React bootstrap](https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/main.tsx): `PyPondoMobile/pypondo-web/src/main.tsx`
- [Server discovery](https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/discovery.ts): `PyPondoMobile/pypondo-web/src/discovery.ts`
- [QR scanner](https://github.com/habalulu223/techpulse/blob/thesis/PyPondoMobile/pypondo-web/src/scanner.ts): `PyPondoMobile/pypondo-web/src/scanner.ts`

### Web server

- [Flask application](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py): `PythonProject/app.py`
- [Profile routes](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/profile_routes.py): `PythonProject/profile_routes.py`
- [Application databases](https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/instance): `PythonProject/instance`
- [Authentication](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py): `PythonProject/app.py`
- [Role dashboards](https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates): `PythonProject/templates`

### Equipment and operations

- [Bookings](https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates): `PythonProject/templates`
- [Payments](https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates): `PythonProject/templates`
- [Equipment inventory](https://github.com/habalulu223/techpulse/tree/thesis/PythonProject/templates): `PythonProject/templates`
- [Community equipment](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/templates/community_equipment.html): `PythonProject/templates/community_equipment.html`
- [PC management](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/app.py): `PythonProject/app.py`

### Desktop clients

- [Desktop shell](https://github.com/habalulu223/techpulse/blob/thesis/PythonProject/desktop_app.py): `PythonProject/desktop_app.py`

### Other components

- **Mobile user**
- **Desktop user**
- **LAN server**

## Connections

- Mobile user → Mobile interface: uses
- React bootstrap → Mobile interface: renders (evidence: `PyPondoMobile/pypondo-web/src/main.tsx`)
- Mobile interface → Server discovery: discovers servers (evidence: `PyPondoMobile/pypondo-web/src/App.tsx`)
- Mobile interface → QR scanner: scans codes (evidence: `PyPondoMobile/pypondo-web/src/App.tsx`)
- Server discovery → LAN server: probes server info (evidence: `PyPondoMobile/pypondo-web/src/discovery.ts`)
- Mobile interface → Flask application: requests mobile services
- Flask application → Profile routes: registers routes (evidence: `PythonProject/app.py`)
- Flask application → Application databases: reads and writes (evidence: `PythonProject/app.py`)
- Profile routes → Application databases: reads and writes (evidence: `PythonProject/profile_routes.py`)
- Flask application → Authentication: handles sign-in (evidence: `PythonProject/app.py`)
- Flask application → Role dashboards: renders pages
- Flask application → Bookings: serves booking pages
- Flask application → Payments: serves payment pages
- Flask application → Equipment inventory: serves inventory pages
- Flask application → Community equipment: updates status
- Flask application → PC management: handles PC operations (evidence: `PythonProject/app.py`)
- Desktop user → Desktop shell: uses
- Desktop shell → Flask application: hosts client UI (evidence: `PythonProject/desktop_app.py`)
