- Контрибьюшен в любой open-source проект или библиотеку
- Контрибьюшен в Metarhia
- Проект студенческой группы или общественный проект в открытом коде
- Собственный open-source проект
- Любой язык.
- Любой технологический стек.
- Можно использовать любые зависимости.
- Репозиторий обязательно размещается на https://github.com в открытом доступе.
- Желательно делать групповые работы, для этого студенты объединяются в группы по 2-5 человек (могут быть внешние участники с других курсов, факультетов и вообще не из КПИ); группа может писать один общий проект или сделать перекрестный ревью кода индивидуальных проектов каждого участника группы. Пересмотрите:
- Проект не может быть одномоментно залит на гитхаб за день до сдачи, его нужно
вести в гитхабе на протяжении нескольких месяцев, чтобы была видна работа,
история коммитов и PR (pull request). Хорошо, если можно будет проследить
улучшение кодовой базы, рефакторинг и оптимизацию. Пересмотрите:
- Общие антипаттерны для всех парадигм, и
- Антипаттерны процедурного программирования;
- Лекция про рефакторинг.
- Хорошее ведение репозитория: issues, pull requests, milestones (см. кнопки на закладках issues и pr в github), discussions (не обязательно), kanban (средство планирования проекта, ищите на закладке project в github), wiki (не обязательно).
- Юниттесты (по желанию системные, интеграционные и нагрузочные тесты)
- CI (например: TravisCI, Github Actions)
- Лицензию и список контрибьютеров
- Хорошее ведение репозитория: issues, pull requests, (желательно milestones)
- Семантическое версионирование: https://semver.org/
- Ведем CHANGELOG.md
- И выпускаем версии в виде тегов
- Настроенный линтер (для js еще и prettier)
- Дотфайлы для системы контроля версий и менеджера пакетов
- Рекурсивное наблюдение за файловой системой: https://github.com/metarhia/metawatch
- Утилиты для интерфейса командной строки: https://github.com/metarhia/metacommand
- Хелпер (обертка) для node.js модуля vm: https://github.com/metarhia/metavm
- Query builder и миграции для Postgres: https://github.com/metarhia/metasql
- Сетевой протокол: https://github.com/metarhia/metacom
- Библиотека для логирования: https://github.com/metarhia/metalog
- Шаблонизатор: https://github.com/metarhia/tickplate
- Web-locks API (блокировки): https://github.com/metarhia/web-locks
- Библиотека для асинхронного программирования: https://github.com/metarhia/metasync
- Простые асинхронные абстракции: https://github.com/metarhia/do
- Буферизация для Writable Stream: https://github.com/metarhia/metastreams
- Библиотека для цветов в консоли: https://github.com/metarhia/concolor
- Загрузчик конфигурации: https://github.com/metarhia/config
- Фреймворк тестирования: https://github.com/metarhia/metatests
- Общие утилиты: https://github.com/metarhia/common
- Общие утилиты (облегченная): https://github.com/metarhia/metautil
- Нужно заполнить форму: https://forms.gle/u7v7nUFxamcgJ2aQ6
- И дать мне права на редозиторий, мой аккаунт: https://github.com/tshemsedinov