Описание работы над проектом

Материал из Wiki - Факультет компьютерных наук
Версия от 12:08, 16 ноября 2025; Muzaffar Sadullaev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Проект 2025/2026

За советами и помощью всегда идите к автору проекта!!!


Зачем?

Чтобы научить вас делать минимально-максимальные проекты и быстро погрузиться в предметную область.

Этапы

Этап 1

Вам необходимо вписаться в проект в табличку. Там есть столбцы TL и Dev_n.

  • TL — лид команды. Выбирается внутри команды (или может быть назначен лектором).
  • Dev1, Dev2, Dev3, Dev4 — участники-разработчики.

Обязанности TL:

  • может меньше писать код и больше заниматься проектированием и ревью;
  • отвечает за выполнение задач командой;
  • может писать столько же кода, сколько остальные, обязанности могут быть формальными.

Этап 2

Необходимо проработать идею и перенести её в документацию.

Лид команды создаёт в своём репозитории на GitLab (где он делает ДЗ) папку: final_project и выкладывает туда Markdown-файл со схемами и описанием проекта.

Хороший пример — UML, диаграммы Mermaid. Можно использовать сервис: https://mermaid-drawing.com/

К 25 ноября 2025 года 23:59 необходимо:

  1. Закоммитить документацию, включающую:
    1. графики и схемы взаимодействия вашей системы;
    2. описание проекта:
      1. что будет видеть пользователь;
      2. какие задачи необходимо выполнить;
      3. сколько времени потребуется на каждую задачу;
      4. кто что делает в команде.
  2. Скинуть репозиторий на GitHub, где будет вестись разработка.

Ссылки на GitLab с документацией и задачами размещаются в той же таблице, куда вы вписывались.

Вес этапа: 20%. Если его не сдать — преподаватели не смогут провалидировать идею и оценка на защите может сильно пострадать.


Этап 3

(Мог начаться параллельно со 2 этапом.) Это реализация проекта.

У вас был хороший пример структуры в ДЗ-1 и ДЗ-2 — примерно такую же ожидаем здесь.

Полезные best practices: https://github.com/topics/python-template

Требования:

  1. Структура проекта должна быть валидной (как в ДЗ2).
  2. Минимум бойлерплейта — соблюдайте принцип DRY.
  3. По возможности следовать SOLID (см. лекцию №2).
  4. Код должен быть покрыт тестами, coverage ≥ 65%.
  5. По минимуму писать функций и по максимуму использовать ООП.
  6. Использовать паттерны, которые проходили.
  7. Ваше приложение должно жить в докере (dockerhub)
  8. По возможности приложение должно быть развернуто в облачной среде. Если потребуется виртуалка, пишите https://t.me/turbomuza

Отдельное требование к ботам:

  1. Бот должен быть написан на aiogram
  2. Бот должен быть покрыт тестами
  3. Секреты бота должны быть скрыты от внешнего мира и подружены с .gitignore => внешний мир чтобы их никогда не увидел

Отдельное требование по БД:

  1. Секреты (логин и пароль) к БД должны быть спрятаны
  2. Схемы должны быть отрисованы в документации (на момент защиты должна быть в документации актуальная схема БД)
  3. Должно быть ассинхронное подключение
  4. Никаких сырых запросов, используем slqalchemy

Отдельное требование к МЛ:

  1. Обучающие данные должны быть закомичены
  2. Pypeline обучения (ваши джупитеры) должны быть закомичены
  3. Моделька должна быть куда-то выложена


Вес этапа: 50%. Дедлайн: 20.12.2025, 23:59

К итогу дедлайна должен быть сделан последний коммит, а если потребуются последующие, то только минимальные по исправлению багов и мелких доработок, не повлекшие к существенному изменению архитектуры проекта.


Этап 4

После завершения реализации проекта необходимо подготовиться к защите.

TL команды собирает достижения всех участников и свои, описывает их в документе в папке: final_project

Дедлайн: 18.12.2025, 23:59 Вес этапа: 30%.


Этап 5

Защита будет проходить в один из дней декабря 2025 (точная дата TDB).

Вы приходите в назначенный пулл, рассказываете всё, что сделали, отвечаете на вопросы преподавателя или ассистента.

Работоспособность вашего кода влияет на оценку в коэффициент с кодом

Продуктовая составляющая влияет на оценку в коэффициент с защитой


После этого получаете оценку и идёте отдыхать. :)

Итог

  Oитог = 0,2 * Дока + 0,5 * код + 0,3 * Защита