# README
Описание проекта:
Проект представляет веб-сервер, который реализует функциональность простейшего планировщика задач.
Файлы проекта:
В директории tests
находятся тесты для проверки API, которое должно быть реализовано в веб-сервере.
Директория web
содержит файлы фронтенда.
Директория cmd
содержит файл main.go
.
Директория internal
содержит код программы.
Список выполненных заданий со звёздочкой:
- Реализована возможность определять извне порт при запуске сервера;
- Реализована возможность определять путь к файлу базы данных через переменную окружения;
- Реализована возможность повторения задачи в указанные дни недели;
- Создан докер образ.
Инструкция по запуску кода локально:
Для запуска кода необходимо выполнить следующие команды:
go mod tidy
go run cmd/scheduler-service/main.go
Примеры .env: TODO_PORT=7540 TODO_DB_FILE=../scheduler.db
Адрес, который следует указывать в браузере: http://localhost:7540/
Инструкция по запуску тестов:
Для запуска тестов необходимо выполнить следующую команду:
go test ./tests
Инструкция по сборке и запуску проекта через докер:
Для запуска контейнера необходимо выполнить следующие команды:
docker build --tag scheduler-service:v1 .
docker run -d -p 7540:7540 scheduler-service:v1
Дополнительно:
Для автоматизации компиляции и сборки программы в проекте присутствует Makefile. Он содержит следующие команды:
- make build - инициирует процесс сборки программы.
- make tidy - удаляет неиспользуемые зависимости и добавляет недостающие в go.mod.
- make fmt - форматирует код для соответствия стандартам кодирования.
- make lint - запускает команды tidy, fmt, build и выполняет проверку кода с помощью golangci-lint.
- make build-docker - создает Docker-образ с тегом scheduler-service:v1.
- make tests - выполняет тесты для проверки кода.
Для корректной работы Makefile должны быть установлены инструменты: Go, Docker, gofumpt, gci, и golangci-lint.
Для сборки и тестирования программы с помощью Makefile необходимо выполнить следующие команды:
make lint
- для проверки и подготовки кода.make build-docker
- для создания Docker-образа.make tests -B
- для принудительного запуска тестов и проверки работоспособности программы.