Categorygithub.com/romakorinenko/task-manager
module
0.0.0-20250126191026-7468e6a54001
Repository: https://github.com/romakorinenko/task-manager.git
Documentation: pkg.go.dev

# README

GitHub Actions Workflow Status Go Report Card Coverage Status

Программа для управления задачами

Описание:

Task Manager - это многопользовательский веб-сервис для ведения рабочих задач. В настоящий момент существует функционал для двух ролей пользователей: USER и ADMIN. Вход осуществляется по логину и паролю.

USER может:

  • видеть список задач заасайненых на себя;
  • создавать новые задачи для себя;
  • редактировать свои задачи;
  • удалять свои задачи.

Таким образом, пользователь может организовать свою работу. Логин и пароль для тестового юзера: user:user

ADMIN может:

  • использовать весь функционал, доступный для USER роли;
  • также видеть список всех задач, созданных всеми пользователями, и редактировать и удалять все задачи, а также создавать задачи на любого пользователя;
  • просматривать prometheus-метрики приложения по пути http://localhost:8080/metrics;

Для администраторов существует админка в виде swagger, доступной по пути http://localhost:8080/swagger/index.html. Админка предоставляет дополнительный функционал:

  • создание и редактирование пользователей;
  • блокировка пользователей (формальная, функционал приложения в данный момент доступен и заблокированным пользователям)
  • получение списка задач по статусу или приоритету;
  • получение списка всех пользователей системы.

Логин и пароль для тестового администратора: admin:admin

Развертывание

Развертывание сервиса должно осуществляется с docker compose.

docker-compose up -d

Тестирование

Написаны юнит тесты на core логику приложения: go test -race -count 100 -v -tags=unit ./...

Написаны интеграционные тесты: go test -v -tags=integration ./...

TODO list

  • создание функционала для заблокированных пользователей
  • разобраться с http методами, преимущественно в настоящий момент используются GET и POST запросы, поскольку html без использования js не позволяет выполнять запросы с другими методами
  • дополнить swagger описаниями передаваемых параметров
  • добавить графану с дэшбордами
  • повысить покрытие тестами

# Packages

No description provided by the author
No description provided by the author
Package docs Code generated by swaggo/swag.
No description provided by the author