Skip to content
This repository was archived by the owner on Jul 23, 2025. It is now read-only.

fieldswork/InventoryMan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InventoryMan

A basic inventory management application created as part of the SkillStorm SDET Apprenticeship

Update 3/12/25: InventoryMan has been taken offline to avoid AWS charges, thank you for your interest in this project. Please see the linked resources below for guidance on how to host this application yourself!

Update 9/6/24: Project 2 content has been added, including additional tests with Mockito, Jest, and more configured in our Jenkinsfile! Huge thanks to my groupmate for this project, Bruna Vicente!

Screenshots and Demos

A demonstration of the card UI layout that was utilized in InventoryMan. Bootstrap components were used for accessibility and style.

A demonstration of the card UI layout that was utilized in InventoryMan. Bootstrap components were used for accessibility and style.

A demonstration of the UI layout, depicting multiple item cards, each with their own name, description, quantity, size, and designated warehouse. InventoryMan offers options for sorting based on item attributes, and filtering by a specific warehouse, or all warehouses

A demonstration of the UI layout, depicting multiple item cards, each with their own name, description, quantity, size, and designated warehouse. InventoryMan offers options for sorting based on item attributes, and filtering by a specific warehouse, or all warehouses.

UI for adding a warehouse in InventoryMan

UI for adding a warehouse in InventoryMan

Demonstration of deleting a warehouse in InventoryMan

Demonstration of deleting a warehouse in InventoryMan

Demonstration of implemented router and history functionality

Demonstration of implemented router and history functionality

Demonstration of frontend input validation practices

Demonstration of frontend input validation practices

A demonstration of the navigation bar in InventoryMan

A demonstration of the navigation bar in InventoryMan

Demonstrating filtering capabilities for both the name and utilization of warehouses

Demonstrating filtering capabilities for both the name and utilization of warehouses

Demonstrating utilization of the browser's popup dialogue box for confirmation of certain destructive actions

Demonstrating utilization of the browser's popup dialogue box for confirmation of certain destructive actions

A screenshot of InventoryMan running on Amazon Web Services during automated frontend unit testing.

A screenshot of InventoryMan running on Amazon Web Services during automated frontend unit testing

The Jenkins CI/CD dashboard, showing build information, automated test reports, and more.

The Jenkins CI/CD dashboard, showing build information, automated test reports, and more.

Test Reports

Full console output from Jenkins

Tests were executed on Jenkins running on an EC2 instance that pulls from this Github repository via a webhook on the main branch.

Cucumber Test Results

32 tests were run across 14 feature files, with 100% passing.

Cucumber test results reads 100% passed 32 tests, with 7 minutes to run. Below are all the tests listed out.

Mockito Test Results

84% statement coverage, 88% branch coverage.

A chart that displays 84% statement coverage, with 88% branch coverage.

SonarCloud Test Results

Frontend has 87% reported code coverage with A ratings in Security, Reliability, and Maintainability.

SonarCloud Report Information for the Frontend

Backend has 90% reported code coverage with A ratings in Security, Reliability, and a B rating for Maintainability.

SonarCloud Report Information for the Frontend

Links to the full reports:

SonarCloud InventoryMan Frontend Report

SonarCloud InventoryMan Backend Report

Jest Test Results

88% statement coverage, with 81% branch coverage.

Jest test results

Burp Suite Demo

Video Recording on Google Drive

JMeter Results

10 samples were taken, with an average response time of 45 milliseconds and 0% errors.

Throughput, response time, and Percentage of errors

Performance chart

Facts and Features

  • End-to-end testing with Cucumber, Selenium, Jest, Mockito, SonarCloud, and more
  • Full-stack application made with SpringBoot, PostgreSQL, and React
  • CRUD functionality for managing warehouses and inventory
  • Bootstrap UI with card layout for improved readability
  • Sorting and filtering for easy navigation
  • Logic to prevent reaching over-capacity in warehouses
  • Input validation for forms
  • Pre-computed utilization percentage for each warehouse
  • Responsive design for mobile and desktop

AWS Deployment

  • Amazon Aurora postgres-compatable database hosted on AWS RDS
  • SpringBoot application hosted on Elastic Beanstalk
  • React front-end hosted on AWS S3
  • Jenkins CI/CD pipeline hosted on Amazon EC2

Running InventoryMan Locally

  • Clone the repository
  • Generate launch.json in the .vscode folder
    • Database credentials not provided - bring your own!
    • Test database was created with PGAdmin4
  • application.properties will also need to be edited to match the location of your DB
  • Run the SpringBoot application via command line or an IDE's SpringBoot runner
  • Run the React front-end using npm start from within the frontend folder
  • Open your browser of choice and navigate to localhost:3000

Project Structure

  • backend contains the SpringBoot application
  • frontend contains the React front-end

Resources I heavily relied on:

About

Demo Project 1 for SkillStorm SDET Apprenticeship 2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •