Skip to content

NarthurN/TODO-API-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TODO-API-web

Планировщик задач

Описание функциональности

Планировщик позволяет хранить и управлять задачами с различными параметрами повторения.

Основные возможности:

  • Хранение задач с указанием:
    • Дедлайна (даты выполнения)
    • Заголовка
    • Комментария
  • Поддержка повторяющихся задач с различными правилами:
    • Ежегодные повторения
    • Повторение через N дней
    • Повторение в определенные дни месяца/недели
  • Разное поведение для типов задач:
    • Обычные задачи удаляются после выполнения
    • Повторяющиеся задачи переносятся на следующую дату согласно правилу

Особенности

  • Решены все задачи со звёздочкой *

API интерфейс

Планировщик предоставляет следующие операции:

Метод Описание
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. База данных создаётся автоматически.

Запуска локально

  1. Склонируйте репозиторий:

    git clone https://github.com/NarthurN/TODO-API-web.git
    cd TODO-API-web
  2. Установите зависимости:

    go mod download
  3. Запустите сервер:

    go run ./cmd/app
  4. Запустите приложение:

    • Откройте браузер и введите:
      http://localhost:7540/
      
    • в .env файле определён пароль a (английская)

Запуск с помощью Docker

Запуск контейнера:

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`

About

Планировщик хранит задачи

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published