Skip to content

vlasashk/task-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task-manager

Build

Prerequisites

  • docker
  1. Clone project:
git clone https://github.com/vlasashk/task-manager.git
cd task-manager
  1. Run:
docker compose up --build
  1. Test:
go test -v ./... -coverprofile=cover.out && go tool cover -html=cover.out -o cover.html

Project information

Restrictions

  • Дата должа передаваться в валидном формате (YYYY-MM-DD)
  • Дата на которую заводится задача не может быть ранее текущей даты
  • Лимит на вывод списка задач на 1 страницу захардкожен на значении = 10 записей
  • Пагинация - единственный режим взаимодействия с API (нельзя получить более 10 записей за 1 запрос)
  • Пагинация начинается со странцы = 0
  • Что бы получить список задач - не обязательно передавать параметры (page, date, status), тогда будут выведены первые 10 задач(не зависимо от статуса), отсортированные по дате
  • Вывод списка задач с фильтрацией по дате(без фильтраци по статусу) - выведет все задачи аткуальные на конкретную дату
  • Возможна одовременная фильтрация и по дате и по статусу
  • Удаление задачи, не удаляет запись из БД, а помечает как удаленную

Tools used

Functionality

Swagger

Swagger generated documentation will be available after run at http://localhost:9090/api/swagger/index.html (or different port if .env file was edited)

Tasks manipulation

  • {POST} /api/task - Создание задачи

    body
    {
        "title": "Название задачи",
        "description": "Описание задачи",
        "due_date": "Дата завершения задачи",
        "status": "Выполнено/Не выполнено"
    }
    
  • {GET} /api/tasks - Получение списка задач

    Параметры запроса:

    • status (bool, optional): Фильтр по статусу задачи (true - выполнено, false - не выполнено). По дефолту выводит оба типа.
    • date (string, optional): Фильтр по дате задачи. (Формат YYYY-MM-DD).
    • page (uint, optional): Номер страницы.

    {GET} /api/tasks?status=false&date=2024-12-29&page=0

  • {GET} /api/task/{id} - Получение задачи по ID

  • {PUT} /api/task/{id} - Обновление задачи

    body
    {
        "title": "Название задачи",
        "description": "Описание задачи",
        "due_date": "Дата завершения задачи",
        "status": "Выполнено/Не выполнено"
    }
    
  • {DELETE} /api/task/{id} - Удаление задачи

About

API for managing TODO List

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published