Современное веб-приложение для управления товарами с использованием NestJS (backend) и Next.js (frontend).
TrueCode - это полнофункциональное приложение для управления товарами с возможностью:
- ✅ Создание, редактирование и удаление товаров
- ✅ Загрузка изображений товаров
- ✅ Поиск и фильтрация товаров
- ✅ Пагинация результатов
- ✅ Сортировка по различным параметрам
- ✅ Современный и отзывчивый UI
- NestJS - современный Node.js фреймворк
- PostgreSQL - реляционная база данных
- Prisma - ORM для работы с базой данных
- Docker - контейнеризация
- Next.js 15 - React фреймворк
- TypeScript - типизированный JavaScript
- Tailwind CSS - утилитарный CSS фреймворк
- React Query - управление состоянием
- React Hook Form - управление формами
- Клонируйте репозиторий:
git clone https://github.com/your-username/truecode.git
cd truecode- Запустите с помощью Docker Compose:
docker-compose up -d- Откройте в браузере:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3002
- PostgreSQL: localhost:5433
cd backend
npm install
npm run start:devcd frontend
npm install
npm run devПроект готов к развертыванию на облачных платформах:
- Frontend: Vercel, Netlify
- Backend: Railway, Render
- База данных: PostgreSQL на Railway/Render
- Файловое хранилище: Cloudinary, AWS S3
📖 Подробное руководство по развертыванию: DEPLOYMENT.md
truecode/
├── backend/ # NestJS API
│ ├── src/
│ │ ├── products/ # Модуль товаров
│ │ ├── prisma/ # Настройки Prisma
│ │ └── main.ts # Точка входа
│ ├── prisma/
│ │ └── schema.prisma # Схема базы данных
│ └── __tests__/ # Тесты
├── frontend/ # Next.js приложение
│ ├── src/
│ │ ├── app/ # App Router
│ │ ├── components/ # React компоненты
│ │ ├── lib/ # Утилиты и API
│ │ └── types/ # TypeScript типы
│ └── public/ # Статические файлы
├── docker-compose.yml # Docker конфигурация
└── DEPLOYMENT.md # Руководство по развертыванию
cd backend
npm run test # Все тесты
npm run test:unit # Unit тесты
npm run test:integration # Integration тесты
npm run test:performance # Performance тестыПодробнее: backend/TESTING.md
cd frontend
npm run testПодробнее: frontend/TESTING.md
GET /products
Query параметры:
- page: номер страницы
- limit: количество товаров на странице
- search: поиск по названию
- sortBy: поле для сортировки
- sortOrder: asc/desc
- minPrice: минимальная цена
- maxPrice: максимальная цена
GET /products/:uid
POST /products
Body: {
"name": "Название товара",
"description": "Описание",
"price": 1000
}
PATCH /products/:uid
Body: {
"name": "Новое название",
"price": 1500
}
DELETE /products/:uid
POST /products/:uid/image
Content-Type: multipart/form-data
DATABASE_URL=postgresql://truecode:truecode@localhost:5433/truecode
NODE_ENV=development
PORT=3000
ALLOWED_ORIGINS=http://localhost:3000,http://localhost:3002
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secretNEXT_PUBLIC_API_URL=http://localhost:3002- Fork репозитория
- Создайте feature ветку (
git checkout -b feature/amazing-feature) - Commit изменения (
git commit -m 'Add amazing feature') - Push в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
Этот проект лицензирован под MIT License.
Если у вас есть вопросы или проблемы:
- Создайте Issue в GitHub
- Обратитесь к DEPLOYMENT.md для вопросов по развертыванию
⭐ Не забудьте поставить звездочку репозиторию, если он вам понравился!