Fullstack marketplace (React + Spring Boot + PostgreSQL)
ADS — это fullstack веб-приложение маркетплейса.
- 🔐 регистрация и авторизация
- 📦 создание объявлений (с изображениями)
- ✏️ редактирование и удаление объявлений
- 👤 профиль пользователя
- 💬 комментарии к объявлениям
- 🖼 загрузка изображений
- 📡 REST API
flowchart LR
U[User] --> F[React Frontend]
F -->|REST API| B[Spring Boot Backend]
B --> DB[(PostgreSQL)]
B --> FS[/Image Storage]
B --> Flyway[Flyway Migrations]
- React 18
- Redux
- React Router
- Webpack
- Sass
- Особенности:
- SPA архитектура
- централизованное состояние (Redux)
- кастомные hooks
- API слой (utils/api.js)
| Метрика | Значение |
|---|---|
| Statements | 91% |
| Branches | 77% |
| Functions | 89% |
| Lines | 91% |
- Java 17
- Spring Boot
- Spring Security
- JPA / Hibernate
- _PostgreSQL*
- Flyway
- CRUD объявлений
- комментарии
- управление пользователем
- загрузка файлов
- безопасность
| Слой | Coverage |
|---|---|
| Controllers | 100% |
| Services | 100% |
| Impl | ~92% |
| Total | ~76% |
avito/
├── backend/
│ ├── controller/
│ ├── service/
│ ├── entity/
│ ├── dto/
│ ├── security/
│ └── config/
│
├── frontend/
│ ├── components/
│ ├── redux/
│ ├── utils/
│ └── hooks/
│
├── docker-compose.yml
└── README.md
🐳 Через Docker (рекомендуется)
POSTGRES_DB=avito_db
POSTGRES_USER=avito_user
POSTGRES_PASSWORD=avito_password
SPRING_DATASOURCE_URL=jdbc:postgresql://avito-db:5432/avito_db
SPRING_DATASOURCE_USERNAME=avito_user
SPRING_DATASOURCE_PASSWORD=avito_password
SPRING_PROFILES_ACTIVE=docker
APP_IMAGES_DIR=/images
docker compose up --build
Backend → http://localhost:8081
cd backend
vn clean spring-boot:run
Frontend → http://localhost:3001
cd frontend
npm install
npm run dev
git clone https://github.com/AlexShcherb1173/avito.git
cd avito
docker compose up -d --build
http://localhost:8081/swagger-ui/
npm run test
npm run test:coverage
mvn clean test
- multi-stage build
- Maven → JAR → runtime
- build через webpack
- nginx как web server
- fullstack архитектуру
- REST API
- работу с файлами
- безопасность (Spring Security)
- state management (Redux)
- тестирование (Jest + JUnit)
- Docker orchestration
Alex Shcherbyna
GitHub: https://github.com/AlexShcherb1173
GitHub: https://github.com/ScherbAlex
- 👉 Junior+ / Middle Fullstack
- 👉 Готов для портфолио
- 👉 Можно масштабировать до production