Платформа для совместной разработки — Канбан, управление задачами, команды.
🌐 Запуск локально:
http://localhost:3000— фронтенд,http://localhost:8080/api/v1— API
🔑 Демо-доступ:admin@devflow.local/password123
- Описание проекта
- Основные возможности
- Архитектура проекта
- Технологии
- Требования к окружению
- Установка и настройка
- Переменные окружения
- Сидинг
- Тестирование
- Безопасность
Команды разработчиков используют разрозненные инструменты для управления задачами: Trello, Jira, Notion. Нет единого окна для Канбан-досок, спринтов и аналитики. Сложно отслеживать прогресс и загрузку команды.
DevFlow — платформа для совместной разработки с drag-and-drop Канбан-досками, спринтами, ролевой моделью и аналитикой. Подходит для команд любого размера. Работает на русском и английском языках.
- 📋 Канбан-доски — drag-and-drop с оптимистичными обновлениями, WIP-лимиты, сортировка
- 📋 Бэклог — табличное представление задач с фильтрацией по статусу и приоритету
- 🔐 RBAC — роли Owner, Admin, Member с разграничением доступа
- 👤 Профиль — редактирование имени пользователя
- 🌙 Тёмная тема — переключение светлой (
#fdfafa) / тёмной (#2a2831) темы - 🌐 Локализация — русский и английский языки
- 📊 Дашборд — статистика по проектам, задачам и дедлайнам
- 📝 Проекты — создание проектов с уникальным ключом
- 💬 Комментарии — обсуждение задач
- 📱 Адаптивность — десктоп и мобильные устройства
┌──────────────────────────────────────────────────────────┐
│ Frontend (Next.js) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Dashboard│ │ Kanban │ │ Backlog │ │
│ │ (виджеты)│ │ (dnd-kit)│ │ (фильтры)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ ┌────▼─────────────▼─────────────▼──────────────────┐ │
│ │ Next.js API Proxy │ │
│ └────────────────────┬──────────────────────────────┘ │
└───────────────────────┼──────────────────────────────────┘
│
┌───────────────────────▼──────────────────────────────────┐
│ Backend (Go / Gin) :8080 │
│ ┌──────────────────────────────────────────────────┐ │
│ │ REST API (/api/v1) │ │
│ │ Auth, Orgs, Projects, Tasks, Comments, Teams │ │
│ │ JWT + Refresh токены, CORS, Rate Limiting │ │
│ └────────────────────┬─────────────────────────────┘ │
└───────────────────────┼──────────────────────────────────┘
│
┌───────────────────────▼──────────────────────────────────┐
│ PostgreSQL 16 :5432 │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Users, Orgs, Projects, Tasks, Comments, │ │
│ │ Boards, Columns, Sprints, Tags, Notifications │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
│
┌───────────────────────▼──────────────────────────────────┐
│ Redis 7 :6379 │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Session store, Cache, Rate limiter, Queue │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
| Модуль | Путь (backend) | Описание |
|---|---|---|
| Auth | internal/application/auth/ |
Регистрация, логин, JWT, refresh |
| Orgs | internal/application/organization/ |
Организации, приглашения, участники |
| Projects | internal/application/project/ |
Проекты с уникальным ключом |
| Tasks | internal/application/task/ |
Задачи, типы, приоритеты, статусы |
| Comments | internal/application/comment/ |
Комментарии к задачам |
| Teams | internal/application/team/ |
Команды и их участники |
- Next.js 14 (App Router) — фреймворк
- React 18 — UI
- TypeScript 5 — типизация
- Tailwind CSS 3.4 — стилизация
- shadcn/ui (Radix UI) — компоненты
- TanStack React Query — управление состоянием сервера
- Zustand — клиентское состояние
- dnd-kit — drag-and-drop для Канбан-досок
- Recharts — графики и аналитика
- Framer Motion — анимации
- React Hook Form + Zod — формы и валидация
- Lucide React — иконки
- i18next — интернационализация
- Go 1.24 — язык
- Gin — HTTP-фреймворк
- PostgreSQL 16 — основная база данных
- Redis 7 — сессии, кэш, rate limiter, очередь
- JWT — access + refresh токены
- Goose — миграции
- Viper — конфигурация
- Prometheus — метрики
- Grafana — дашборды
- OpenTelemetry (Jaeger) — трассировка
- Go testing + Testcontainers — интеграционные тесты Go
- Playwright — E2E-тесты
- React Testing Library — тестирование React-компонентов
- Docker + Docker Compose — контейнеризация
- GitHub Actions — CI/CD
- Nginx — reverse proxy
- Go 1.24+
- Node.js 18+
- npm 9+
- PostgreSQL 16 (установлен и запущен)
- Redis 7 (установлен и запущен)
- Git — для клонирования репозитория
git clone https://github.com/lina-whm/devfow.git
cd devfowУбедитесь, что PostgreSQL запущен:
# Windows
net start postgresql-x64-16Создайте базу данных:
createdb -U postgres devflowУбедитесь, что Redis запущен:
# Windows (если установлен через winget)
net start Rediscd backend
go run ./cmd/devflow-migrate upСкопируйте .env.example в .env:
cp .env.example .envПодробнее — в разделе Переменные окружения.
cd backend
go run ./cmd/devflowБэкенд будет доступен на http://localhost:8080.
cd frontend
npm install
npm run devФронтенд будет доступен на http://localhost:3000.
Создайте файл .env в корне проекта (или .env.local в frontend/):
# === База данных (PostgreSQL) ===
DATABASE_URL="postgres://postgres:postgres@localhost:5432/devflow?sslmode=disable"
# === Redis ===
REDIS_URL="redis://localhost:6379/0"
REDIS_PASSWORD=""
# === JWT ===
JWT_SECRET="[ВАШ_SECRET_МИНИМУМ_32_СИМВОЛА]"
JWT_REFRESH_SECRET="[ВАШ_REFRESH_SECRET_МИНИМУМ_32_СИМВОЛА]"
JWT_ACCESS_TTL=15m
JWT_REFRESH_TTL=7d
# === Сервер ===
SERVER_PORT=8080
SERVER_MODE=debug
# === Frontend (опционально) ===
NEXT_PUBLIC_API_URL=http://localhost:8080/api/v1Важно: Никогда не коммитьте
.envили.env.localв репозиторий. Они уже добавлены в.gitignore.
База заполняется тестовыми данными при первом запуске. Доступные аккаунты:
| Пароль | Роль | |
|---|---|---|
admin@devflow.local |
password123 |
Owner (демо-организация "DevFlow Demo") |
user@devflow.local |
password123 |
Member |
Демо-организация содержит проект "My First Project" с предустановленными колонками (Backlog, In Progress, Review, Done) и несколькими тестовыми задачами.
Сидинг запускается автоматически, если таблица users пуста. Отключить — SEED_ENABLED=false.
cd backend
go test ./... -vcd frontend
npm test # unit-тесты
npm run test:e2e # E2E-тесты (требуется запущенный dev-сервер).envи.env.local— добавлены в.gitignore- Все чувствительные данные в README заменены на заглушки
[ВАШ_ЗНАЧЕНИЕ] - JWT access token с коротким TTL (15 мин) + refresh token (7 дней)
- Rate limiting на уровне API (через Redis)
- CORS ограничен настройками конфигурации
- CI запускает линтеры и проверки на каждый push
- Канбан-доски с drag-and-drop
- Бэклог с фильтрацией
- Авторизация и JWT (access + refresh)
- Профиль пользователя
- RBAC (Owner, Admin, Member)
- Управление проектами (CRUD)
- Комментарии к задачам
- Тёмная тема
- Локализация (RU/EN)
- Спринты и burndown-чарты
- Real-time уведомления (WebSocket)
- Импорт/экспорт задач (CSV, JSON)
- Интеграция с GitHub/GitLab
- AI-ассистент для описания задач