From 4af450568e3572cbe9141eb349ccf54472b53a8e Mon Sep 17 00:00:00 2001 From: Egor <106386966+JlusS@users.noreply.github.com> Date: Thu, 18 Sep 2025 11:48:29 +0200 Subject: [PATCH] Update README.md --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ae33b7e..dbdd6ec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -[README.md](https://github.com/user-attachments/files/22389320/README.md) # 📚 Book-Repo *Empowering Discovery, Simplifying Your Book Journey* @@ -9,7 +8,31 @@ --- -## 📖 Overview +## 📖 Overview + + +## 🛠 Technology Stack +| Technology | Version | +|--------------------------|-----------| +| Java | 17 | +| Spring Boot | 3.3.3 | +| Spring Security | bundled | +| Spring Data JPA | bundled | +| Spring Validation | bundled | +| Springdoc OpenAPI | 2.1.0 | +| Liquibase | latest | +| MapStruct | 1.5.5.Final | +| Lombok | 1.18.36 | +| JWT (jjwt) | 0.11.5 | +| Hibernate Validator | bundled | +| MySQL Connector/J | 8.4.0 / 8.0.33 | +| Docker Compose Support | 3.1.1 | +| Testcontainers (core) | 1.19.0 | +| Testcontainers BOM | 1.21.3 | +| JUnit (Spring Boot Test)| bundled | +| Maven Compiler Plugin | 3.3.0+ | +| Maven Checkstyle Plugin | 3.3.0 | + **Book-Repo** is a full-featured **online book store application** built with **Java & Spring Boot**. It demonstrates best practices for modern backend development: modular architecture, containerized deployment, and comprehensive testing. @@ -85,17 +108,41 @@ docker run -it book-repo mvn test ## 📂 Project Structure ``` book-repo/ - ├── src/ # Source code (controllers, services, repositories, configs) - ├── resources/ # Application configuration & Liquibase migrations - ├── Dockerfile # Docker image build - ├── docker-compose.yml # Containerized environment setup - └── pom.xml # Maven project descriptor + ├── src/ + │ ├── main/java/com/bookrepo/ + │ │ ├── controller/ # REST controllers (BookController, OrderController, CartController, AuthController) + │ │ ├── dto/ # Data Transfer Objects (BookDTO, UserDTO, OrderDTO, etc.) + │ │ ├── entity/ # JPA entities (Book, User, Role, Cart, Order, OrderItem) + │ │ ├── repository/ # Spring Data repositories for each entity + │ │ ├── service/ # Business logic (BookService, OrderService, CartService, UserService) + │ │ ├── security/ # JWT configuration, filters, role-based access + │ │ └── config/ # Spring and application configuration + │ └── test/java/com/bookrepo/ + │ ├── controller/ # Controller layer tests + │ ├── service/ # Unit tests for business logic + │ └── repository/ # Database integration tests with Testcontainers + ├── resources/ + │ ├── db/changelog/ # Liquibase migration scripts + │ ├── application.yml # Spring Boot configuration + │ └── logback.xml # Logging configuration + ├── docs/ + │ ├── model-diagram.png # Entity-Relationship diagram + │ └── postman/ # Postman collections for API testing + ├── Dockerfile # Docker image build + ├── docker-compose.yml # Containerized environment setup + └── pom.xml # Maven project descriptor ``` +### 🗃 Domain Model +- **Book**: stores information about title, author, genre, price, stock, etc. +- **User**: application users with roles (ADMIN, CUSTOMER). +- **Role**: defines permissions for users. +- **Cart**: holds items selected by a user before checkout. +- **Order**: finalized purchase with order items, status, and total price. +- **OrderItem**: association between books and orders with quantity & price. --- -## 🗺 Roadmap -- [ ] Implement book search with filters (author, genre, price) +## 🗺 Roadmap - [ ] Add payment integration (Stripe/PayPal) - [ ] Improve admin panel for managing books and users - [ ] Deploy CI/CD pipeline with GitHub Actions