Планировщик позволяет хранить и управлять задачами с различными параметрами повторения.
- Хранение задач с указанием:
- Дедлайна (даты выполнения)
- Заголовка
- Комментария
- Поддержка повторяющихся задач с различными правилами:
- Ежегодные повторения
- Повторение через N дней
- Повторение в определенные дни месяца/недели
- Разное поведение для типов задач:
- Обычные задачи удаляются после выполнения
- Повторяющиеся задачи переносятся на следующую дату согласно правилу
- Решены все задачи со звёздочкой *
Планировщик предоставляет следующие операции:
| Метод | Описание |
|---|---|
GET / |
Ищет index.html в папке ./web |
GET /api/nextdate |
Вычисляет следующую дату |
GET /api/tasks |
Получает задачи |
POST /api/task |
добавляет задачу |
GET /api/task |
Получает определённую задачу по id |
PUT /api/task |
Полностью изменяет параметры задачи |
DELETE /api/task |
Удаляет задачу |
POST /api/task/done |
Удаляет задачу если нет repeat, иначе обновляет до следующей даты |
| Directory/File | Описание |
|---|---|
github_workflows/ |
Конфигурация для GitHub Actions (tests.yml) для CI/CD. |
cmd/app/ |
Исполняемый файл (main.go). |
internal/config/ |
Файл для загрузки .env файла (config.go). |
internal/server/ |
Определение HTTP сервера и маршрутов (server.go). |
pkg/api/ |
Определяются API обработчики. |
pkg/db/ |
Определение баззы данных и мтодов |
pkg/logger/ |
Определение глобального логера |
pkg/middleware/ |
Middleware для авторизации и логирования запросов |
tests/ |
Тесты |
.env |
Переменные окружения (e.g., TODO_PORT, TODO_PASSWORD). |
.gitignore |
Необязательные файлы для Git |
web/ |
Статические файлы (HTML, CSS, JS) для фронтенда. |
- Go: Убедиться что установлена версия Go 1.23 или новее. Download Go.
- SQLite: Приложение использует SQLite. База данных создаётся автоматически.
-
Склонируйте репозиторий:
git clone https://github.com/NarthurN/TODO-API-web.git cd TODO-API-web -
Установите зависимости:
go mod download
-
Запустите сервер:
go run ./cmd/app
-
Запустите приложение:
- Откройте браузер и введите:
http://localhost:7540/ - в
.envфайле определён парольa(английская)
- Откройте браузер и введите:
Запуск контейнера:
docker run -d -p 7540:7540 narthurn/todo-app-repo - Флаги:
-d: Заупсукает контейнер в фоновом режиме (если нужны логи, то запускать без -d).-p 7540:7540: Сопоставляет порты компьютера 7540 с портом контейнера 7540.
- Основные команды:
-
docker logs todo-app-repo: просмотр логов. -
docker stop todo-app-repo: остановка контейнера. -
docker ps: список запущенных контейнеров. -
Войдите в браузер по адресу
http://localhost:7540.
-
Команда для запуска тестов:
go test ./...Параметры файла settings.go
package tests
var Port = 7540
var DBFile = "../scheduler.db"
var FullNextDate = true
var Search = true
var Token = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXNzd29yZCI6ImNhOTc4MTEyY2ExYmJkY2FmYWMyMzFiMzlhMjNkYzRkYTc4NmVmZjgxNDdjNGU3MmI5ODA3Nzg1YWZlZTQ4YmIifQ.Ivv2J6a4eKcaVrXpd5aF3grSOnQgQ-b-yXIwmdKGA5A`