# pxxthik/python-oop-projects architecture

> Architecture diagram of the GitHub repository pxxthik/python-oop-projects, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pxxthik/python-oop-projects
- Repository: https://github.com/pxxthik/python-oop-projects

## Overview

This repository is a set of independent Python OOP example projects rather than one integrated application. The map shows the principal user-to-result workflows supported by the tree and sampled source. Some project internals are unsampled, so their nodes are included where the tree supports them, but uncertain runtime connections are omitted.

Main entry points: [`Calorie_Webapp/main.py`](https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/main.py) (Calorie Web App), [`Cinema_Ticket_Booking/main.py`](https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py) (Ticket Booking), [`Automated_Emails/main.py`](https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/main.py) (News Emailer), [`Flatmates_Bill/flatmates_bill/main.py`](https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/main.py) (Bill CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web Applications"]
  node_billweb["Bill Web App<br/>[main.py]"]
  node_billcalc["Bill Calculation<br/>[flat.py]"]
  node_billtemplates["Bill Pages"]
  node_calorieweb["Calorie Web App<br/>[main.py]"]
  node_temperature["Temperature Lookup<br/>[temperature.py]"]
  node_calorie["Calorie Calculation<br/>[calorie.py]"]
  node_calorietemplates["Calorie Pages"]
  node_dictweb["Dictionary Web App<br/>[main.py]"]
  node_dictpage["Dictionary Page<br/>[dictionary.py]"]
  node_dictapi["Dictionary API<br/>[main.py]"]
  node_api_service["API Service<br/>[api.py]"]
  node_definition["Word Definitions<br/>[definition.py]"]
end

subgraph group_business["Business Workflows"]
  node_cinema["Ticket Booking<br/>[main.py]"]
  node_seatdb[("Cinema Seat Store<br/>[cinema.db]")]
  node_bankdb[("Card Balance Store<br/>[banking.db]")]
  node_payment["Card Validation<br/>[main.py]"]
  node_ticket["PDF Ticket<br/>[main.py]"]
  node_emailapp["News Emailer<br/>[main.py]"]
  node_contacts[("Recipient List<br/>[people.xlsx]")]
  node_news["News Feed<br/>[news.py]"]
  node_billcli["Bill CLI<br/>[main.py]"]
  node_billreport["Bill Report<br/>[reports.py]"]
end

subgraph group_media["Media Apps"]
  node_photoapp["Photo Searcher<br/>[main.py]"]
  node_cameraapp["Webcam Photo Sharer<br/>[main.py]"]
  node_sharemodule["Photo File Sharing<br/>[filesharer.py]"]
end

subgraph group_learning["Interactive Examples"]
  node_mathpaint["Shape Painter<br/>[main.py]"]
  node_shapes["Shape Models<br/>[shapes.py]"]
  node_canvas["Canvas Renderer<br/>[canvas.py]"]
  node_geometry["Geometry Game<br/>[main.py]"]
end

node_person(("User"))
node_mailservice["Email Service"]
node_fileservice["File Sharing Service"]
node_wiki["Wikipedia"]
node_imagehost["Image Source"]

node_person -->|"submits bill"| node_billweb
node_billweb -->|"calculates shares"| node_billcalc
node_billweb -->|"renders results"| node_billtemplates
node_person -->|"enters details"| node_calorieweb
node_calorieweb -->|"gets temperature"| node_temperature
node_calorieweb -->|"calculates calories"| node_calorie
node_calorieweb -->|"renders result"| node_calorietemplates
node_person -->|"requests definition"| node_dictweb
node_dictweb -->|"registers routes"| node_dictpage
node_dictpage -->|"requests definition"| node_api_service
node_person -->|"requests API"| node_dictapi
node_dictapi -->|"routes API"| node_api_service
node_person -->|"selects seat"| node_cinema
node_cinema -->|"checks and updates"| node_seatdb
node_cinema -->|"validates card"| node_payment
node_payment -->|"reads and updates balance"| node_bankdb
node_cinema -->|"generates ticket"| node_ticket
node_person -->|"starts email workflow"| node_emailapp
node_emailapp -->|"reads recipients"| node_contacts
node_emailapp -->|"gets news"| node_news
node_emailapp -.->|"sends email"| node_mailservice
node_person -->|"enters bill details"| node_billcli
node_billcli -->|"calculates shares"| node_billcalc
node_billcli -->|"generates PDF"| node_billreport
node_billcli -.->|"shares report"| node_fileservice
node_person -->|"searches image"| node_photoapp
node_photoapp -.->|"looks up page"| node_wiki
node_photoapp -.->|"downloads image"| node_imagehost
node_person -->|"captures photo"| node_cameraapp
node_cameraapp -->|"uploads photo"| node_sharemodule
node_sharemodule -.->|"shares link"| node_fileservice
node_person -->|"draws shapes"| node_mathpaint
node_mathpaint -->|"creates shapes"| node_shapes
node_mathpaint -->|"renders drawing"| node_canvas
node_person -->|"guesses point and area"| node_geometry

click node_billweb "https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/main.py"
click node_billcalc "https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/flat.py"
click node_billtemplates "https://github.com/pxxthik/python-oop-projects/tree/master/Flatmates_Bill/templates"
click node_calorieweb "https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/main.py"
click node_temperature "https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/temperature.py"
click node_calorie "https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/calorie.py"
click node_calorietemplates "https://github.com/pxxthik/python-oop-projects/tree/master/Calorie_Webapp/templates"
click node_dictweb "https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_Webapp/main.py"
click node_dictpage "https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_Webapp/webapp/dictionary.py"
click node_dictapi "https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_API/main.py"
click node_api_service "https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_API/api.py"
click node_definition "https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_Webapp/definition.py"
click node_cinema "https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py"
click node_seatdb "https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/cinema.db"
click node_bankdb "https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/banking.db"
click node_payment "https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py"
click node_ticket "https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py"
click node_emailapp "https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/main.py"
click node_contacts "https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/people.xlsx"
click node_news "https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/news.py"
click node_billcli "https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/main.py"
click node_billreport "https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/reports.py"
click node_photoapp "https://github.com/pxxthik/python-oop-projects/blob/master/Photo_Searcher/main.py"
click node_cameraapp "https://github.com/pxxthik/python-oop-projects/blob/master/Webcam_Photo_Sharer/main.py"
click node_sharemodule "https://github.com/pxxthik/python-oop-projects/blob/master/Webcam_Photo_Sharer/filesharer.py"
click node_mathpaint "https://github.com/pxxthik/python-oop-projects/blob/master/Math_Painting/main.py"
click node_shapes "https://github.com/pxxthik/python-oop-projects/blob/master/Math_Painting/shapes.py"
click node_canvas "https://github.com/pxxthik/python-oop-projects/blob/master/Math_Painting/canvas.py"
click node_geometry "https://github.com/pxxthik/python-oop-projects/blob/master/Geometry_Game/main.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_billweb,node_billcalc,node_billtemplates,node_calorieweb,node_temperature,node_calorie,node_calorietemplates,node_dictweb,node_dictpage,node_dictapi,node_api_service,node_definition,node_person toneBlue
class node_cinema,node_seatdb,node_bankdb,node_payment,node_ticket,node_emailapp,node_contacts,node_news,node_billcli,node_billreport toneAmber
class node_photoapp,node_cameraapp,node_sharemodule toneMint
class node_mathpaint,node_shapes,node_canvas,node_geometry toneRose
class node_mailservice,node_fileservice,node_wiki,node_imagehost toneIndigo
```

## Components

### Web Applications

- [Bill Web App](https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/main.py): `Flatmates_Bill/main.py`
- [Bill Calculation](https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/flat.py): `Flatmates_Bill/flatmates_bill/flat.py`
- [Bill Pages](https://github.com/pxxthik/python-oop-projects/tree/master/Flatmates_Bill/templates): `Flatmates_Bill/templates`
- [Calorie Web App](https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/main.py): `Calorie_Webapp/main.py`
- [Temperature Lookup](https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/temperature.py): `Calorie_Webapp/temperature.py`
- [Calorie Calculation](https://github.com/pxxthik/python-oop-projects/blob/master/Calorie_Webapp/calorie.py): `Calorie_Webapp/calorie.py`
- [Calorie Pages](https://github.com/pxxthik/python-oop-projects/tree/master/Calorie_Webapp/templates): `Calorie_Webapp/templates`
- [Dictionary Web App](https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_Webapp/main.py): `Instant_Dictionary_Webapp/main.py`
- [Dictionary Page](https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_Webapp/webapp/dictionary.py): `Instant_Dictionary_Webapp/webapp/dictionary.py`
- [Dictionary API](https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_API/main.py): `Instant_Dictionary_API/main.py`
- [API Service](https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_API/api.py): `Instant_Dictionary_API/api.py`
- [Word Definitions](https://github.com/pxxthik/python-oop-projects/blob/master/Instant_Dictionary_Webapp/definition.py): `Instant_Dictionary_Webapp/definition.py`

### Business Workflows

- [Ticket Booking](https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py): `Cinema_Ticket_Booking/main.py`
- [Cinema Seat Store](https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/cinema.db): `Cinema_Ticket_Booking/cinema.db`
- [Card Balance Store](https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/banking.db): `Cinema_Ticket_Booking/banking.db`
- [Card Validation](https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py): `Cinema_Ticket_Booking/main.py`
- [PDF Ticket](https://github.com/pxxthik/python-oop-projects/blob/master/Cinema_Ticket_Booking/main.py): `Cinema_Ticket_Booking/main.py`
- [News Emailer](https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/main.py): `Automated_Emails/main.py`
- [Recipient List](https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/people.xlsx): `Automated_Emails/people.xlsx`
- [News Feed](https://github.com/pxxthik/python-oop-projects/blob/master/Automated_Emails/news.py): `Automated_Emails/news.py`
- [Bill CLI](https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/main.py): `Flatmates_Bill/flatmates_bill/main.py`
- [Bill Report](https://github.com/pxxthik/python-oop-projects/blob/master/Flatmates_Bill/flatmates_bill/reports.py): `Flatmates_Bill/flatmates_bill/reports.py`

### Media Apps

- [Photo Searcher](https://github.com/pxxthik/python-oop-projects/blob/master/Photo_Searcher/main.py): `Photo_Searcher/main.py`
- [Webcam Photo Sharer](https://github.com/pxxthik/python-oop-projects/blob/master/Webcam_Photo_Sharer/main.py): `Webcam_Photo_Sharer/main.py`
- [Photo File Sharing](https://github.com/pxxthik/python-oop-projects/blob/master/Webcam_Photo_Sharer/filesharer.py): `Webcam_Photo_Sharer/filesharer.py`

### Interactive Examples

- [Shape Painter](https://github.com/pxxthik/python-oop-projects/blob/master/Math_Painting/main.py): `Math_Painting/main.py`
- [Shape Models](https://github.com/pxxthik/python-oop-projects/blob/master/Math_Painting/shapes.py): `Math_Painting/shapes.py`
- [Canvas Renderer](https://github.com/pxxthik/python-oop-projects/blob/master/Math_Painting/canvas.py): `Math_Painting/canvas.py`
- [Geometry Game](https://github.com/pxxthik/python-oop-projects/blob/master/Geometry_Game/main.py): `Geometry_Game/main.py`

### Other components

- **User**
- **Email Service**
- **File Sharing Service**
- **Wikipedia**
- **Image Source**

## Connections

- User → Bill Web App: submits bill
- Bill Web App → Bill Calculation: calculates shares
- Bill Web App → Bill Pages: renders results
- User → Calorie Web App: enters details
- Calorie Web App → Temperature Lookup: gets temperature
- Calorie Web App → Calorie Calculation: calculates calories
- Calorie Web App → Calorie Pages: renders result
- User → Dictionary Web App: requests definition
- Dictionary Web App → Dictionary Page: registers routes
- Dictionary Page → API Service: requests definition
- User → Dictionary API: requests API
- Dictionary API → API Service: routes API
- User → Ticket Booking: selects seat
- Ticket Booking → Cinema Seat Store: checks and updates
- Ticket Booking → Card Validation: validates card
- Card Validation → Card Balance Store: reads and updates balance
- Ticket Booking → PDF Ticket: generates ticket
- User → News Emailer: starts email workflow
- News Emailer → Recipient List: reads recipients
- News Emailer → News Feed: gets news
- News Emailer → Email Service: sends email
- User → Bill CLI: enters bill details
- Bill CLI → Bill Calculation: calculates shares
- Bill CLI → Bill Report: generates PDF
- Bill CLI → File Sharing Service: shares report
- User → Photo Searcher: searches image
- Photo Searcher → Wikipedia: looks up page
- Photo Searcher → Image Source: downloads image
- User → Webcam Photo Sharer: captures photo
- Webcam Photo Sharer → Photo File Sharing: uploads photo
- Photo File Sharing → File Sharing Service: shares link
- User → Shape Painter: draws shapes
- Shape Painter → Shape Models: creates shapes
- Shape Painter → Canvas Renderer: renders drawing
- User → Geometry Game: guesses point and area
