- Frontend: React Vite, TailwindCSS и React Router
- Backend: Spring Boot REST API с Spring Security, JPA и MySQL
Приложение позволяет клиентам просматривать каталог цветов, добавлять товары в корзину и оформлять заказы. Администраторы могут управлять товарами, заказами и пользователями через специальную панель управления.
- Java 24
- Spring Boot 3.5.4
- Spring Security
- Spring Data JPA
- MySQL
- 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 операции с товарами
- Загрузка изображений для товаров
- Управление пользователями
- Поиск по заказам, товарам и пользователям
- Редактирование заказов
- RESTful API
- Аутентификация пользователей (Spring Security)
- Хеширование паролей (BCrypt)
- Валидация данных (Bean Validation)
- Обработка исключений
- CORS настройка для фронтенда
- Загрузка и хранение изображений
- Управление остатками товаров на складе
- Автоматическое уменьшение остатков при создании заказа
- Создайте базу данных MySQL:
CREATE DATABASE flowerpan;- Обновите настройки подключения в
src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/flowerpan
spring.datasource.username=your_username
spring.datasource.password=your_password- Перейдите в корневую директорию:
cd flowerPan- Соберите проект:
./mvnw clean install- Запуск:
./mvnw spring-boot:runBackend будет доступен по адресу: http://localhost:8080
- Перейдите в директорию:
cd front- Установка зависимостей:
npm install- Запуск:
npm run devFrontend будет доступен по адресу: http://localhost:5173
Backend:
./mvnw clean package
java -jar target/flowerPan-0.0.1-SNAPSHOT.jarFrontend:
cd front
npm run buildСобранные файлы будут в директории front/dist
Проект находится в стадии разработки. Ниже перечислены задачи, которые необходимо реализовать для завершения проекта:
- Включить регистрацию — в
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