Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created February 20, 2026 14:03
Show Gist options
  • Select an option

  • Save sunmeat/a864814aedae5ae838705b3babf493f7 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/a864814aedae5ae838705b3babf493f7 to your computer and use it in GitHub Desktop.
ДЗ на MVT в пайтон

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

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

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

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

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

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

    • Використовуйте Python 3.14.
    • Зберігайте дані в пам'яті, файлах (наприклад, JSON/CSV) або простій базі даних (як SQLite, якщо потрібно)*
    • Додаток повинен бути інтерактивним: меню для вибору дій, обробка помилок.
    • Документуйте код (коментарі) та додайте README.md з інструкцією запуску*
    • Оберіть один додаток зі списку нижче та реалізуйте його повністю.

Оберіть додаток, реалізуйте патерн, рішення викладіть в репозиторій GitHub.

Список Варіантів Додатків

1. Менеджер Контактів

  • Опис: Додаток для зберігання імен, номерів телефонів та email-адрес.
  • Функціональність:
    • Додавання нового контакту.
    • Пошук контакту за іменем або номером.
    • Видалення контакту.
    • Вивід усіх контактів у табличному форматі (використовуйте бібліотеку tabulate для консолі або таблицю в GUI).
  • MVT-Підхід: Model — клас Contact; View — функції для виводу; Template — форматовані рядки або форми.

2. Калькулятор Витрат

  • Опис: Додаток для відстеження доходів та витрат за категоріями.
  • Функціональність:
    • Ввід доходів/витрат з категоріями (наприклад, "їжа", "транспорт").
    • Розрахунок поточного балансу.
    • Звіти за період (використовуйте статичні дати, наприклад, за тиждень/місяць).
  • MVT-Підхід: Model — список транзакцій; View — звіти в таблиці; Template — форматування балансу.

3. Бібліотека Книг

  • Опис: Система для керування списком книг з авторами, роками видання та статусом (прочитано/не прочитано).
  • Функціональність:
    • Додавання/видалення книг.
    • Пошук за автором або назвою.
    • Рекомендації на основі жанрів (наприклад, випадковий вибір з жанру).
  • MVT-Підхід: Model — клас Book; View — список книг; Template — табличний вивід.

4. Гра в Слова

  • Опис: Гра, де генеруються слова для вгадування зі статичного словника.
  • Функціональність:
    • Генерація слова (наприклад, з файлу слів).
    • Підрахунок балів за вгадування.
    • Таблиця рекордів (топ-5 гравців).
  • MVT-Підхід: Model — словник слів; View — ігровий процес; Template — вивід балів.

5. Симулятор Погоди

  • Опис: Симуляція погоди для міст зі статичними даними (температура, опади).
  • Функціональність:
    • "Прогноз" на день (випадковий на основі статичних даних).
    • Порівняння погоди між містами.
    • Вивід у форматі таблиці.
  • MVT-Підхід: Model — дані про міста; View — прогноз; Template — порівняльна таблиця.

6. Квіз-Тест

  • Опис: Тест з питаннями та відповідями з певної теми (наприклад, програмування на пайтон).
  • Функціональність:
    • Питання з варіантами відповідей.
    • Підрахунок балів.
    • Повторення помилкових питань.
  • MVT-Підхід: Model — список питань; View — тестовий інтерфейс; Template — вивід результатів.

7. Менеджер Паролів

  • Опис: Проста система для генерації та зберігання паролів (в пам'яті або файлі).
  • Функціональність:
    • Генерація випадкових паролів.
    • Перевірка сили паролю (довжина, символи).
    • Експорт у текстовий файл.
  • MVT-Підхід: Model — зберігання паролів; View — інтерфейс; Template — формат експорту.

8. Календар Подій

  • Опис: Календар для додавання подій з датами та описами.
  • Функціональність:
    • Додавання/видалення подій.
    • Симуляція нагадувань (вивід на "сьогодні").
    • Вивід подій за тиждень/місяць.
  • MVT-Підхід: Model — клас Event; View — календарний вивід; Template — табличний формат.

В коментар до цього ДЗ надіслати посилання на публічний репозиторій з Вашим рішенням.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment