Полнофункциональный Task Manager на стеке MERN (MongoDB, Express, React, Node.js).
- ✅ Регистрация и аутентификация (JWT)
- ✅ Подтверждение email
- ✅ Восстановление пароля
- ✅ Управление профилем пользователя
- ✅ CRUD операции для проектов
- ✅ CRUD операции для задач
- ✅ CRUD операции для категорий
- ✅ Система приглашений в проекты
- ✅ Роли пользователей (Owner, Collaborator, Member, Viewer)
- ✅ Архивирование проектов и задач
- ✅ Загрузка файлов (аватары, файлы проектов/задач)
- ✅ Real-time обновления через Socket.IO
- ✅ Kanban колонки с drag & drop поддержкой
- ✅ Страницы авторизации (вход/регистрация)
- ✅ Базовый дашборд
- ✅ Роутинг и защищенные маршруты
- ✅ Контекст аутентификации
- ✅ API сервисы
- ✅ Socket.IO интеграция
- ⏳ Полный UI (в процессе разработки)
24task/
├── backend/ # Node.js + Express API
│ ├── src/
│ │ ├── config/ # Конфигурация БД
│ │ ├── controllers/ # Бизнес-логика
│ │ ├── middleware/ # Middleware (auth)
│ │ ├── models/ # Mongoose модели
│ │ ├── routes/ # API маршруты
│ │ ├── utils/ # Утилиты (jwt, email, upload)
│ │ └── server.js # Главный файл сервера
│ └── package.json
│
└── frontend/ # React + Vite
├── src/
│ ├── components/ # React компоненты
│ ├── pages/ # Страницы приложения
│ ├── services/ # API и Socket.IO
│ ├── contexts/ # React Context
│ ├── hooks/ # Custom hooks
│ ├── utils/ # Утилиты
│ └── styles/ # CSS стили
└── package.json
cd backend
npm install
# Настройка .env (скопируйте .env.example)
cp .env.example .env
# Отредактируйте .env с вашими настройками
# Запуск MongoDB (локально)
# Убедитесь, что MongoDB запущена на localhost:27017
# Development режим
npm run dev
# Production режим
npm startcd frontend
npm install
# Настройка .env
cp .env.example .env
# Development режим
npm run dev
# Build для production
npm run buildPORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/task24
JWT_ACCESS_SECRET=your_secret
JWT_REFRESH_SECRET=your_secret
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
FRONTEND_URL=http://localhost:3000VITE_API_URL=http://localhost:5000/api
VITE_SOCKET_URL=http://localhost:5000POST /api/auth/register- РегистрацияPOST /api/auth/login- ВходPOST /api/auth/logout- ВыходPOST /api/auth/verify-email- Подтверждение emailPOST /api/auth/forgot-password- Восстановление пароляPOST /api/auth/reset-password- Сброс пароля
GET /api/projects- Список проектовPOST /api/projects- Создание проектаGET /api/projects/:id- Детали проектаPUT /api/projects/:id- Обновление проектаDELETE /api/projects/:id- Удаление проектаPOST /api/projects/:id/archive- АрхивированиеPOST /api/projects/:id/restore- Восстановление
GET /api/tasks- Список задачPOST /api/tasks- Создание задачиGET /api/tasks/:id- Детали задачиPUT /api/tasks/:id- Обновление задачиDELETE /api/tasks/:id- Удаление задачиPOST /api/tasks/reorder- Изменение порядка (drag & drop)
GET /api/categories- Список категорийPOST /api/categories- Создание категорииPUT /api/categories/:id- Обновление категорииDELETE /api/categories/:id- Удаление категории
POST /api/invitations- Создание приглашенияPOST /api/invitations/accept- Принятие приглашенияDELETE /api/invitations/projects/:projectId/members/:memberId- Удаление участника
- Node.js 18+
- Express.js
- MongoDB + Mongoose
- Socket.IO
- JWT (jsonwebtoken)
- Bcrypt
- Nodemailer
- Multer
- React 18
- Vite
- React Router
- Axios
- Socket.IO Client
- React Query
- React Hook Form
- React Hot Toast
- Lucide React (иконки)
- DnD Kit (drag & drop)
- Node.js 18+
- MongoDB 5+
- Nginx (для production)
- PM2 (для управления процессами)
# Backend
cd backend
npm install --production
pm2 start src/server.js --name task24-api
# Frontend
cd frontend
npm install
npm run build
# Настройте Nginx для обслуживания dist/ISC
Task24 Team