Task Manager API — это backend-приложение, реализующее систему управления задачами для команд. Проект разработан на языке Go с использованием фреймворка Gin для создания REST API. В проекте реализована базовая функциональность для аутентификации с использованием JWT, а также эндпоинты для создания и управления командами, проектами и задачами.
Эта архитектура демонстрирует принципы Clean Architecture с разделением кода по модулям (конфигурация, модели, контроллеры, роутинг, работа с базами данных и middleware). На данном этапе проект использует in-memory хранилище для демонстрационных целей, а подключение к PostgreSQL и Redis настроено для интеграции в случае расширения проекта.
- Аутентификация: Авторизация через JWT.
- Управление командами: Создание и управление участниками команды.
- Управление проектами: Создание, редактирование и удаление проектов.
- Управление задачами: CRUD-операции для задач с привязкой к проектам.
- Middleware: Централизованная обработка ошибок и проверка JWT.
task_manager/ ├── cmd/ │ └── server/ │ └── main.go ├── pkg/ │ ├── config/ │ │ └── config.go │ ├── controllers/ │ │ ├── auth.go │ │ ├── team.go │ │ ├── project.go │ │ └── task.go │ ├── database/ │ │ ├── postgres.go │ │ └── redis.go │ ├── middleware/ │ │ └── auth.go │ ├── models/ │ │ ├── user.go │ │ ├── team.go │ │ ├── project.go │ │ └── task.go │ └── routes/ │ └── routes.go ├── .env ├── go.mod └── README.md
- Go версии 1.16+
- PostgreSQL (если планируется работа с базой данных)
- Redis (если планируется использование кеша)
- (Опционально) Docker для локального запуска Redis (например, на Windows)
-
Клонирование репозитория:
git clone https://github.com/NochboolPrime/task_manager.git cd task_manager -
Инициализация модуля и установка зависимостей:
Если модуль уже не инициализирован, выполните:
go mod init github.com/NochboolPrime/task_manager
go mod tidy
3. **Создание файла конфигурации (.env)**:
В корне проекта создайте файл .env со следующим содержимым (пример):
# Настройки PostgreSQL
POSTGRES_CONN=postgres://user:password@localhost:5432/taskdb?sslmode=disable
# Настройки Redis
REDIS_ADDR=localhost:6379
REDIS_PASSWORD=
Запуск сервера
Запустите сервер с помощью команды:
```bash
go run cmd/server/main.go