# hrigoriu/cybersecurity_goit_school architecture

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

- Interactive diagram: https://gitdiagram.com/hrigoriu/cybersecurity_goit_school
- Repository: https://github.com/hrigoriu/cybersecurity_goit_school

## Overview

#### Repository Scope
This is a personal, multi-language learning repository rather than one deployable product. It contains Python Core and Python Web coursework, standalone homework projects, small games, JavaScript/Node examples, and Rust crates. Most directories are independent exercises with their own runtime, dependencies, and entry point.

#### Python Core Curriculum and CLI Projects
`Cybersecurity/Python_Core_2.0` is organized as sequential Python lessons: language basics, flow control, standard library use, files, functional programming, OOP, and serialization. Lesson scripts are standalone executable examples rather than a shared package.
- `Cybersecurity/Python_Core_2.0/1. Модуль 1. Вступ до Python/lesson_1.py`
- `Cybersecurity/Python_Core_2.0/4. Модуль 4. Робота з файлами та модульна система/lesson_01(Робота з файлами та обробка винятків).py`
- `Cybersecurity/Python_Core_2.0/8. Модуль 8. Серіалізація та копіювання об'єктів в Python/lesson_03(JSON).py`

Address-book bots are the main reusable CLI-style applications in this area. Their control flow is typically command input → handler dispatch → domain models/address book → pickle/file persistence and logs.
- `Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/main.py`
- `Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/handlers.py`
- `Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/address_book.py`

#### Python Web Curriculum
`Cybersecurity/Python_web_2.0` broadens the coursework into engineering patterns, packaging, Docker, concurrency, networking, async I/O, databases, scraping, Django, and FastAPI. These are separate runnable examples; there is no repository-wide Python application or dependency manifest.
- `Cybersecurity/Python_web_2.0/02. Модуль 2. Python Development/ClassWork/project2_poetry_docker/main.py`
- `Cybersecurity/Python_web_2.0/05. Модуль 5. Асинхронне програмування/websockets_exemple/exmpl_1/server.py`
- `Cybersecurity/Python_web_2.0/09. Модуль 9. Web-scraping/ClassWork/project_02/test_spyder/scrapy.cfg`

#### Persistence and Data Boundaries
Storage approaches vary by exercise: local pickle/JSON files for contact bots, SQLite databases for relational and ORM examples, and migrations for schema evolution. MongoDB and Redis appear as lesson subjects; their actual configured use cannot be established from the tree alone.
- `Cybersecurity/Python_web_2.0/06. Модуль 6. Реляційні бази даних/ClassWork/project1_sqlite/test.db`
- `Cybersecurity/Python_web_2.0/07. Модуль 7. ORM SQLAIchemy/ClassWork/project2_alembic/models.py`
- `Cybersecurity/Python_web_2.0/07. Модуль 7. ORM SQLAIchemy/ClassWork/project2_alembic/alembic/versions/180f1f9389b3_init.py`

#### Web Applications and APIs
Several independent web implementations demonstrate distinct boundary layers:
- Django routes requests through project URL configuration, app views/forms/models, templates, and SQLite-backed migrations. `Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/manage.py`, `Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/noteapp/views.py`, `Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/noteapp/models.py`.
- FastAPI projects use a layered HTTP route → schema → repository → database model flow. `Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/main.py`, `Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/src/routes/notes.py`, `Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/src/repository/notes.py`.
- The contact API homework follows the same separation with service mediation. `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/main.py`, `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/api/contacts.py`, `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/services/contact.py`.

#### Runtimes and Infrastructure
Primary runtime is Python, using pip/Poetry/Pipenv metadata per subproject. Docker files and Compose files package selected exercises, not the repository as a whole. Node.js powers the isolated Pokémon frontend/backend demo, while Rust projects are Cargo crates. No shared CI, deployment, or centralized service infrastructure is visible.
- `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-02-flask/Dockerfile`
- `Cybersecurity/Python_web_2.0/pokemon/tech-pm-pokemon/backend/server.js`
- `RUST/course_private/pbversion1/Cargo.toml`

#### Practical Entry Points
Run from each project directory using its native entry point: Python scripts or framework launchers, Node server startup metadata, and Cargo binaries. Do not treat root-level `alembic.ini` or generated `target/`/`build/` directories as repository-wide architecture.
- `Cybersecurity/Python_Core_2.0/Home_Work/FinalProject_Go_IT/__main__.py`
- `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-10/task_01/manage.py`
- `RUST/course_private/pbversion1/src/main.rs`

