v1.0.0 is the foundation. The goal was simple: build a real, working system worth growing. This version focuses on the core architectural "Vertical Slice" — moving from the database to the API endpoint.
This is a basic Library Management REST API. It's not "finished" — it's a clean, honest starting point. No validation, no complex error handling, no security yet. Just the foundation, built to grow.
- Domain Modeling: Created
Bookentity andBookStatusenum. - Persistence Layer: Added
BookRepositoryusing Spring Data JPA. - Service Layer: Implemented
BookServicewith decoupled business logic. - Web Layer: Added
BookControllerwith standardized RESTful endpoints. - Architecture: Used Constructor Injection for clean, testable code.
src/main/java/com/example/readify/
├── controller/ # REST Endpoints (The Entry Point)
├── service/ # Business Logic (The Brain)
├── repository/ # Data Access Layer (The Librarian)
└── entity/ # Database Models + Enums (Book, BookStatus)
- Java 21 (LTS)
- Spring Boot 3.x
- Spring Data JPA
- MySQL
- Maven
- Java 21
- MySQL 8.0+
- Maven
- Clone the repository:
git clone https://github.com/ayse-viv/readify.git
cd readify- Configure Database:
export DB_USERNAME=your_username
export DB_PASSWORD=your_password- Run the Application:
./mvnw spring-boot:run| Method | Endpoint | Description |
|---|---|---|
GET |
/api/books | Fetch all books in the library |
GET |
/api/books/{id} | Fetch a specific book by ID |
POST |
/api/books | Add a new book to the database |
PUT |
/api/books/{id} | Update existing book details |
DELETE |
/api/books/{id} | Remove a book from the library |
v1.0.0 had one goal — build something working and see how it all comes together. Just get the foundation in place and understand how the layers connect. Used Claude as a guide to learn, practice, and make decisions along the way.
v2 coming soon — same project, next level. 🚀