Skip to content

Demo Project 1 for SkillStorm SDET Apprenticeship 2024

Notifications You must be signed in to change notification settings

salmoncore/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

This project is hosted on AWS!

Find it here! (http://inventoryman.s3-website-us-east-1.amazonaws.com/)

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!

Update 8/26/24: InventoryMan is back on AWS - this time, using the Aurora RDS, an Elastic Beanstalk backend, and utilizing a separate EC2 instance for Jenkins deployment/Selenium + Cucumber testing.

Update 8/5/24: Project has been taken offline to avoid charges, I apologize for any inconvenience. See the Resources section below for a similar implementation!

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