Main entry points: [`Cybersecurity/Python_Core_2.0/8. Модуль 8. Серіалізація та копіювання об'єктів в Python/lesson_03(JSON).py`](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/8.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%208.%20%D0%A1%D0%B5%D1%80%D1%96%D0%B0%D0%BB%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F%20%D1%82%D0%B0%20%D0%BA%D0%BE%D0%BF%D1%96%D1%8E%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D0%BE%D0%B1'%D1%94%D0%BA%D1%82%D1%96%D0%B2%20%D0%B2%20Python/lesson_03(JSON).py) (Files & JSON lessons), [`Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/handlers.py`](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/handlers.py) (Command handlers), [`Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/noteapp/views.py`](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/noteapp/views.py) (Django views), [`Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/src/routes/notes.py`](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/src/routes/notes.py) (Notes routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_python_core["Python Core"]
  node_core_lessons["Sequential Python lessons<br/>Python scripts<br/>[lesson_1.py]"]
  node_file_serialization_lessons["Files &amp; JSON lessons<br/>Python scripts<br/>[lesson_03&#40;JSON&#41;.py]"]
  node_contact_bot_cli["Contact bot CLI<br/>Python entry point<br/>[main.py]"]
  node_contact_bot_handlers["Command handlers<br/>Python dispatch layer<br/>[handlers.py]"]
  node_address_book["Address book domain<br/>Python domain model<br/>[address_book.py]"]
  node_final_cli_project["Final CLI project<br/>Python module entry point<br/>[__main__.py]"]
end

subgraph group_python_web["Python Web"]
  node_web_course_examples["Web engineering examples<br/>Python projects<br/>[main.py]"]
  node_websocket_server["WebSocket server example<br/>async Python server<br/>[server.py]"]
  node_scraping_project["Scrapy project<br/>web scraping pipeline<br/>[scrapy.cfg]"]
  node_sqlite_exercise_db[("SQLite exercise DB<br/>SQLite database<br/>[test.db]")]
  node_orm_models["ORM models<br/>SQLAlchemy models<br/>[models.py]"]
  node_alembic_migration["Schema migration<br/>Alembic migration"]
  node_django_app["Django notes app<br/>Django application<br/>[manage.py]"]
  node_django_views["Django views<br/>Django HTTP layer<br/>[views.py]"]
  node_django_models["Django models<br/>Django persistence model<br/>[models.py]"]
  node_fastapi_notes["FastAPI notes API<br/>FastAPI entry point<br/>[main.py]"]
  node_fastapi_routes["Notes routes<br/>FastAPI route layer<br/>[notes.py]"]
  node_fastapi_repository["Notes repository<br/>FastAPI data layer<br/>[notes.py]"]
  node_contact_api["Contact API homework<br/>FastAPI application<br/>[main.py]"]
  node_contact_api_routes["Contact API routes<br/>HTTP route layer<br/>[contacts.py]"]
  node_contact_service["Contact service<br/>service layer<br/>[contact.py]"]
end

subgraph group_other_runtimes["Other Runtimes"]
  node_node_pokemon["Pokémon backend demo<br/>Node.js server<br/>[server.js]"]
  node_rust_crate{{"Rust Cargo crate<br/>Rust binary<br/>[main.rs]"}}
end

node_core_lessons -.->|"progresses to"| node_file_serialization_lessons
node_contact_bot_cli -->|"dispatches commands"| node_contact_bot_handlers
node_contact_bot_handlers -->|"updates contacts"| node_address_book
node_file_serialization_lessons -.->|"illustrates persistence concepts"| node_address_book
node_orm_models -->|"evolves schema with"| node_alembic_migration
node_django_app -->|"launches request handling"| node_django_views
node_django_views -->|"uses"| node_django_models
node_fastapi_notes -->|"registers"| node_fastapi_routes
node_fastapi_routes -->|"delegates data access"| node_fastapi_repository
node_contact_api -->|"registers"| node_contact_api_routes
node_contact_api_routes -->|"delegates operations"| node_contact_service

click node_core_lessons "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/1.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%201.%20%D0%92%D1%81%D1%82%D1%83%D0%BF%20%D0%B4%D0%BE%20Python/lesson_1.py"
click node_file_serialization_lessons "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/8.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%208.%20%D0%A1%D0%B5%D1%80%D1%96%D0%B0%D0%BB%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F%20%D1%82%D0%B0%20%D0%BA%D0%BE%D0%BF%D1%96%D1%8E%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D0%BE%D0%B1'%D1%94%D0%BA%D1%82%D1%96%D0%B2%20%D0%B2%20Python/lesson_03(JSON).py"
click node_contact_bot_cli "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/main.py"
click node_contact_bot_handlers "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/handlers.py"
click node_address_book "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/address_book.py"
click node_final_cli_project "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/FinalProject_Go_IT/__main__.py"
click node_web_course_examples "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/02.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%202.%20Python%20Development/ClassWork/project2_poetry_docker/main.py"
click node_websocket_server "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/05.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%205.%20%D0%90%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/websockets_exemple/exmpl_1/server.py"
click node_scraping_project "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/09.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%209.%20Web-scraping/ClassWork/project_02/test_spyder/scrapy.cfg"
click node_sqlite_exercise_db "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/06.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%206.%20%D0%A0%D0%B5%D0%BB%D1%8F%D1%86%D1%96%D0%B9%D0%BD%D1%96%20%D0%B1%D0%B0%D0%B7%D0%B8%20%D0%B4%D0%B0%D0%BD%D0%B8%D1%85/ClassWork/project1_sqlite/test.db"
click node_orm_models "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/07.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%207.%20ORM%20SQLAIchemy/ClassWork/project2_alembic/models.py"
click node_alembic_migration "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/07.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%207.%20ORM%20SQLAIchemy/ClassWork/project2_alembic/alembic/versions/180f1f9389b3_init.py"
click node_django_app "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/manage.py"
click node_django_views "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/noteapp/views.py"
click node_django_models "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/noteapp/models.py"
click node_fastapi_notes "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/main.py"
click node_fastapi_routes "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/src/routes/notes.py"
click node_fastapi_repository "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/src/repository/notes.py"
click node_contact_api "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/main.py"
click node_contact_api_routes "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/api/contacts.py"
click node_contact_service "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/services/contact.py"
click node_node_pokemon "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/pokemon/tech-pm-pokemon/backend/server.js"
click node_rust_crate "https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/RUST/course_private/pbversion1/src/main.rs"

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_core_lessons,node_file_serialization_lessons,node_contact_bot_cli,node_contact_bot_handlers,node_address_book,node_final_cli_project toneBlue
class node_web_course_examples,node_websocket_server,node_scraping_project,node_sqlite_exercise_db,node_orm_models,node_alembic_migration,node_django_app,node_django_views,node_django_models,node_fastapi_notes,node_fastapi_routes,node_fastapi_repository,node_contact_api,node_contact_api_routes,node_contact_service toneAmber
class node_node_pokemon,node_rust_crate toneMint
```

## Components

### Python Core

Standalone lessons and CLI coursework.

- [Sequential Python lessons](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/1.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%201.%20%D0%92%D1%81%D1%82%D1%83%D0%BF%20%D0%B4%D0%BE%20Python/lesson_1.py): Python scripts · Standalone language and standard-library examples. · `Cybersecurity/Python_Core_2.0/1. Модуль 1. Вступ до Python/lesson_1.py`
- [Files & JSON lessons](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/8.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%208.%20%D0%A1%D0%B5%D1%80%D1%96%D0%B0%D0%BB%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F%20%D1%82%D0%B0%20%D0%BA%D0%BE%D0%BF%D1%96%D1%8E%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%20%D0%BE%D0%B1'%D1%94%D0%BA%D1%82%D1%96%D0%B2%20%D0%B2%20Python/lesson_03(JSON).py): Python scripts · `Cybersecurity/Python_Core_2.0/8. Модуль 8. Серіалізація та копіювання об'єктів в Python/lesson_03(JSON).py`
- [Contact bot CLI](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/main.py): Python entry point · `Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/main.py`
- [Command handlers](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/handlers.py): Python dispatch layer · `Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/handlers.py`
- [Address book domain](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/address_book.py): Python domain model · `Cybersecurity/Python_Core_2.0/Home_Work/MyProjectContactBot/address_book.py`
- [Final CLI project](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_Core_2.0/Home_Work/FinalProject_Go_IT/__main__.py): Python module entry point · `Cybersecurity/Python_Core_2.0/Home_Work/FinalProject_Go_IT/__main__.py`

### Python Web

Independent web, data, and API exercises.

- [Web engineering examples](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/02.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%202.%20Python%20Development/ClassWork/project2_poetry_docker/main.py): Python projects · Packaging, Docker, concurrency, networking, and async exercises. · `Cybersecurity/Python_web_2.0/02. Модуль 2. Python Development/ClassWork/project2_poetry_docker/main.py`
- [WebSocket server example](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/05.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%205.%20%D0%90%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/websockets_exemple/exmpl_1/server.py): async Python server · `Cybersecurity/Python_web_2.0/05. Модуль 5. Асинхронне програмування/websockets_exemple/exmpl_1/server.py`
- [Scrapy project](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/09.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%209.%20Web-scraping/ClassWork/project_02/test_spyder/scrapy.cfg): web scraping pipeline · `Cybersecurity/Python_web_2.0/09. Модуль 9. Web-scraping/ClassWork/project_02/test_spyder/scrapy.cfg`
- [SQLite exercise DB](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/06.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%206.%20%D0%A0%D0%B5%D0%BB%D1%8F%D1%86%D1%96%D0%B9%D0%BD%D1%96%20%D0%B1%D0%B0%D0%B7%D0%B8%20%D0%B4%D0%B0%D0%BD%D0%B8%D1%85/ClassWork/project1_sqlite/test.db): SQLite database · `Cybersecurity/Python_web_2.0/06. Модуль 6. Реляційні бази даних/ClassWork/project1_sqlite/test.db`
- [ORM models](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/07.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%207.%20ORM%20SQLAIchemy/ClassWork/project2_alembic/models.py): SQLAlchemy models · `Cybersecurity/Python_web_2.0/07. Модуль 7. ORM SQLAIchemy/ClassWork/project2_alembic/models.py`
- [Schema migration](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/07.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%207.%20ORM%20SQLAIchemy/ClassWork/project2_alembic/alembic/versions/180f1f9389b3_init.py): Alembic migration · `Cybersecurity/Python_web_2.0/07. Модуль 7. ORM SQLAIchemy/ClassWork/project2_alembic/alembic/versions/180f1f9389b3_init.py`
- [Django notes app](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/manage.py): Django application · Views and models serve a separate notes project. · `Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/manage.py`
- [Django views](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/noteapp/views.py): Django HTTP layer · `Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/noteapp/views.py`
- [Django models](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/10.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2010.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8%20%D0%B7%20Django/ClassWork/project2/notes/noteapp/models.py): Django persistence model · `Cybersecurity/Python_web_2.0/10. Модуль 10. Основи роботи з Django/ClassWork/project2/notes/noteapp/models.py`
- [FastAPI notes API](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/main.py): FastAPI entry point · `Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/main.py`
- [Notes routes](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/src/routes/notes.py): FastAPI route layer · `Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/src/routes/notes.py`
- [Notes repository](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/11.%20%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%2011.%20%D0%9F%D0%BE%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%20REST%20API%20%D0%BD%D0%B0%20FastAPI/ClassWork/project2/src/repository/notes.py): FastAPI data layer · `Cybersecurity/Python_web_2.0/11. Модуль 11. Побудова REST API на FastAPI/ClassWork/project2/src/repository/notes.py`
- [Contact API homework](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/main.py): FastAPI application · API delegates contact operations through a service layer. · `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/main.py`
- [Contact API routes](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/api/contacts.py): HTTP route layer · `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/api/contacts.py`
- [Contact service](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/services/contact.py): service layer · `Cybersecurity/Python_web_2.0/Home_Work/goit-pyweb-hw-11/task_01/task_01/app/services/contact.py`

### Other Runtimes

Isolated Node.js and Rust projects.

- [Pokémon backend demo](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/Cybersecurity/Python_web_2.0/pokemon/tech-pm-pokemon/backend/server.js): Node.js server · `Cybersecurity/Python_web_2.0/pokemon/tech-pm-pokemon/backend/server.js`
- [Rust Cargo crate](https://github.com/hrigoriu/cybersecurity_goit_school/blob/main/RUST/course_private/pbversion1/src/main.rs): Rust binary · `RUST/course_private/pbversion1/src/main.rs`

## Connections

- Sequential Python lessons → Files & JSON lessons: progresses to
- Contact bot CLI → Command handlers: dispatches commands
- Command handlers → Address book domain: updates contacts
- Files & JSON lessons → Address book domain: illustrates persistence concepts
- ORM models → Schema migration: evolves schema with
- Django notes app → Django views: launches request handling
- Django views → Django models: uses
- FastAPI notes API → Notes routes: registers
- Notes routes → Notes repository: delegates data access
- Contact API homework → Contact API routes: registers
- Contact API routes → Contact service: delegates operations
