Backend of Bookwise App
Built with the tools and technologies:
- π Overview
- πΎ Features
- π Repository Structure
- 𧩠API Endpoints
- π Getting Started
- π€ Contributing
BookWise is a full-featured Library Management System that provides a modern digital solution for libraries to manage their books, user checkouts, reviews, and administrative tasks. The system is built using Spring Boot for the backend and integrates with a React frontend.
- Browse and search books by title and category
- View book details including availability status
- Admin capabilities:
- Add new books to the library
- Update book quantities
- Remove books from the system
- Manage book inventory
- Checkout books
- Return books
- Renew book loans
- View current loans and loan history
- Check remaining days for borrowed books
- Post book reviews and ratings
- Send messages/queries to administrators
- Users can post reviews for books
- Rating system implementation
- Optional review descriptions
- One review per book per user policy
- Secure payment processing using Stripe
- PCI complaint
- OAuth 2.0 implementation with Okta
- JWT-based authentication
- Secure endpoints with role-based access
- CORS configuration for frontend integration
- Manage book inventory
- Handle user queries and messages
- Monitor checkout activities
- Process book returns
- View and manage user reviews
- Users can send queries to administrators
- Admin response system
- Message status tracking (open/closed)
- Organized message management
βββ bookwise-lms-backend/
βββ mvnw
βββ mvnw.cmd
βββ pom.xml
βββ src
βββ main
β βββ java
β β βββ com
β β βββ bookwise
β βββ resources
β βββ application.properties
βββ test
βββ java
βββ com
βββ bookwise
GET /api/books/secure/currentloans/count
GET /api/books/secure/ischeckedout/byuser
PUT /api/books/secure/checkout
GET /api/books/secure/currentloans
PUT /api/books/secure/return
PUT /api/books/secure/renew/loan
POST /api/books/secure/admin/add
GET /api/reviews/secure/user/book
POST /api/reviews/secure
POST /api/messages/secure/add/message
PUT /api/messages/secure/admin/message
POST /api/payment/secure/payment-intent
PUT /api/payment/secure/payment-complete
Java: version 17
Build the project from source:
- Clone the bookwise-lms-backend repository:
β― git clone https://github.com/git-ashug/bookwise-lms-backend
- Navigate to the project directory:
β― cd bookwise-lms-backend
- Install the required dependencies:
β― mvn clean install
To run the project, execute the following command:
β― java -jar target/myapp.jar
Execute the test suite using the following command:
β― mvn test
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
bookwise-lms-backend
project. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
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.
git clone https://github.com/git-ashug/bookwise-lms-backend
- 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.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!