Этот проект представляет собой планировщик задач, предназначенный для эффективного управления личными или командными задачами. Он позволяет пользователям хранить задачи с указанием даты дедлайна, заголовка и комментария. Особенностью планировщика является поддержка повторяющихся задач, которые автоматически переносятся на следующую дату после выполнения в соответствии с заданным правилом. Обычные (неповторяющиеся) задачи при выполнении удаляются.
Планировщик предоставляет следующие возможности:
- Хранение задач: Каждая задача содержит:
- Дату дедлайна
- Заголовок
- Комментарий
- Повторяющиеся задачи: Задачи могут быть настроены на повторение по заданным правилам:
- Ежегодно
- Через определённое количество дней
- В определённые дни месяца
- В определённые дни недели При выполнении повторяющейся задачи, она автоматически переносится на следующую дату согласно правилу.
- Обычные задачи: При выполнении обычные задачи удаляются из списка.
API планировщика предоставляет следующие операции для взаимодействия с задачами:
- Добавить задачу: Создание новой задачи с указанием всех необходимых параметров.
- Получить список задач: Получение списка всех текущих задач.
- Удалить задачу: Удаление задачи по её идентификатору.
- Получить параметры задачи: Получение подробной информации о конкретной задаче.
- Изменить параметры задачи: Обновление существующих параметров задачи.
- Отметить задачу как выполненную: Отметка задачи как выполненной, с соответствующей логикой для повторяющихся и обычных задач.
- Реализуйте возможность определять извне порт при запуске сервера. Если существует переменная окружения TODO_PORT, сервер при старте должен слушать порт со значением этой переменной.
- Реализуйте возможность определять путь к файлу базы данных через переменную окружения. Для этого сервер должен получать значение переменной окружения TODO_DBFILE и использовать его в качестве пути к базе данных, если это не пустая строка.
- Вычисления следующих дат в случае недель и месяцев (FullNextDate = true в файле tests/settings.go)
- Поиск по задачам (Search = true в файле tests/settings.go)
- Аутентификация
- Создание докер-образа
go run cmd/main.go
http://localhost:7540
- TODO_PORT - изменить порт сервера
- TODO_DBFILE - указать путь к файлу базы данных, по умолчанию, будет создан scheduler.db в корне проекта
var Port = 7540
var DBFile = "../scheduler.db"
var FullNextDate = true
var Search = true
var Token = ``