TaskTracker
Task Tracker with PostgreSQL, Redis, RabbitMQ, JWT authentication, WebSocket real-time update, Grafana + Prometheus monitoring, and Swagger documentation.
Install / Use
/learn @Voreger/TaskTrackerREADME
TaskTracker
TaskTracker — это современное веб-приложение для управления задачами с поддержкой аутентификации, реалтайм обновлений, асинхронной обработки задач и мониторинга. Проект реализован на языке Go с использованием множества современных технологий.
Описание
TaskTracker представляет собой систему управления задачами, которая позволяет пользователям создавать, редактировать, отслеживать и удалять задачи. Приложение включает в себя:
- Аутентификацию пользователей с использованием JWT
- Реалтайм обновления через WebSocket
- Асинхронную обработку задач через RabbitMQ
- Кеширование данных через Redis
- Мониторинг производительности через Prometheus и Grafana
- Автоматическую генерацию документации API через Swagger
Архитектура
Проект состоит из следующих компонентов:
API-сервер
- REST API для работы с задачами и пользователями
- Использует PostgreSQL для хранения данных
- Включает систему аутентификации на основе JWT
- Обеспечивает реалтайм обновления через WebSocket
- Обрабатывает CORS и стандартные middleware для логирования
Worker
- Отдельный сервис для асинхронной обработки задач
- Получает сообщения из очереди RabbitMQ
- Обрабатывает события жизненного цикла задач (создание, обновление, удаление)
- Логирует события в систему
Кеширование
- Использует Redis для кеширования часто запрашиваемых данных
- Ускоряет доступ к информации и снижает нагрузку на базу данных
Мониторинг
- Интеграция с Prometheus для сбора метрик
- Визуализация метрик через Grafana
- Логирование событий через Zap
Сущности
Система работает с двумя основными сущностями:
- User - информация о пользователе (имя, email, пароль)
- Task - задача с описанием, статусом, приоритетом и другими атрибутами
Технологии
- Язык программирования: Go
- База данных: PostgreSQL
- Кеширование: Redis
- Асинхронные сообщения: RabbitMQ
- Веб-фреймворк: Chi
- Аутентификация: JWT
- Реалтайм коммуникация: Gorilla WebSocket
- Мониторинг: Prometheus, Grafana
- Документация API: Swagger
- Контейнеризация: Docker, Docker Compose
- Логирование: Zap
Установка и запуск
- Склонируйте репозиторий:
git clone https://github.com/Voreger/TaskTracker
- Установите зависимости:
go mod tidy
- Запустите приложение с помощью Docker Compose:
docker-compose -f deploy/docker-compose.yml up --build
- Приложение будет доступно по адресу
http://localhost:8080 - Документация API доступна по адресу
http://localhost:8080/swagger/ - Панель мониторинга Grafana доступна по адресу
http://localhost:3000
API Endpoints
Пользователи
POST /auth/register- регистрация нового пользователяPOST /auth/login- аутентификация пользователяGET /users/{id}- получить информацию о пользователеPUT /users/{id}- обновить информацию о пользователеDELETE /users/{id}- удалить пользователя
Задачи
GET /tasks- получить список задачPOST /tasks- создать новую задачуGET /tasks/{id}- получить информацию о задачеPUT /tasks/{id}- обновить информацию о задачеDELETE /tasks/{id}- удалить задачу
WebSocket
GET /ws- подключение к WebSocket для реалтайм обновлений
Безопасность
Система включает JWT-аутентификацию для защиты API-эндпоинтов. Все запросы к защищенным маршрутам должны содержать корректный заголовок авторизации с JWT-токеном.
Логирование
Все запросы и ошибки логируются с использованием библиотеки Zap для возможности аудита и диагностики проблем в работе системы.
Мониторинг
Система собирает метрики производительности и доступна для мониторинга через Prometheus. Графики и дашборды доступны через Grafana.
Миграции
Миграции базы данных управляются через SQL-файлы в папке migrations. При запуске приложения миграции применяются автоматически.
Related Skills
canvas
345.9kCanvas Skill Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android). Overview The canvas tool lets you present web content on any connected node's canvas view. Great for: -
gh-issues
345.9kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
345.9kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
