Прототип системы, которая следит за работой компьютерного клуба, обрабатывает события и подсчитывает выручку за день и время занятости каждого стола.
Более подробное описание задания есть в файле.
После скачивания проекта есть несколько способов запуска программы
git clone git@github.com:vacmannnn/comp-club-manager.git
Сборка с помощью Docker:
docker build -t manager .
Запуск программы:
docker run -v .:/app manager:latest ./test_logs/logs.txt
Последним аргументом указывается относительный путь до файла с логом компьютерного клуба. Предполагается, что лог-файл находится в запускаемой директории.
С исполняемым файлом:
go build -C ./src -o ../manager
./manager test_logs/logs.txt
Без создания исполняемого файла:
go run ./src ./test_logs/logs.txt
Кроме базового случая из описания задания, были написаны тесты для следующих сценариев:
- Клиент хочет сесть за несуществующий стол
- Событие с номером N произошло до события N-1
- Неккоректное время работы клуба
- Корректный сценарий работы клуба, при котором возникают ошибки в действиях клиентов (попытка пересесть за свой же стол, не пришедший клиент покидает клуб и подобное)