Приложение для управления вакансиями с раздельной архитектурой клиента и сервера.
Проект состоит из двух независимых частей:
Серверная часть приложения - RESTful API на NestJS с PostgreSQL базой данных.
Технологии:
- NestJS - Progressive Node.js framework
- TypeScript - Типизированный JavaScript
- PostgreSQL - Реляционная база данных
- TypeORM - ORM для работы с базой данных
- Swagger - Автоматическая документация API
- Docker - Контейнеризация приложения
- class-validator - Валидация входящих данных
Реализовано:
- REST API для управления вакансиями (создание, поиск, удаление)
- Система избранных вакансий
- Поиск вакансий с пагинацией
- Валидация всех входящих данных
- Автоматическая документация API (Swagger)
- Docker контейнеризация для development и production
Клиентская часть приложения - React SPA для взаимодействия с API.
Технологии:
- React 18 - Библиотека для построения UI
- TypeScript - Типизированный JavaScript
- Vite - Инструмент сборки
- Mantine - Библиотека UI компонентов
- Zustand - Управление состоянием
- React Router - Маршрутизация
- Axios - HTTP клиент
Реализовано:
- Поиск вакансий с пагинацией
- Просмотр детальной информации о вакансии
- Система избранных вакансий
- Адаптивный дизайн
- Обработка ошибок сети
- Кастомные хуки (useInput, usePreventCopy)
TestEx2/
├── server/ # Backend приложение (NestJS)
│ ├── src/ # Исходный код сервера
│ ├── dist/ # Скомпилированный код (не в git)
│ └── package.json
│
├── client/ # Frontend приложение (React)
│ ├── src/ # Исходный код клиента
│ ├── dist/ # Собранное приложение (не в git)
│ └── package.json
│
└── README.md # Этот файл
cd server
npm install
npm run start:devAPI будет доступен на http://localhost:3000
Swagger документация: http://localhost:3000/api
cd client
npm install
npm run start:devПриложение будет доступно на http://localhost:5173
npm run start:dev- Запуск в режиме разработкиnpm run start:prod- Запуск в production режимеnpm run build- Сборка для productionnpm run docker:dev:build- Запуск через Docker (development)npm run docker:prod:build- Запуск через Docker (production)
npm run start:dev- Запуск в режиме разработкиnpm run start:prod- Запуск preview production сборкиnpm run build- Сборка для production
Каждая часть проекта использует свои переменные окружения:
server/.env.development- для development сервераserver/.env.production- для production сервераclient/.env.development- для development клиентаclient/.env.production- для production клиента