Skip to content

Latest commit

 

History

History
235 lines (188 loc) · 7.22 KB

README.md

File metadata and controls

235 lines (188 loc) · 7.22 KB

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