Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SantehStore — Интернет-магазин сантехники

.NET React MySQL License

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


Ключевые возможности (Features)

  • Каталог товаров: Поиск, фильтрация по категориям и техническим характеристикам, сортировка по цене.
  • Корзина покупателя: Динамическое управление составом заказа без перезагрузки страницы.
  • Оформление заказа: Формирование заявки с указанием контактных данных и параметрами доставки.
  • Личный кабинет: История заказов и управление данными профиля.
  • Панель администратора: CRUD-операции для управления каталогом товаров, категориями и статусами заказов.
  • Безопасность: Аутентификация и разграничение ролей (User / Admin) на основе JWT-токенов.

Архитектура и Технологии (Tech Stack)

Backend

Технология / Библиотека Назначение
ASP.NET Core Web API Серверный фреймворк и REST API
Entity Framework Core / Pomelo ORM-слой для работы с MySQL
ASP.NET Core Identity / JWT Авторизация и безопасность
Swagger / OpenAPI Документирование API-эндпоинтов

Frontend

Технология / Библиотека Назначение
React Фреймворк пользовательского интерфейса (SPA)
Axios Клиент для выполнения асинхронных HTTP-запросов
React Router Клиентская маршрутизация
CSS Modules / Tailwind Стилизация компонентов

Database

Технология Назначение
MySQL Server Реляционная система управления базами данных

Инструкция по локальному запуску (Getting Started)

Требования к окружению (Prerequisites)

Перед началом установки убедитесь, что в системе развернуты следующие компоненты:

  • .NET 8.0 SDK (или новее)
  • Node.js (версии 18.x или новее) и пакетный менеджер npm
  • СУБД MySQL Server 8.0+ (или Docker-контейнер)
  • Git

Пошаговое руководство по развертыванию

1. Клонирование репозитория

git clone https://github.com/amadesya/SantehStore.git
cd SantehStore

2. Настройка базы данных MySQL

  1. Убедитесь, что экземпляр MySQL запущен.
  2. Укажите актуальную строку подключения в файле appsettings.json (см. раздел "Конфигурация").
  3. Выполните миграции Entity Framework Core для создания схем и таблиц:
cd SantehStore.API
dotnet ef database update

3. Запуск Backend-сервиса

cd SantehStore.API
dotnet run

После успешного запуска интерфейс Swagger UI будет доступен по адресу: https://localhost:7001/swagger (или по порту, указанному в launchSettings.json).

4. Запуск Frontend-клиента

В отдельном окне терминала выполните следующие команды:

cd client
npm install
npm start

Приложение откроется в браузере по адресу: http://localhost:3000.


Переменные окружения и Конфигурация

Конфигурация сервера находится в файле appsettings.json (или appsettings.Development.json).

Структура конфигурационного файла:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Port=3306;Database=santehstore_db;Uid=root;Pwd=your_password;"
  },
  "Jwt": {
    "Key": "YOUR_SECRET_KEY_HERE_MIN_LENGTH_32_CHARS",
    "Issuer": "SantehStoreAPI",
    "Audience": "SantehStoreClient"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

Структура проекта (Project Structure)

SantehStore/
├── SantehStore.API/              # Серверная часть (ASP.NET Core Web API)
│   ├── Controllers/              # REST Контроллеры (Products, Orders, Auth)
│   ├── Data/                     # Контекст базы данных (DbContext) и миграции
│   ├── Models/                   # Доменные модели (Entities)
│   ├── DTOs/                     # Объекты передачи данных (Data Transfer Objects)
│   ├── Services/                 # Сервисы бизнес-логики
│   └── appsettings.json          # Конфигурационный файл приложения
│
├── client/                       # Клиентская часть (React SPA)
│   ├── public/                   # Статические ресурсы
│   └── src/
│       ├── components/           # Переиспользуемые UI-компоненты
│       ├── pages/                # Страницы приложения (Catalog, Cart, Admin)
│       ├── services/             # Клиентские API-сервисы (Axios)
│       ├── context/              # Контексты состояния (Auth, Cart)
│       └── App.js                # Точка входа и конфигурация маршрутизатора
│
└── README.md                     # Документация проекта

Лицензия

Проект распространяется под лицензией MIT. Подробная информация находится в файле LICENSE.

About

Fullstack интернет-магазин сантехники на ASP.NET Core, React и MySQL

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages