Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛒 BuySell — Marketplace на Spring Boot Полнофункциональное учебное приложение с авторизацией, UI, загрузкой изображений и админ-панелью

📌 Описание проекта

BuySell — веб-приложение, позволяющее пользователям: ✔ размещать товары ✔ просматривать объявления ✔ загружать изображения ✔ искать товары ✔ авторизоваться и регистрироваться

А также включает: 🔒 систему ролей, 🔐 защиту CSRF, ⚙️ админ-панель и 🎨 оформленный UI.

Проект был создан с нуля в процессе обучения, и я прошёл весь путь — от установки Spring Boot до продвинутой настройки Spring Security и админского функционала.

🚀 Функционал проекта 👤 Пользовательский функционал

Регистрация и вход в систему

Личный кабинет

Просмотр всех товаров

Поиск товаров по названию

Просмотр страницы товара

Создание своих объявлений

Загрузка до 3 изображений

🛡 Админ-панель (ROLE_ADMIN)

Просмотр всех пользователей

Управление ролями

Блокировка / разблокировка пользователей

Модерация товаров

Удаление товаров

Статистика

🎨 UI / Frontend

Проект включает собственный UI-дизайн:

аккуратные формы логина и регистрации

оформленный список товаров

карточки товаров

админ-панель в едином стиле

удобная навигация

FreeMarker (FTLH) используется для шаблонов, оформленных вручную.

🧠 Чему я научился в процессе разработки 🔧 1. Spring Boot (от нуля до продвинутого уровня)

Настройка приложения, зависимостей, свойств

Работа с контроллерами, сервисами, репозиториями

MVC-архитектура в реальном проекте

🗄 2. Работа с базой данных (JPA + MySQL)

Создание сущностей (User, Product, Image, Role)

Маппинг связей: OneToMany, ManyToOne, ElementCollection

Поиск, фильтрация, сохранение данных

Миграции структуры

🔐 3. Spring Security (старый и новый подходы) Изучил и внедрил:

WebSecurityConfigurerAdapter (устаревший способ)

SecurityFilterChain + AuthenticationManager (новый подход)

Настройка ролей: ROLE_USER, ROLE_ADMIN

Кастомная логика аутентификации через email

Корректная работа CSRF

CustomUserDetailsService

Исправил проблемы:

Invalid CSRF Token

Response already committed

Bad Credentials

Ошибки FreeMarker

🖥 4. Шаблоны FreeMarker (FTLH)

Условные конструкции <#if>, циклы <#list>

Безопасные проверки (?exists, !'')

Вставка CSRF токена

Передача моделей из контроллеров

Создание UI для пользователей и админов

📁 5. Загрузка файлов

Обработка multipart-запросов

Сохранение изображений на диск

Привязка изображений к товарам

Отображение фото в карточках

⚙️ 6. Навыки Debug и чтение логов

Анализ stacktrace

Исправление ошибок шаблонов

Работа с логами Spring Security

Понимание работы фильтров и цепочек Security

🗂 Стек технологий Категория Технологии Backend Java 17, Spring Boot 3, Spring MVC Security Spring Security 6, BCrypt Templates FreeMarker (FTLH) Database MySQL, Spring Data JPA Utils Lombok, MultipartFile Build Maven 🏛 Архитектура проекта BuySell ├── controllers # Контроллеры HTTP ├── services # Бизнес-логика ├── repositories # Работа с БД ├── models # Сущности JPA ├── configurations # Spring Security и прочие конфиги ├── templates # FTLH шаблоны (UI) └── static # CSS, JS, изображения

📸 Скриншоты (добавишь сам)

Места под изображения:

  • login page
  • registration page
  • product list
  • product view
  • admin panel

▶️ Запуск проекта

Настроить application.properties

Создать базу MySQL

Запустить:

mvn spring-boot:run

Перейти в браузере:

http://localhost:8080

📚 Итог

В процессе разработки я:

✔ Создал полноценное приложение уровня портфолио ✔ Освоил Spring Boot, Security, JPA и FreeMarker ✔ Реализовал админ-панель ✔ Построил UI вручную ✔ Научился разбираться в сложных ошибках ✔ Прошёл весь путь от нуля до структурированного backend-проекта

Учился по гайдам с ютуба

Releases

Packages

Contributors

Languages