General Inventory Management

Team Name

Team Stockers

Timeline

Spring 2023 – Summer 2023

Students

  • Jeremy Walker
  • Ivan Cuarenta
  • Rodney Ramirez
  • Joseph Salas-Leon

Abstract

Inventory management systems are a vital aspect of retail stores as well as e-commerce owners and operators. They are used for tracking inventory to maintain an accurate count of the current stock of items that are on hand and possibly running low. These systems can also be quite expensive to the end user. Also, they can have a lot of extra features that aren’t always needed. The idea behind this project is to have basic and easy-to-understand functionality while maintaining a low cost for the customers. Our system is built so that a homeowner could use it for their own valuables in the event of fire or theft.

Background

Our team is tasked with creating a web-based inventory management application. The database we chose to hold our customer’s data is Mongo DB. Mongo DB is a NoSQL database. Mongo DB can be used at low or even no cost. Encryption of the data can be easily accomplished using the object data modeling library Mongoose. The back-end of the application was implemented using TypeScript. TypeScript is free and open source. It is a typed language that is built on JavaScript. The front-end of the application is built with the JavaScript library React Native. React is an open-sourced language that was developed by Meta (formerly Facebook). To host the website, we used a Digital Ocean Droplet.

Project Requirements

  1. Allow users to add or remove asset names, descriptions, pictures, and serial numbers to the system.
  2. Display the current inventory and inventory details on the dashboard.
  3. Allow the user to modify any entry as needed.
  4. Encrypt the data entered by the user.
  5. Allow the user to check assets in and out when they are being loaned out.
  6. Allow the user to declare an asset stolen.
  7. Allow the user to run a report based on asset status or category.
  8. Allow the user to create custom categories.
  9. Use a price prediction algorithm to give the user the current estimated value of any asset.

System Overview

The system contains multiple layers that utilize MongoDB (a database program) which houses the user’s credentials and item information. The front end will be where the users can log in, create an account, and view the dashboard to use the system. The back-end layer will be responsible for providing users with price predictions, logging out, and encryption. The encryption layer will be responsible for encrypting and decrypting sensitive data about the assets the users put into the inventory system. The price prediction will have a model that is trained to predict the current market value of the assets the user has in their inventory. The database will hold the user account login id and encrypted password as well as the inventory tables for each user. The reporting and analytics will format and generate the report as specified by the user.

Results

Users are able to create accounts and add asset names, a description, a picture, and the price of the asset. The user can create custom category names. An asset can be marked as checked out and checked back in. A report of assets of the user’s choosing can be generated and downloaded as a PDF. The user can choose from two different report formats that place the image in the left or center column of the report.

Demo Video

Future Work

  1. Allow the user to use a scanner to scan asset tags that will automatically add the asset to the system.
  2. Allow the user to add assets to the system offline and sync with the database when an internet connection is established.
  3. Create a more accurate price prediction algorithm.
  4. Send the user a confirmation email with a link to confirm their account.
  5. Allow the user to reset their password through their account.
  6. Add a forgot password feature.
  7. Put a temporary lock on the user account after 5 consecutive failed attempts to log into an account.

Project Files

Project Charter (link)

System Requirements Specification (link)

Architectural Design Specification (link)

Detailed Design Specification (link)

Poster (link)

Code Repository (link)

References

jnw4532