SantehStore — fullstack веб-приложение для сферы электронной коммерции, предназначенное для демонстрации, поиска и продажи сантехнического оборудования. Проект включает в себя пользовательский интерфейс для работы с каталогом и заказов, а также административную панель для управления сервисом.
- Каталог товаров: Поиск, фильтрация по категориям и техническим характеристикам, сортировка по цене.
- Корзина покупателя: Динамическое управление составом заказа без перезагрузки страницы.
- Оформление заказа: Формирование заявки с указанием контактных данных и параметрами доставки.
- Личный кабинет: История заказов и управление данными профиля.
- Панель администратора: CRUD-операции для управления каталогом товаров, категориями и статусами заказов.
- Безопасность: Аутентификация и разграничение ролей (User / Admin) на основе JWT-токенов.
| Технология / Библиотека | Назначение |
|---|---|
| ASP.NET Core Web API | Серверный фреймворк и REST API |
| Entity Framework Core / Pomelo | ORM-слой для работы с MySQL |
| ASP.NET Core Identity / JWT | Авторизация и безопасность |
| Swagger / OpenAPI | Документирование API-эндпоинтов |
| Технология / Библиотека | Назначение |
|---|---|
| React | Фреймворк пользовательского интерфейса (SPA) |
| Axios | Клиент для выполнения асинхронных HTTP-запросов |
| React Router | Клиентская маршрутизация |
| CSS Modules / Tailwind | Стилизация компонентов |
| Технология | Назначение |
|---|---|
| MySQL Server | Реляционная система управления базами данных |
Перед началом установки убедитесь, что в системе развернуты следующие компоненты:
- .NET 8.0 SDK (или новее)
- Node.js (версии 18.x или новее) и пакетный менеджер npm
- СУБД MySQL Server 8.0+ (или Docker-контейнер)
- Git
git clone https://github.com/amadesya/SantehStore.git
cd SantehStore- Убедитесь, что экземпляр MySQL запущен.
- Укажите актуальную строку подключения в файле
appsettings.json(см. раздел "Конфигурация"). - Выполните миграции Entity Framework Core для создания схем и таблиц:
cd SantehStore.API
dotnet ef database updatecd SantehStore.API
dotnet runПосле успешного запуска интерфейс Swagger UI будет доступен по адресу: https://localhost:7001/swagger (или по порту, указанному в launchSettings.json).
В отдельном окне терминала выполните следующие команды:
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": "*"
}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.