Giter Site home page Giter Site logo

bookify-obms's Introduction

🔖 Bookify OBMS

🐳 Online Bookstore Management System (OBMS)

📝 TO-DO

image

Online Bookstore Management System
Process Step Description
Book Catalog Management 1 Admin adds new books to the catalog, specifying details such as title, author, genre, price, etc.
2 System updates the book inventory and displays new additions on the website.
Order Processing 1 Customers browse the bookstore website and add books to their shopping cart.
2 Upon checkout, system calculates the total cost, applies discounts (if any), and generates an order confirmation.
3 Admin processes orders, updates inventory, and notifies customers about order status (shipping details, delivery estimates, etc.).

🌲Project Structure

online-bookstore-ms/

|__ README.md
|__ LICENSE
|__ .gitignore

|__ docs/
  |__ requirements.md
  |__ architecture.md
  |__ system-design.md
  |__ database-schema.sql
  |__ er-diagram.png
  |__ class-diagram.uml
  |__ sequence-diagram.uml
  |__ other-diagrams.uml (optional)

|__ src/
  |__ main/
    |__ java/
      |__ com/
        |__ bookify/
          |__ model/           // POJO classes (JavaBeans)
          |__ dao/             // Data Access Objects (DAO)
          |__ service/         // Business logic layer
          |__ controller/      // Servlets for request handling
          |__ util/            // Utility classes
    |__ webapp/
      |__ WEB-INF/
        |__ lib/              // JAR files for JDBC drivers and other dependencies
        |__ classes/          // Compiled Java classes
        |__ web.xml           // Deployment descriptor
      |__ resources/          // Configuration files (e.g., database.properties)
      |__ css/                // CSS files for styling
      |__ js/                 // JavaScript files
      |__ images/             // Image files
      |__ WEB-INF/
        |__ jsp/              // JSP files for the front end

|__ db/
  |__ init.sql
  |__ test-data.sql (optional)

|__ tests/
  |__ backend/
    |__ unit/
    |__ integration/
  |__ frontend/
    |__ unit/
    |__ integration/

bookify-obms's People

Contributors

ayon-ssp avatar gauravbohra2001 avatar

Watchers

 avatar

bookify-obms's Issues

Upon checkout, system calculates the total cost, applies discounts (if any), and generates an order confirmation.

Upon checkout, system calculates the total cost, applies discounts (if any), and generates an order confirmation.

order

  • order_id [PK]
  • customer_id [FK-> customer.customer_id]
  • address_type (customer_id & customer_address_type) -> Delivery Address
  • order_date [auto calculated current date]
  • shipped_date (basic algorithm to calculate the shipping date)
  • order_discount (applying discount by customer's premium status) (initial random data insertion) "function" to calculate the total price with discount with 10 or 20% discount [auto calculated SUM(order_detail.unit_price) WHERE order_id = order_detail.order_id]
  • order_total_cost (calculating with the unit_price & unit_discount) [auto calculated/PLSQL]
    - ( SUM(order_detail.unit_price * (1 - order_detail.unit_discount) * order_detail.quantity) * (1 - order_discount) ) WHERE order_id = order.order_id Order Processing (point 2)
  • order_status

throw error on not following formats

Add an exception for format.

public void setCategoryId(String categoryId) {
    if (categoryId == null || !categoryId.matches("bc[0-9]{5}")) {
        throw new IllegalArgumentException("Invalid category ID format. Category ID must match pattern 'bc[0-9]{5}'.");
    }
    this.categoryId = categoryId;
}

feat: History table in db

feat: feat: History table in db

  1. A DML Statement (while insert or delete or ...)
  2. A DDL Statement (create, alter, drop, truncate, ...)
  3. A SYSTEM Event (shutdown and turnON the database)
  4. A USER Event (login and logout)
  5. A Compound Trigger (multiple triggers on a single table)

Mail delivery-updates

order_status (pending, processing, shipped, delivered, cancelled, returned, etc.)

order

  • order_id [PK]
  • customer_id [FK-> customer.customer_id]
  • address_type (customer_id & customer_address_type) -> Delivery Address
  • order_date [auto calculated current date]
  • shipped_date (basic algorithm to calculate the shipping date)
  • order_discount (applying discount by customer's premium status) (initial random data insertion) "function" to calculate the total price with discount with 10 or 20% discount [auto calculated SUM(order_detail.unit_price) WHERE order_id = order_detail.order_id]
  • order_total_cost (calculating with the unit_price & unit_discount) [auto calculated/PLSQL]
    - ( SUM(order_detail.unit_price * (1 - order_detail.unit_discount) * order_detail.quantity) * (1 - order_discount) ) WHERE order_id = order.order_id Order Processing (point 2)
  • order_status (pending, processing, shipped, delivered, cancelled, returned, etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.