Skip to content

ATD-FBE/moto-shop-fullstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Мото-Магазин" — Fullstack E-commerce Platform

Полнофункциональный интернет-магазин мотозапчастей с разделением прав доступа, системой управления заказами и интеграцией платежных шлюзов.

🛠 Технологический стек

  • 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 (система адаптеров и оркестраторов, гибкая смена и дополнение шлюзов).

🚀 Ключевые особенности

📦 Система заказов и корзина

  • Умная корзина: Автоматическая проверка наличия на складе, исправление расхождений и возможность восстановления удаленных позиций.
  • Синхронизация: Объединение гостевой корзины с серверной при авторизации.
  • Жизненный цикл заказа: Полный цикл от создания до завершения с логированием каждого изменения статуса.
  • Повтор заказа: Перенос товаров из старого заказа в корзину в один клик.

🔐 Ролевая модель (RBAC)

  • Администратор: Управление профилем, 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).

⚙️ Установка и запуск

  1. Клонируйте репозиторий.
  2. Установите зависимости: npm install.
  3. Настройте окружение:
  • Создайте файл .env.development в server/config/.
  • Заполните его своими данными по образцу .env.example (порты, JWT, код админа, БД, S3, ЮKassa).
  1. Внешний доступ (ngrok):
  • Убедитесь, что ngrok установлен в системе и авторизован (ngrok config add-authtoken <your_token>).
  • Получите ваш Static Domain в панели управления ngrok.
  • Зарегистрируйте Webhook-адрес в настройках платежного провайдера (ЮKassa): https://ваш-домен.ngrok-free.dev/api/orders/webhook.
  1. Запустите проект: npm start.
  • Команда запустит одновременно: Backend (Nodemon), Frontend (Webpack Dev Server) и туннель ngrok.


Примечание: В текущей версии не реализована администраторская статистика продаж, добавление новых товаров в уже подтвержденный заказ и эффект бана покупателя.

About

Fullstack E-commerce Platform | React, Redux Toolkit, Node.js, MongoDB, Payments (Yookassa) & Real-time SSE Order Tracking

Topics

Resources

Stars

Watchers

Forks

Contributors