A multi-module Spring Boot app for items sharing, booking and request management.
- User Management
- CRUD operations
- User validation and error handling
- Item Sharing
- Add items with availability status
- Search items by text query
- Manage item ownership
- Booking System
- Create bookings with time slots
- Approve/reject booking requests
- View booking history
- Request Management
- Create item requests
- View requests with answers
- Track request status
- Persistent Storage
- PostgreSQL database for production
- JPA repositories for data access
- In-Memory Storage
- Optional in-memory implementations
- Comprehensive endpoints for all entities
- JSON request/response format
- Proper HTTP status codes, and validation
- Extensive error handling
- Logging for all operations
- Layered architecture
- Java 21 or later
- Maven 3.6 or later
- PostgreSQL 17.4 or later (optional, for production)
- Docker 27.4.0 or later (optional, for containerized deployment)
git clone git@github.com:DawydowGerman/java-shareit.gitcd java-shareitmvn clean package-
Option 1: With PostgreSQL (default)
mvn spring-boot:run
-
Option 2: With Docker
docker-compose up --build