# victor-vp/basic-python-projects architecture

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

- Interactive diagram: https://gitdiagram.com/victor-vp/basic-python-projects
- Repository: https://github.com/victor-vp/basic-python-projects

## Overview

This repository is a collection of independent Python practice programs, not one integrated application. The common workflow is a user launching a script, entering records or queries, and viewing results; persistence varies across text, CSV, pickle, and MySQL examples, alongside in-memory data-structure exercises. The README also mentions an AI chatbot, but the file tree contains no chatbot source, so it is not represented. Runtime links follow documented behavior and sampled source; unsampled scripts are not treated as verified call flows.

Main entry points: [`fruits_file_search.py`](https://github.com/victor-vp/basic-python-projects/blob/General/fruits_file_search.py) (Fruit Search), [`text_file_crud.py`](https://github.com/victor-vp/basic-python-projects/blob/General/text_file_crud.py) (Text CRUD), [`products_csv_v1.py`](https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v1.py) (Products CSV v1), [`products_csv_v2.py`](https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v2.py) (Products CSV v2)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_text["Text Files"]
  node_text_crud["Text CRUD<br/>[text_file_crud.py]"]
  node_fruit_search["Fruit Search"]
  node_untitled["untitled.txt"]
  node_fruits_file["fruits.txt"]
  node_copy_file["copy.txt"]
end

subgraph group_csv["CSV Records"]
  node_products_v1["Products CSV v1<br/>[products_csv_v1.py]"]
  node_products_v2["Products CSV v2<br/>[products_csv_v2.py]"]
  node_products_v3["Products CSV v3<br/>[products_csv_v3.py]"]
  node_students_v1["Students CSV v1<br/>[students_csv_v1.py]"]
  node_students_v2["Students CSV v2<br/>[students_csv_v2.py]"]
  node_contacts["Contacts CSV<br/>[contacts_csv.py]"]
  node_products_file["products.csv"]
  node_students_file["students.csv"]
  node_contacts_file["contacts.csv"]
end

subgraph group_binary["Binary Records"]
  node_employee["Employee Records"]
  node_flight["Flight Records<br/>[flight_records.py]"]
  node_vehicle["Vehicle Records<br/>[vehicle_records.py]"]
  node_employee_file["binfile.dat"]
  node_flight_file["flights.dat"]
  node_vehicle_file["vehicles.dat"]
end

subgraph group_mysql["MySQL Records"]
  node_fees_db["Student Fees DB<br/>[student_fees_db.py]"]
  node_roll_db["Student Roll DB<br/>[student_roll_db.py]"]
  node_mysql_service[("MySQL test DB")]
end

subgraph group_memory["In-Memory Exercises"]
  node_stack["Stack Operations"]
  node_roll_list["Roll Number List"]
end

node_user(("User"))

node_user -->|"runs"| node_text_crud
node_user -->|"runs"| node_fruit_search
node_text_crud -->|"reads/writes"| node_untitled
node_fruit_search -->|"reads/writes"| node_fruits_file
node_fruit_search -->|"writes matches"| node_copy_file
node_user -->|"runs"| node_products_v1
node_user -->|"runs"| node_products_v2
node_user -->|"runs"| node_products_v3
node_products_v1 -->|"writes"| node_products_file
node_products_v2 -->|"reads/writes"| node_products_file
node_products_v3 -->|"searches/writes"| node_products_file
node_user -->|"runs"| node_students_v1
node_user -->|"runs"| node_students_v2
node_students_v1 -->|"reads/writes"| node_students_file
node_students_v2 -->|"reads/writes"| node_students_file
node_user -->|"runs"| node_contacts
node_contacts -->|"reads/writes"| node_contacts_file
node_user -->|"runs"| node_employee
node_user -->|"runs"| node_flight
node_user -->|"runs"| node_vehicle
node_employee -->|"reads/writes"| node_employee_file
node_flight -->|"reads/writes"| node_flight_file
node_vehicle -->|"reads/writes"| node_vehicle_file
node_user -->|"runs"| node_fees_db
node_user -->|"runs"| node_roll_db
node_fees_db -->|"queries"| node_mysql_service
node_roll_db -->|"queries"| node_mysql_service
node_user -->|"runs"| node_stack
node_user -->|"runs"| node_roll_list

click node_text_crud "https://github.com/victor-vp/basic-python-projects/blob/General/text_file_crud.py"
click node_fruit_search "https://github.com/victor-vp/basic-python-projects/blob/General/fruits_file_search.py"
click node_products_v1 "https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v1.py"
click node_products_v2 "https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v2.py"
click node_products_v3 "https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v3.py"
click node_students_v1 "https://github.com/victor-vp/basic-python-projects/blob/General/students_csv_v1.py"
click node_students_v2 "https://github.com/victor-vp/basic-python-projects/blob/General/students_csv_v2.py"
click node_contacts "https://github.com/victor-vp/basic-python-projects/blob/General/contacts_csv.py"
click node_employee "https://github.com/victor-vp/basic-python-projects/blob/General/employee_records.py"
click node_flight "https://github.com/victor-vp/basic-python-projects/blob/General/flight_records.py"
click node_vehicle "https://github.com/victor-vp/basic-python-projects/blob/General/vehicle_records.py"
click node_fees_db "https://github.com/victor-vp/basic-python-projects/blob/General/student_fees_db.py"
click node_roll_db "https://github.com/victor-vp/basic-python-projects/blob/General/student_roll_db.py"
click node_stack "https://github.com/victor-vp/basic-python-projects/blob/General/stack_operations.py"
click node_roll_list "https://github.com/victor-vp/basic-python-projects/blob/General/roll_number_list.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_text_crud,node_fruit_search,node_untitled,node_fruits_file,node_copy_file,node_user toneBlue
class node_products_v1,node_products_v2,node_products_v3,node_students_v1,node_students_v2,node_contacts,node_products_file,node_students_file,node_contacts_file toneAmber
class node_employee,node_flight,node_vehicle,node_employee_file,node_flight_file,node_vehicle_file toneMint
class node_fees_db,node_roll_db,node_mysql_service toneRose
class node_stack,node_roll_list toneIndigo
```

## Components

### Text Files

- [Text CRUD](https://github.com/victor-vp/basic-python-projects/blob/General/text_file_crud.py): `text_file_crud.py`
- [Fruit Search](https://github.com/victor-vp/basic-python-projects/blob/General/fruits_file_search.py): `fruits_file_search.py`
- **untitled.txt**
- **fruits.txt**
- **copy.txt**

### CSV Records

- [Products CSV v1](https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v1.py): `products_csv_v1.py`
- [Products CSV v2](https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v2.py): `products_csv_v2.py`
- [Products CSV v3](https://github.com/victor-vp/basic-python-projects/blob/General/products_csv_v3.py): `products_csv_v3.py`
- [Students CSV v1](https://github.com/victor-vp/basic-python-projects/blob/General/students_csv_v1.py): `students_csv_v1.py`
- [Students CSV v2](https://github.com/victor-vp/basic-python-projects/blob/General/students_csv_v2.py): `students_csv_v2.py`
- [Contacts CSV](https://github.com/victor-vp/basic-python-projects/blob/General/contacts_csv.py): `contacts_csv.py`
- **products.csv**
- **students.csv**
- **contacts.csv**

### Binary Records

- [Employee Records](https://github.com/victor-vp/basic-python-projects/blob/General/employee_records.py): `employee_records.py`
- [Flight Records](https://github.com/victor-vp/basic-python-projects/blob/General/flight_records.py): `flight_records.py`
- [Vehicle Records](https://github.com/victor-vp/basic-python-projects/blob/General/vehicle_records.py): `vehicle_records.py`
- **binfile.dat**
- **flights.dat**
- **vehicles.dat**

### MySQL Records

- [Student Fees DB](https://github.com/victor-vp/basic-python-projects/blob/General/student_fees_db.py): `student_fees_db.py`
- [Student Roll DB](https://github.com/victor-vp/basic-python-projects/blob/General/student_roll_db.py): `student_roll_db.py`
- **MySQL test DB**

### In-Memory Exercises

- [Stack Operations](https://github.com/victor-vp/basic-python-projects/blob/General/stack_operations.py): `stack_operations.py`
- [Roll Number List](https://github.com/victor-vp/basic-python-projects/blob/General/roll_number_list.py): `roll_number_list.py`

### Other components

- **User**

## Connections

- User → Text CRUD: runs
- User → Fruit Search: runs
- Text CRUD → untitled.txt: reads/writes
- Fruit Search → fruits.txt: reads/writes
- Fruit Search → copy.txt: writes matches
- User → Products CSV v1: runs
- User → Products CSV v2: runs
- User → Products CSV v3: runs
- Products CSV v1 → products.csv: writes
- Products CSV v2 → products.csv: reads/writes
- Products CSV v3 → products.csv: searches/writes
- User → Students CSV v1: runs
- User → Students CSV v2: runs
- Students CSV v1 → students.csv: reads/writes
- Students CSV v2 → students.csv: reads/writes
- User → Contacts CSV: runs
- Contacts CSV → contacts.csv: reads/writes
- User → Employee Records: runs
- User → Flight Records: runs
- User → Vehicle Records: runs
- Employee Records → binfile.dat: reads/writes
- Flight Records → flights.dat: reads/writes
- Vehicle Records → vehicles.dat: reads/writes
- User → Student Fees DB: runs
- User → Student Roll DB: runs
- Student Fees DB → MySQL test DB: queries
- Student Roll DB → MySQL test DB: queries
- User → Stack Operations: runs
- User → Roll Number List: runs
