Skip to content

git-ashug/bookwise-lms-backend

Repository files navigation

bookwise-lms-backend

Backend of Bookwise App

last-commit repo-top-language repo-language-count

Built with the tools and technologies:

Backend

Spring Boot Spring Security Spring Data JPA MySQL Lombok JWT

Integration Services

Stripe Okta

Development Tools

Maven Git


πŸ”— Table of Contents

πŸ“ Overview

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.


πŸ‘Ύ Features

1. Book Management

  • 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

2. User Features

  • 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

3. Review System

  • Users can post reviews for books
  • Rating system implementation
  • Optional review descriptions
  • One review per book per user policy

4. Payment Integration

  • Secure payment processing using Stripe
  • PCI complaint

5. Security Features

  • OAuth 2.0 implementation with Okta
  • JWT-based authentication
  • Secure endpoints with role-based access
  • CORS configuration for frontend integration

6. Admin Dashboard

  • Manage book inventory
  • Handle user queries and messages
  • Monitor checkout activities
  • Process book returns
  • View and manage user reviews

7. Message System

  • Users can send queries to administrators
  • Admin response system
  • Message status tracking (open/closed)
  • Organized message management

πŸ“‚ Repository Structure

└── bookwise-lms-backend/
    β”œβ”€β”€ mvnw
    β”œβ”€β”€ mvnw.cmd
    β”œβ”€β”€ pom.xml
    └── src
        β”œβ”€β”€ main
        β”‚   β”œβ”€β”€ java
        β”‚   β”‚   └── com
        β”‚   β”‚       └── bookwise
        β”‚   └── resources
        β”‚       └── application.properties
        └── test
            └── java
                └── com
                    └── bookwise

🧩 API Endpoints

Book Operations

  • 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

Review Operations

  • GET /api/reviews/secure/user/book
  • POST /api/reviews/secure

Message Operations

  • POST /api/messages/secure/add/message
  • PUT /api/messages/secure/admin/message

Payment Operations

  • POST /api/payment/secure/payment-intent
  • PUT /api/payment/secure/payment-complete

πŸš€ Getting Started

πŸ”– Prerequisites

Java: version 17

πŸ“¦ Installation

Build the project from source:

  1. Clone the bookwise-lms-backend repository:
❯ git clone https://github.com/git-ashug/bookwise-lms-backend
  1. Navigate to the project directory:
❯ cd bookwise-lms-backend
  1. Install the required dependencies:
❯ mvn clean install

πŸ€– Usage

To run the project, execute the following command:

❯ java -jar target/myapp.jar

πŸ§ͺ Tests

Execute the test suite using the following command:

❯ mvn test

🀝 Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/git-ashug/bookwise-lms-backend
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


About

Backend repository for Bookwise App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages