Skip to content

Latest commit

 

History

History
219 lines (167 loc) · 9.39 KB

File metadata and controls

219 lines (167 loc) · 9.39 KB

Содержание

Описание

image Интернет-магазин цветов с современным дизайном и удобным интерфейсом. Проект состоит из двух основных частей:
  • Frontend: React Vite, TailwindCSS и React Router
  • Backend: Spring Boot REST API с Spring Security, JPA и MySQL

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

Технологии

Backend

  • Java 24
  • Spring Boot 3.5.4
  • Spring Security
  • Spring Data JPA
  • MySQL

Frontend

  • React 19.1.1
  • Vite 7.1.2
  • React Router DOM 7.8.2
  • TailwindCSS 4.1.12

Структура

flowerPan/
├── front/                    # Frontend приложение
│
├── src/main/java/com/bob/flowerPan/
│   ├── config/              # Конфигурация
│   │
│   ├── controller/          # REST контроллеры
│   │
│   ├── model/               # JPA сущности
│   │
│   ├── repository/          # JPA репозитории
│   │
│   ├── service/             # Бизнес-логика
│   │
│   └── dto/                 # Data Transfer Objects
│
├── src/main/resources/
│   └── application.properties
│
└── pom.xml                  # Maven конфиг

Функциональность

Для клиентов

  • Просмотр каталога товаров с изображениями
  • Добавление товаров в корзину
  • Управление количеством товаров в корзине
  • Оформление заказа с указанием контактных данных
  • Выбор времени доставки
  • Валидация формы заказа
  • Сохранение корзины в localStorage

Для администраторов

  • Просмотр и управление заказами
  • CRUD операции с товарами
  • Загрузка изображений для товаров
  • Управление пользователями
  • Поиск по заказам, товарам и пользователям
  • Редактирование заказов
image

Backend функциональность

  • RESTful API
  • Аутентификация пользователей (Spring Security)
  • Хеширование паролей (BCrypt)
  • Валидация данных (Bean Validation)
  • Обработка исключений
  • CORS настройка для фронтенда
  • Загрузка и хранение изображений
  • Управление остатками товаров на складе
  • Автоматическое уменьшение остатков при создании заказа

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

  1. Создайте базу данных MySQL:
CREATE DATABASE flowerpan;
  1. Обновите настройки подключения в src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/flowerpan
spring.datasource.username=your_username
spring.datasource.password=your_password

Запуск Backend

  1. Перейдите в корневую директорию:
cd flowerPan
  1. Соберите проект:
./mvnw clean install
  1. Запуск:
./mvnw spring-boot:run

Backend будет доступен по адресу: http://localhost:8080

Запуск Frontend

  1. Перейдите в директорию:
cd front
  1. Установка зависимостей:
npm install
  1. Запуск:
npm run dev

Frontend будет доступен по адресу: http://localhost:5173

Сборка

Backend:

./mvnw clean package
java -jar target/flowerPan-0.0.1-SNAPSHOT.jar

Frontend:

cd front
npm run build

Собранные файлы будут в директории front/dist

Roadmap

Проект находится в стадии разработки. Ниже перечислены задачи, которые необходимо реализовать для завершения проекта:

Аутентификация и безопасность

  • Включить регистрацию — в SecurityConfig.java регистрация отключена (строка 41: denyAll())
  • Роль-ориентированный доступ — раскомментировать и доработать проверки ролей в SecurityConfig.java
  • Защита админ-панели — добавить проверку аутентификации и роли ADMIN для доступа к /admin
  • Восстановление пароля — реализовать функционал сброса пароля через email
  • Refresh токены — добавить механизм обновления JWT токенов

Платежи

  • Интеграция платежной системы — подключить платежный шлюз (например, Stripe, PayPal, или российские системы)
  • Обработка платежей — реализовать логику обработки успешных/неуспешных платежей
  • Обновление статуса заказа — автоматически помечать заказы как оплаченные после успешного платежа
  • История платежей — добавить отслеживание истории платежей

Улучшения каталога

  • Фильтрация и сортировка — фильтры по цене, категории, наличию на фронтенде
  • Поиск товаров — полнотекстовый поиск по названию и описанию
  • Пагинация — разбить список товаров на страницы
  • Описания товаров — добавить поле описания для каждого товара
  • Промокоды и скидки — система скидок и промокодов

Работа с изображениями

  • Валидация изображений — проверка формата, размера файла
  • Сжатие изображений — автоматическое сжатие загружаемых изображений
  • S3 — перенос хранения изображений в облачное хранилище

Производительность

  • Кэширование — реализовать кэширование списка товаров
  • Lazy loading изображений — оптимизация загрузки изображений на фронтенде

Аналитика и отчеты

  • Статистика продаж — дашборд с графиками продаж, популярных товаров
  • Отчеты — генерация отчетов по продажам за период

Тестирование

  • Unit тесты — покрытие сервисов и контроллеров тестами
  • Integration тесты — тестирование API endpoints

Исправление багов и улучшения

  • Обработка ошибок на фронтенде — улучшить обработку ошибок API запросов
  • Валидация на фронтенде — добавить валидацию форм перед отправкой
  • Loading состояния — добавить индикаторы загрузки во всех местах

Уведомления

  • Email сервис — интеграция с email сервисом (SendGrid, Mailgun, или нативный SMTP)
  • Шаблоны писем — создать красивые HTML шаблоны для писем
  • Уведомления о заказах — автоматическая отправка писем при создании/изменении заказа
  • Подтверждение регистрации — отправка письма с подтверждением email