При внесении дополнений/изменений в код, просьба придерживаться общей нотации проекта: Название классов с большой буквы. Название переменных и функций – с маленькой, с использованием _.
Приветствуются следующие виды контрибуции:
- Перевод. Как перевод комментариев и документации на другие языки, так и перевод названий количественных характеристик и UI. Комментарии можно дублировать прямо в коде. Для добавления перевода названий количественных характеристик используйте класс Names в модуле Analyse. (https://github.com/AI-group-72/FAEyeTON/blob/main/EyeTrackFatigue/Analise/Names.py). Продублируйте функцию eng_to_eng, переименуйте для соответствия выбранному языку перевода, и укажите корректные названия для указанных метрик. Для перевода UI можете создать аналогичный пакет, либо откопировать файлы EvalApp и DataGather для создания отдельной версии приложения.
- Документирование/Ревью. Выполняя ревью кода при его изучении/использовании, не стесняйтесь делиться вашими записями в коммитах. Это позволит дополнить документацию и сопровождение кода комментариями.
- Баги/ошибки. При возникновении багов во время работы с программой, пожалуйста, подробно опишите ситуацию, в которой он возник. При нахождении решения самостоятельно, выполните соответствующий коммит, сопровождаемый описанием бага и решения. Если решить проблему не получается, внесите описание бага в файл (https://github.com/AI-group-72/FAEyeTON/blob/main/Meta/issues.txt). Там же можно посмотреть текущие баги и их описание, при желании попробовать разрешить их.
- Оптимизация. Если вы находите узкое место, либо просто неэффективно реализуемый функционал, и знаете, как выполнить его эффективнее – пожалуйста, сделайте это. При этом сопроводите ваш коммит операционной или временной оценкой старой и новой версии алгоритма.
- Тестирование. Основной функционал отдельных модулей тестируется в файлах init.py соответствующего модуля. Отдельные тесты системы в целом выведены в папку Мета (https://github.com/AI-group-72/FAEyeTON/tree/main/Meta). Вы можете воспользоваться этими тестами, для проверки работоспособности библиотеки на вашем оборудовании/в вашей системе. Написание дополнительных тестов приветствуется, их можно также располагать либо в соответствующих модулей, либо в папке Мета.
- Добавление Классификаторов. Библиотека поддерживает возможность реализации дополнительных классификаторов. Таковые следует реализовывать в отдельных файлах в модуле Evaluate (https://github.com/AI-group-72/FAEyeTON/tree/main/EyeTrackFatigue/Evaluate), с наследованием класса Evaluator и переопределением его метода evaluate, классифицирующего отрезок данных по наличию/отсутствию усталости.
- Добавление Данных. Библиотека может работать с различными данными. Возможно добавление новых метрик от тех же данных, путём их вычисления в классе ParsedData (https://github.com/AI-group-72/FAEyeTON/blob/main/EyeTrackFatigue/Analise/ParsedData.py). Ввод и предварительная обработка данных выполняется в модуле Input. Для адаптации библиотеки к другим форматам данных необходимо внести изменения в модули Input и DeviceManager.