Полнофункциональный интернет-магазин мотозапчастей с разделением прав доступа, системой управления заказами и интеграцией платежных шлюзов.
- Frontend: React (Hooks), Redux Toolkit (Slices, Thunks), SCSS (Custom Design).
- Backend: Node.js, Express, JWT via HttpOnly & Secure Cookies, winston.
- Database: MongoDB (Local / Atlas via
.env). - Storage: Multi-provider system (Local FS / AWS S3 Backblaze via
.env) с поддержкой транзакционных роллбэков. - Real-time: Server-Sent Events (SSE) для мгновенных уведомлений клиентов и live-мониторинга заказов администраторами.
- Payments: Интеграция ЮKassa (система адаптеров и оркестраторов, гибкая смена и дополнение шлюзов).
- Умная корзина: Автоматическая проверка наличия на складе, исправление расхождений и возможность восстановления удаленных позиций.
- Синхронизация: Объединение гостевой корзины с серверной при авторизации.
- Жизненный цикл заказа: Полный цикл от создания до завершения с логированием каждого изменения статуса.
- Повтор заказа: Перенос товаров из старого заказа в корзину в один клик.
- Администратор: Управление профилем, CRUD категорий/товаров, CRUD новостей/акций, управление пользователями (скидки, бан), рассылка SSE-уведомлений, управление заказами (статус, детали, товары, заметка) и финансами (оплаты/возвраты/аннулирование), просмотр логов ошибок (файла, созданного winston).
- Клиент: Управление профилем, история заказов, система уведомлений, онлайн-оплата.
- Гость: Просмотр каталога, сбор временной корзины.
- Centralized Routing: Единый конфиг управляет маршрутами, хлебными крошками и Auth Guard.
- File Management: Продвинутая работа с изображениями (буферизация для S3, транзакционная логика — удаление "мусора" при сбоях).
- API Design: Строгий паттерн именования функций и обработчиков для масштабируемости.
- Responsive Design: Адаптивность через Media Queries и React-хуки.
- Hybrid Dev Environment: Использование ngrok (в режимах dev и test) для проброса локального сервера во внешнюю сеть (необходимо для ЮKassa Webhooks).
- Клонируйте репозиторий.
- Установите зависимости:
npm install. - Настройте окружение:
- Создайте файл
.env.developmentвserver/config/. - Заполните его своими данными по образцу
.env.example(порты, JWT, код админа, БД, S3, ЮKassa).
- Внешний доступ (ngrok):
- Убедитесь, что ngrok установлен в системе и авторизован (ngrok config add-authtoken <your_token>).
- Получите ваш Static Domain в панели управления ngrok.
- Зарегистрируйте Webhook-адрес в настройках платежного провайдера (ЮKassa):
https://ваш-домен.ngrok-free.dev/api/orders/webhook.
- Запустите проект: npm start.
- Команда запустит одновременно: Backend (Nodemon), Frontend (Webpack Dev Server) и туннель ngrok.
Примечание: В текущей версии не реализована администраторская статистика продаж, добавление новых товаров в уже подтвержденный заказ и эффект бана покупателя.