Book Sharing API for zolo-booky made using Java SpringBoot.
Developed with the software and tools below.
Zolo's Booky application is an app for the Zolo residents to share books with each other.
The backend of the application is developed using Java SpringBoot.
The backend allows to manage books, appeals, users, images, and notifications.
Books refer to the books that are available for sharing or have been shared by the users.
Appeals refer to the requests made by the users to borrow a book from another user.
Users refer to the residents of Zolo who are using the application.
The images are (expected to be) for the book covers.
The backend allows searching for books based on the title or author.
The backend also allows sending notifications to the users using Firebase.
The application provides endpoints for creating, updating, deleting, and fetching books, appeals, and users.
The application also provides endpoints for uploading, fetching, and deleting images.
Booky also provides endpoints for sending notifications to the users using Firebase.
The application also provides endpoints for searching books based on the title or author.
π Repository Structure
βββ zolo-booky-backend/
βββ .github
β βββ workflows
β βββ gradle.yml
β βββ greetings.yml
βββ Dockerfile
βββ README.md
βββ SECURITY.md
βββ Taskfile.yml
βββ build.gradle
βββ compose.yaml
βββ gradle
β βββ wrapper
β βββ gradle-wrapper.jar
β βββ gradle-wrapper.properties
βββ gradlew
βββ gradlew.bat
βββ settings.gradle
βββ src
βββ main
β βββ java
β β βββ com
β β βββ zolobooky
β βββ resources
β βββ application.yaml
β βββ static
β βββ banner.txt
β βββ fire-config.json
βββ test
βββ java
βββ com
βββ zolobooky
.
.github.workflows
src.main.resources
src.main.java.com.zolobooky.booky
src.main.java.com.zolobooky.booky.helpers
src.main.java.com.zolobooky.booky.notifications
src.main.java.com.zolobooky.booky.notifications.FireExceptions
src.main.java.com.zolobooky.booky.notifications.dto
File
Summary
SendFireDTO.java
Data Transfer Object for Fire Model that will be shown when sending a notification.
CreateFireDTO.java
Data Transfer Object for Fire Model that is required to create a new notification.
src.main.java.com.zolobooky.booky.dashboard
src.main.java.com.zolobooky.booky.users
src.main.java.com.zolobooky.booky.users.dto
File
Summary
ListUserDTO.java
Data Transfer Object for User Model that will be shown when list of users is being accessed.
CreateUserDTO.java
Data Transfer Object for User Model that is required to create a new user.
src.main.java.com.zolobooky.booky.appeals
src.main.java.com.zolobooky.booky.appeals.dto
File
Summary
CreateAppealDTO.java
Data Transfer Object for Appeal Model that is required to create a new appeal.
UpdateAppealDTO.java
Data Transfer Object for Appeal Model that is required to update an appeal.
StatusAppealDTO.java
Data Transfer Object for Appeal Model that is required to change status of an appeal.
ShortAppealDTO.java
TODO src/main/java/com/zolobooky/booky/appeals/dto/ShortAppealDTO.java
AppealDTO.java
Data Transfer Object for Appeal Model that all attributes appeal.
src.main.java.com.zolobooky.booky.appeals.AppealExceptions
src.main.java.com.zolobooky.booky.commons
src.main.java.com.zolobooky.booky.books
src.main.java.com.zolobooky.booky.books.BookExceptions
src.main.java.com.zolobooky.booky.books.dto
File
Summary
ListBookDTO.java
Data Transfer Object for Book Model that will be shown when list of books is being accessed.
BookDTO.java
Data Transfer Object for Book Model that all attributes book.
UpdateBookDTO.java
Data Transfer Object for Book Model that is required to update a book.
CreateBookDTO.java
Data Transfer Object for Book Model that is required to create a new book.
src.main.java.com.zolobooky.booky.search
src.main.java.com.zolobooky.booky.images
src.main.java.com.zolobooky.booky.images.ImageExceptions
src.test.java.com.zolobooky.booky
Requirements
Ensure you have the following dependencies installed on your system:
Clone the zolo-booky-backend repository:
Change to the project directory:
Install the dependencies:
π€ Running zolo-booky-backend
Use the following command to run zolo-booky-backend:
java -jar build/libs/booky-0.0.1-SNAPSHOT.jar
To execute tests, run:
Contributions are welcome! Here are several ways you can contribute:
Contributing Guidelines
Fork the Repository : Start by forking the project repository to your GitHub account.
Clone Locally : Clone the forked repository to your local machine using a Git client.
Create a New Branch : Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
Make Your Changes : Develop and test your changes locally.
Commit Your Changes : Commit with a clear message describing your updates.
git commit -m ' Implemented new feature x.'
Push to GitHub : Push the changes to your forked repository.
git push origin new-feature-x
Submit a Pull Request : Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
Return