GithubHelp home page GithubHelp logo

ims's Introduction

Inventory Management System

Link to the deployed site:

Contents

Overview

With this Inventory Management System, shop owners can register product information, look at the product list, update and delete data. The app comes with functions such as input validation, delete confirmation, success/error messages upon registering, updating and deleting products.

Main Technologies Used

HTML5, CSS3, Java (Spring Boot), Bootstrap5, jquery, PostgreSQL

Functions

Main functions

  • Register product data including images
  • Display Product List
  • Update products data
  • Delete products

Supplementary functions

  • Display success messages when products have been registered, updated or deleted.
  • Validate input data while registering and updating products and show error messages if validation fails.
  • Display a confirmation modal before deleting products.

User Stories

As user I...

Nr. User Stories How they are achieved
1 can register product information. register product page
2 can upload product image. image can be uploaded on register & update pages
3 get notified if input data is inappropriate validation messages
4 can look at the product list product list page
5 can find out how many products are registered. total number of items is displayed above the table on the right side on product list page
6 can update product information update product page
7 can delete product product list page
8 get confirmation before deleting product product list page
9 can easily navigate through all pages navigation links, update buttons on list page

Data Modeling

The app uses the following 'Product' entity:

<img style="width: 500px;"src="./src/main/resources/media/data-modeling-ims.jpg" alt="data modeling for the product" />

Each Page in Detail

1.Product Registration page
2.Product List page
3.Update page

Deployment Process

Automated Testing

Automated Testing is documented here.

Manual Testing

Manual Testing is documented here.

Bugs

  1. 'getProductList' and 'getProduct' methods were not getting values stored in variables filePath and updatedAt. That happened because snake cased variables in postgreSQL were not converted into camel-cased variables. I resolved the issue by adding the following line in application.properties.
    mybatis.configuration.map-underscore-to-camel-case=true

  2. Sensitive data I wrote in application-local.properties were not imported in application.properties. I was missing "${}" around the variables. I added it, and that solved the issue.

  3. delete confirmation

Things to fix: registration page int can't be null quantity min = 1, so don't allow the counter to go below 1. also in case of "", fill in 1 onBlur with JS

Features to be Included in the Future

  • When products are deleted, I want to add a function to delete correponding images from S3 Bucket.
  • It'd be nice to have search and filter functions for products.

Credit

mock multipart files https://www.baeldung.com/java-convert-byte-array-to-multipartfile

parameterResolver https://www.baeldung.com/junit-5-parameterresolutionexception

ims's People

Contributors

rkyzk avatar

Watchers

 avatar

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.