Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / tz.md
Created February 21, 2026 10:12
ТЗ

Технічне завдання на розробку веб-додатку "TradeHub"

1. Загальна інформація

1.1. Назва проекту

TradeHub – торгова площадка для купівлі та продажу товарів, натхненна платформами типу Monobazar / OLX.

1.2. Назва команди

MarketMasters

1.3. Список учасників команди

@sunmeat
sunmeat / task.md
Created February 20, 2026 14:03
ДЗ на MVT в пайтон

У цьому домашньому завданні потрібно реалізувати один з наведених нижче додатків, використовуючи архітектурний патерн MVT (Model-View-Template). Оскільки ми поки що не використовували фреймворк Django, реалізуйте додаток у консольному варіанті (використовуючи стандартний ввід/вивід Python або бібліотеку Textual), або десктопній версії (наприклад, з використанням бібліотеки Tkinter/PySide6 для графічного інтерфейсу), або веб-фреймворк Flask.

Ключові Вимоги до MVT-Патерну:

  • Model: Класи або структури для зберігання та маніпуляції даними (наприклад, списки, словники, класи Python для бази даних у пам'яті або файлах).

  • View: Логіка для відображення даних користувачу (консольний вивід, таблиці в терміналі або вікна/форми/сторінки).

  • Template: Шаблони для форматування виводу (наприклад, рядки з форматуванням для консолі або шаблони для GUI).

  • Додаткові Вимоги:

    • Використовуйте Python 3.14.
  • Зберігайте дані в пам'яті, файлах (наприклад, JSON/CSV) або простій базі даних (як

@sunmeat
sunmeat / app.py
Created February 20, 2026 13:20
MVT (flask)
from flask import Flask, request, redirect, url_for, render_template_string
app = Flask(__name__)
# ────────────────────────────────────────────────
# model — дані та бізнес-логіка
# ────────────────────────────────────────────────
class ShoppingModel:
@sunmeat
sunmeat / app.py
Created February 20, 2026 13:14
MVT (pyside6)
import sys
import ctypes
if sys.platform == "win32":
console = ctypes.windll.kernel32.GetConsoleWindow()
if console:
ctypes.windll.user32.ShowWindow(console, 0)
from PySide6.QtWidgets import (
QApplication, QMainWindow, QWidget,
@sunmeat
sunmeat / app.py
Created February 20, 2026 13:05
MVT (textual)
from textual.app import App, ComposeResult, on
from textual.widgets import Header, Footer, Button, Input, Static, Label, Rule
from textual.containers import Vertical, Horizontal, ScrollableContainer
from textual.screen import Screen
# ────────────────────────────────────────────────
# Model
# ────────────────────────────────────────────────
class ShoppingModel:
@sunmeat
sunmeat / app.py
Created February 20, 2026 12:40
консольний приклад на MVT в пайтон
# Model: зберігає та маніпулює даними
class ShoppingModel:
def __init__(self):
self.items = [] # список покупок: [{'name': 'Яблука', 'quantity': 5, 'price': 77}]
def add_item(self, name, quantity, price):
self.items.append({'name': name, 'quantity': quantity, 'price': price})
def get_all_items(self):
return self.items
@sunmeat
sunmeat / view.py
Created February 19, 2026 13:51
альтернативне вью 1
# view.py
# py -m pip install rich (команда для терміналу PowerShell, якщо не встановлено)
from rich.console import Console
from rich.table import Table
from rich.prompt import Prompt, IntPrompt
console = Console(highlight=False) # глобальний об'єкт для зручності
@sunmeat
sunmeat / task.md
Last active February 18, 2026 12:56
ДЗ на поліморфізм в пайтон

Напишіть протокол TemperatureSensor з використанням typing.Protocol та декоратора @runtime_checkable, який визначає контракт для датчиків температури: два методи —

  • read_temperature() → float (повертає поточну температуру в градусах Цельсія)
  • get_sensor_id() → str (повертає унікальний ідентифікатор датчика)

Створіть чотири класи, що відповідають цьому протоколу:

  1. WeatherAPISensor
  • Ідентифікатор: "WAS26-Odesa"
@sunmeat
sunmeat / task.md
Created February 18, 2026 11:48
ДЗ на інкапсуляцію в пайтон

Інкапсуляція + Магічні методи + Пакети

Мета: закріпити інкапсуляцію (захист даних через _ та __), навчитися використовувати магічні методи для зручного інтерфейсу та організувати код у вигляді простого пакета.

Напишіть клас, який моделює реальний об’єкт із життя, де важливо захищати критичні дані та надавати зручний інтерфейс. Оберіть свій або один із трьох варіантів:

  • «Банківський рахунок»
  • «Термостат (обігрівач/кондиціонер)»
  • «Пароль користувача» (або «Обліковий запис користувача»)
@sunmeat
sunmeat / app.py
Created February 18, 2026 11:26
узагальнення в пайтон
from collections.abc import Iterable
from typing import Self
# узагальнений клас-стек (LIFO)
class Stack[T]:
def __init__(self) -> None:
self._items: list[T] = []
def push(self, item: T) -> None:
self._items.append(item)