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!
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
UI for adding a warehouse in InventoryMan
Demonstration of deleting a warehouse in InventoryMan
Demonstration of implemented router and history functionality
Demonstration of frontend input validation practices
A demonstration of the navigation bar in InventoryMan
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
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.
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.
32 tests were run across 14 feature files, with 100% passing.
84% statement coverage, 88% branch coverage.
Frontend has 87% reported code coverage with A ratings in Security, Reliability, and Maintainability.
Backend has 90% reported code coverage with A ratings in Security, Reliability, and a B rating for Maintainability.
Links to the full reports:
SonarCloud InventoryMan Frontend Report
SonarCloud InventoryMan Backend Report
88% statement coverage, with 81% branch coverage.
Video Recording on Google Drive
10 samples were taken, with an average response time of 45 milliseconds and 0% errors.
- 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
- 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
- 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 thefrontend
folder - Open your browser of choice and navigate to
localhost:3000
backend
contains the SpringBoot applicationfrontend
contains the React front-end
- For getting the initial CRUD functionality set up between the database and backend, this was a great resource: Spring Boot + React CRUD Example
- For getting the front-end to communicate with the back-end, this was a great resource: React Axios Tutorial
- I really used a bunch of Bootstrap components, but this was a great resource for getting the cards to look nice: Bootstrap Card Layout
- Bonus for the loading bar I used for a utilization visualization: Bootstrap Progress Bar
- I couldn't have gotten the project up and running on AWS without this guide: Deploy Full Stack Application (Spring-Boot+MySQL+React) to AWS(EC2, RDS, S3)
- This was also super helpful for my initial setup on RDS: Creating an RDS PostgreSQL Database on the AWS Free Tier
- General thanks to all of StackOverflow, all the time, forever.
- And of course, all of the instruction from Caroline and Erica during the lead-up to this project was invaluable! Thank you both!