Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Содержание

Описание

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

About

The app allows customers to browse the flower catalog, view items in their cart, and place orders. Administrators can manage products, orders, and users through the control panel.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages