Корпоративная система управления целями с интеграцией Telegram и AI-ассистентом для повышения продуктивности команд.
- Node.js 18+
- PostgreSQL 15+
- npm или yarn
# Клонировать репозиторий
git clone https://github.com/timokay/GoalFlow.git
cd GoalFlow
# Установить зависимости
npm install
# Настроить переменные окружения
cp .env.example .env
# Отредактировать .env и добавить необходимые ключи
# Настроить базу данных
npx prisma migrate dev
npx prisma generate
# Заполнить тестовыми данными (опционально)
npm run db:seed
# Запустить dev server
npm run devПриложение будет доступно по адресу http://localhost:3000
- ✅ Аутентификация - Регистрация и вход через NextAuth.js
- ✅ Управление целями - CRUD операции для целей с валидацией
- ✅ Иерархия целей - Поддержка parent-child отношений
- ✅ Метрики - Отслеживание прогресса через метрики
- ✅ Workspace & Teams - Мультитенантность и управление командами
- ✅ RBAC - Система ролей и прав доступа
- ✅ Аналитика - Визуализация данных и отчеты
- ✅ Team Performance Metrics - Метрики производительности команды
- ✅ Custom Report Builder - Настраиваемые отчеты с фильтрами и группировкой
- ✅ Telegram Integration - Бот для уведомлений и отчетов
- ✅ Email Notifications - Уведомления через Resend
- ✅ Notification Preferences - Настройка уведомлений
- ✅ Goal Templates - Шаблоны для быстрого создания целей
- ✅ Bulk Operations - Массовые операции над целями
- ✅ Search - Полнотекстовый поиск по целям
- ✅ Activity Feed - Лента активности workspace
- ✅ Workspace Invites - Система приглашений по email
- Next.js 14 - App Router, Server Components
- React 19 - UI библиотека
- TypeScript - Type safety
- Tailwind CSS - Стилизация
- shadcn/ui - UI компоненты
- recharts - Графики и визуализация
- Next.js API Routes - RESTful API
- Prisma ORM - Type-safe database access
- NextAuth.js - Аутентификация
- Zod - Валидация данных
- PostgreSQL 15+ - Основная БД
- grammy.js - Telegram Bot Framework
- Resend - Email отправка
goalflow/
├── prisma/
│ ├── schema.prisma # Database schema
│ ├── seed.ts # Seed data
│ └── migrations/ # DB migrations
│
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── (auth)/ # Auth routes
│ │ ├── (dashboard)/ # Protected routes
│ │ └── api/ # API routes
│ │
│ ├── components/ # React components
│ │ ├── ui/ # shadcn/ui components
│ │ ├── features/ # Feature components
│ │ └── layout/ # Layout components
│ │
│ └── lib/ # Utilities & services
│ ├── services/ # Business logic
│ ├── validations/ # Zod schemas
│ ├── auth.ts # NextAuth config
│ └── db.ts # Prisma client
│
├── tests/ # Tests
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── e2e/ # E2E tests (Playwright)
│
└── memory-bank/ # Project documentation
# Запустить все тесты
npm run test
# Запустить тесты один раз
npm run test:run
# Запустить тесты в watch mode
npm test# Запустить E2E тесты
npm run test:e2e
# Запустить с UI
npm run test:e2e:uinpm run dev- Запуск dev servernpm run build- Production buildnpm run start- Запуск production servernpm run lint- Проверка кодаnpm run test- Запуск unit/integration тестовnpm run test:run- Запуск тестов один разnpm run test:e2e- Запуск E2E тестовnpm run test:e2e:ui- Запуск E2E тестов с UInpm run db:seed- Заполнение БД тестовыми данными
Создайте файл .env в корне проекта:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/goalflow"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
# Telegram (опционально)
TELEGRAM_BOT_TOKEN="your-bot-token"
TELEGRAM_WEBHOOK_SECRET="your-webhook-secret"
# Email (опционально)
RESEND_API_KEY="your-resend-api-key"
RESEND_FROM_EMAIL="noreply@yourdomain.com"- ARCHITECTURE.md - Архитектурный план проекта
- SECURITY_AUDIT.md - Отчет по безопасности
- SECURITY.md - Рекомендации по безопасности
- TESTING_PLAN.md - План тестирования проекта
- CONTRIBUTING.md - Руководство для контрибьюторов
- memory-bank/ - Документация разработки
Мы приветствуем вклад в проект! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения подробных инструкций.
Быстрый старт:
- Fork проекта
- Создайте feature branch (
git checkout -b feature/AmazingFeature) - Commit изменения (
git commit -m 'Add some AmazingFeature') - Push в branch (
git push origin feature/AmazingFeature) - Откройте Pull Request
Нужна помощь?
- Откройте Issue для багов или предложений
- Изучите Issues с меткой "good first issue" для начала работы
Этот проект находится под лицензией MIT.
- Timofey - GitHub
Примечание: Проект находится в активной разработке. Некоторые функции могут быть нестабильными.