Frontend Hub - это веб-платформа для разработчиков, которая предоставляет возможности аутентификации пользователей и управления проектами. Проект представляет собой полноценное веб-приложение с клиент-серверной архитектурой.
Training_Lyanov_Ahmed/
├── client/ # Фронтенд приложения (React + TypeScript + Vite)
├── server/ # Бэкенд приложения (Node.js + Express + MongoDB)
├── technical/ # Техническая документация
└── README.md # Документация проекта
- Регистрация новых пользователей с именем, фамилией, email и паролем
- Вход в систему с проверкой учетных данных
- Получение профиля текущего пользователя
- Защита маршрутов с использованием JWT-токенов
- Создание новых проектов с названием, описанием и статусом
- Просмотр списка всех проектов
- Просмотр собственных проектов
- Редактирование проектов
- Удаление проектов
- Пагинация для списков проектов
- React 19.2.0 - основной фреймворк для построения пользовательского интерфейса
- TypeScript 5.9.3 - строгая типизация
- Vite 7.2.4 - сборщик проекта
- Redux Toolkit - управление состоянием приложения
- React Router DOM 7.9.6 - маршрутизация
- Tailwind CSS 4.1.17 - стилизация
- Ant Design 6.0.0 - UI-компоненты
- Axios 1.13.2 - HTTP-запросы к API
- React Hook Form + Zod - валидация форм
- Node.js - серверная платформа
- Express 5.1.0 - веб-фреймворк
- MongoDB - база данных
- Mongoose 8.20.1 - ODM для MongoDB
- JWT - токены аутентификации
- bcrypt 6.0.0 - хеширование паролей
- express-validator 7.3.1 - валидация данных
- CORS - политики безопасности
- Node.js (версия 18 или выше)
- npm или yarn
- MongoDB (локально или облачный Atlas)
- Перейдите в директорию сервера:
cd server- Установите зависимости:
npm install- Создайте файл
.envна основе.env.example:
cp .env.example .env- Настройте переменные окружения в файле
.env:
PORT=5000
CLUSTER_MONGODB_CONNECT=ваша_ссылка_на_mongodb
JWT_SECRET=ваш_секретный_ключ
JWT_EXPIRES_IN=24h
- Запустите сервер в режиме разработки:
npm run dev- Перейдите в директорию клиента:
cd client- Установите зависимости:
npm install-
Создайте файл
.envпри необходимости (обычно не требуется для локальной разработки) -
Запустите приложение в режиме разработки:
npm run devПриложение будет доступно по адресу http://localhost:5173
POST /auth/registration- регистрация пользователяPOST /auth/login- вход в системуGET /auth/profile- получить профиль текущего пользователя (требует JWT-токен)
POST /projects/create- создать проект (требует JWT-токен)GET /projects/list- получить список всех проектов (требует JWT-токен)PUT /projects/:id- обновить проект (требует JWT-токен)DELETE /projects/:id- удалить проект (требует JWT-токен)GET /projects/myprojects- получить список собственных проектов (требует JWT-токен)
_id- уникальный идентификаторname- имя пользователя (обязательно)surname- фамилия пользователя (обязательно)email- email пользователя (уникальный, обязательно)password- зашифрованный пароль (обязательно)role- роль пользователя (по умолчанию "user")createdAt,updatedAt- даты создания и обновления
_id- уникальный идентификаторtitle- название проекта (обязательно, до 100 символов)description- описание проекта (обязательно, до 500 символов)status- статус проекта (active, completed, archived, on_hold, по умолчанию active)createdBy- ссылка на пользователя-создателяcreatedAt,updatedAt- даты создания и обновления
Header- шапка приложенияAside- боковая панель навигацииProtectedRoute- защищенный маршрут- Компоненты аутентификации, проектов и других разделов
HomePage- главная страницаAuthPage- страница аутентификацииProjectsPage- страница управления проектамиProjectPage- страница отдельного проекта
auth- состояние аутентификации (пользователь, токен)- Асинхронные действия для API-запросов
npm run dev- запуск в режиме разработкиnpm run build- сборка для продакшенаnpm run lint- проверка кодаnpm run preview- предпросмотр сборки
npm run dev- запуск в режиме разработки с nodemonnpm start- запуск в продакшенеnpm test- запуск тестов (пока без реализации)
- Пароли хешируются с помощью bcrypt
- Аутентификация через JWT-токены
- Валидация вводимых данных на сервере
- CORS политики для ограничения доступа
- Валидация форм с использованием Zod
- Пагинация для списков проектов
- Защита маршрутов с автоматической проверкой аутентификации
- Адаптивный дизайн с использованием Tailwind CSS
- Интеграция с Ant Design для UI-компонентов
- Добавление тестов (unit и e2e)
- Поддержка ролей и разрешений
- Интеграция с облачным хранилищем файлов
- Уведомления и чат для проектов
- История изменений проектов
- Добавление участников в проекты
