- Обзор проекта
- Структура проекта
- Настройка окружения
- Клиентская часть (Frontend)
- Серверная часть (Backend)
- Разработка
- Сборка и деплой
- Инструменты контроля кода
Registration App - это приложение для регистрации пользователей с полноценной клиент-серверной архитектурой. Проект состоит из:
- Frontend: React-приложение, созданное с помощью Vite
- Backend: Node.js/Express API с MongoDB
meet/
├── client/ # Frontend часть
│ ├── src/ # Исходный код React-приложения
│ ├── public/ # Статические файлы
│ ├── ... # Конфигурационные файлы
│ └── package.json # Зависимости клиентской части
├── backend/
| ├── auth-service/ # Backend часть
│ | ├── src/ # Исходный код сервера
│ | ├── ... # Конфигурационные файлы
│ | └── package.json # Зависимости серверной части
│ └── peer-service/ # Разарботка p2p для видео соединения WebRTC
├── .husky/ # Хуки Git для контроля качества кода
├── .gitignore # Исключения для Git
├── package.json # Зависимости корневого проекта
└── README.md # Документация проекта
- Node.js (v18 или выше)
- npm (v8 или выше)
- MongoDB (локальная установка или удаленный кластер)
-
Клонирование репозитория
git clone <repository-url> cd meet
-
Установка зависимостей
# Установка зависимостей корневого проекта npm install # Установка зависимостей клиента cd client npm install # Установка зависимостей сервера cd ../server npm install
-
Настройка переменных окружения
Создайте файл
.envв директорииserver:PORT=5000 DB_URL=mongodb JWT_ACCESS_SECRET=your_access_secret_key JWT_REFRESH_SECRET=your_refresh_secret_key SMTP_HOST=smtp.example.com SMTP_PORT=587 SMTP_USER=your_email@example.com SMTP_PASSWORD=your_email_password API_URL=localhost CLIENT_URL=localhostСоздайте файл
.envв директорииclient:VITE_API_URL=localhost VITE_WS_URL=localhost
- React 19
- TypeScript
- Vite
- Redux Toolkit
- React Query
- Axios
- SCSS
- ESLint и Prettier для форматирования кода
cd client
npm run dev:clientnpm run dev:server- запуск dev-сервераnpm run build- сборка проектаnpm run preview- предпросмотр собранного проектаnpm run lint- проверка кода ESLintnpm run format- форматирование кода с Prettiernpm run check- проверка форматированияnpm run stylelint- проверка и исправление стилейnpm run stylelint:check- проверка стилей
- Node.js
- Express
- TypeScript
- MongoDB/Mongoose
- JWT для аутентификации
- Nodemailer для отправки email
- ESLint и Prettier для форматирования кода
cd server
npm run dev:servernpm run dev:server- запуск сервера с nodemon для авто-перезагрузкиnpm run build- компиляция TypeScriptnpm run start- запуск скомпилированного сервераnpm run lint- проверка кода ESLintnpm run format- форматирование кода с Prettiernpm run check- проверка форматирования
- Создайте новую ветку из
mainдля вашей задачи - Внесите необходимые изменения
- Запустите проверки кода:
lint,formatиcheck - Создайте коммит (pre-commit хуки запустят проверки автоматически)
- Отправьте изменения в репозиторий
- Создайте Pull Request
# Сборка клиента
cd client
npm run build
# Сборка сервера
cd ../server/auth-service
npm run build# Запуск сервера
cd server/auth-service
npm run startПроект использует Husky для запуска проверок кода перед коммитом. Настройки находятся в директории .husky/.
Конфигурация ESLint находится в файлах:
client/eslint.config.jsserver/eslint.config.js
Конфигурация Prettier находится в файлах:
.prettierrcв обеих директориях
Для стилей на клиенте используется Stylelint. Конфигурация в:
client/.stylelintrc.json