React, RTK query, Typescript, Nest, Postgres(Supabase), hosting (Render.com)
- - Получение категорий
- - Получение списка товаров
- - Постраничная навигация
- - Фильтрация товаров по множеству атрибутов
- - Получение данных товара (описание, параметры и изображения)
- - JWT Авторизация и аутентификация
nest:dev
- запуск сервера в режиме разработки
react:dev
- запуск react клиента в режиме разработки
start:dev
- запуск сервера и react клиента
nest:build
- сборка сервера
prisma:gen
- сгенерировать PrismaClient на основе файла schema.prisma.
prisma:push
- создать таблицы в базе данных на основе файла schema.prisma
prisma:seed
- заполнить таблицы данными на основе файла seed.ts
- SUPABASE_URL =""
- SUPABASE_KEY =""
- DATABASE_URL =""
- ACCESS_SECRET =""
- REFRESH_SECRET =""
- Общее описание:
- В качестве бэкенда используется NestJS
- Использует Prisma как ORM для работы с базой данных Postgeres (Supabase)
- Реализует кэширование через
@nestjs/cache-manager
- Основной функционал:
- Получение фасетов (фильтров) для категории (
api\v1\products\facets
) - Получение продуктов по категории с пагинацией (
api\v1\products
) - Получение продукта по ID (
api\v1\products\{id}
)
- Особенности реализации:
- Поддержка версионирование API
- Поддерживает фильтрацию по различным атрибутам продуктов
- Работает с JSON-полями в базе данных (поле
properties
) - Использует сырые SQL-запросы через
prisma.$queryRaw
- Реализует кэширование для:
- Атрибутов категорий
- Числовых опций атрибутов
- SQL-фильтров