Skip to content

Latest commit

 

History

84 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot Microservices Book Store

Introduction

The Book Store Microservices Project allows users to browse available books, manage their shopping cart, and place orders through a set of independently running services. Each service handles a specific responsibility such as catalog management, inventory tracking, user accounts, or order processing and communicates through RESTful endpoints. The system is designed to be scalable, modular, and easy to extend. Users can interact with the application through the exposed APIs, a UI layer, or both.

See the Development Setup Guide for instructions on how to run the project locally.

Storyboard

book-store-storyboard.png

Requirements

Story #1

As a customer, I want to browse available books, so that I can discover titles to purchase.

Given: A catalog of books is available

When: The user/service requests the list of books

When: The user/service selects a specific book

Then: The system returns the book’s details, including title, author, price, and availability

Story #2

As a customer, I want to add books to my cart, so that I can purchase multiple items at once.

Given: The user is viewing a book’s details

When: The user/service selects “Add to Cart”

When: The book is in stock per the Inventory Service

Then: The selected book is added to the user’s cart

Story #3

As a customer, I want to place an order, so that I can complete my purchase.

Given: The user has items in the cart

When: The user/service initiates checkout

When: Payment information is submitted

Then: An order is created and inventory is reduced accordingly

Class Diagram

Book Store UML Diagram

Class Diagram Description

Book – Represents a book entity in the catalog with attributes like title, author, and price. Serves as a resource for other services.

User – Represents a customer or admin interacting with the system. Holds personal information and links to a cart.

Cart – Stores books selected by a user before checkout. Interfaces with Inventory and Order services.

Order – Represents a completed purchase. Tracks items, user, and order status. Communicates with Inventory to update stock.

InventoryItem – Tracks stock levels of each book. Interfaces with Cart and Order services to ensure availability.

JSON Schema

{
  "title": "Book",
  "description": "A book available in the store catalog",
  "type": "object",
  "properties": {
    "bookId": {
      "type": "string",
      "description": "Unique identifier for the book"
    },
    "title": {
      "type": "string",
      "description": "Title of the book"
    },
    "author": {
      "type": "string",
      "description": "Author of the book"
    },
    "price": {
      "type": "number",
      "description": "Price of the book in USD"
    }
  },
  "required": ["bookId", "title", "author", "price"]
}

Team Members and Roles

Nate Osterfeld (Product Owner, Backend Dev)

Ben Wilhelm (UI Dev)

Ethan Zins (Backend Dev)

Miles Cresci (Frontend Dev)

Standup

We meet 7pm EST on Sunday

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages