- STIMS: Smart Tagged Inventory Management Software
STIMS, the Smart Tagged Inventory Management System, is a database driven storage catalog capable of adding and tracking any combination of real world items. This multi-modal storage paradigm is achieved through the use of many tagging systems, in comparison to other inventory databases using simply one for a specific type of physical media.
The goal of STIMS is to provide database administrators with the tools to easily catalog new items and even create new object types for tracking, while providing a streamlined search and recall dashboard for end-users to facilitate inventory check-in and check-out operations while maintaining database integrity and security throughout the whole process.
Jack Margeson
5th year Computer Science
l: linkedin.com/in/jack-margeson/
w: marg.es/on
Dr. William Hawkins III
Asst Professor, Project Advisor
w: researchdirectory.uc.edu/p/hawkinwh
The main area of focus for this project is creating and manipulating inventory databases to enable easy storage and retrieval of physical items through the implementation of a custom tagging system.
The project consists of a CRUD backend built in PostgreSQL and Node.js Express, with a front-end in Angular and TypeScript to utilize the power of inheritance to create different item structures. The Angular dashboard facilitates ease of use by end-users when performing database actions.
"As a person in certain role, I want to meet a certain goal so that I have some tangible benefit.“
-
As a general user, I want to be able to search and check in/out items from the inventory so that I can easily keep track of my transactions and maintain accurate stock records.
-
As a database administrator, I want to be able to create new item types in the inventory database so that I can accurately categorize and track a wide range of items.
-
As a database administrator, I want to be able to assign different tagging systems to item entries so that I can easily retrieve and identify items using various identification methods (such as ISBN, NFC, RFID, etc.).
For a status-updated task list, please view the checklist.
- Decide on object oriented language capable of interacting with database frameworks and also GUI creation
- Design user interface using sketches and prototyping
- Research database framework capable of handling schema with flexible types
- Create development environment for whatever language/framework chosen
- Implement GUI from sketched designs, both user and administrator roles
- Make generic classes as templates for future items to be added
- Provision space for database, test connectivity between programming language chosen and database
- Write member functions for template classes (add, remove, etc.)
- Link GUI elements to generic class member functions to test functionality
- Research types of items that warehouses/libraries would benefit from keeping track of
- Research libraries/methods for interpreting data from various scanners (barcode, NFC, RFID)
- Implement methods to handle data from multiple scanning interfaces
- Design classes that inherit the generic template class, incorporating scan data functions
- Refine GUI to reflect new functionality as well as refine visually
- Test program functionality (incl. scanning) in a mock real-world inventory scenario from the perspective of a database administrator
- Test program functionality (incl. scanning) in a mock real-world inventory scenario from the perspective of an end user
This timeline has been created under the assumption that the final date for senior design project submissions is 05/01/2023. The time to complete milestones may scale up or down depending on the validity of this estimated end date.
A summarized version of the ABET Concerns essay for this project is listed below. For more in-depth analysis, please view the full essay.
Implementing tagging for the inventory system may require physical hardware, like NFC tags and scanners, which could be expensive. To mitigate this, I’ve proposed an alternative, cost-free tagging system where administrators can use unique serial codes and manual keyboard entry instead of specialized hardware.
Displaying item images, such as book covers or tools, in the database poses potential image licensing issues. To address this, I plan to allow administrators to upload their own images. This approach ensures that the images used in the system comply with copyright laws, as the administrators would own the rights to the photos.
Managing a local database without proper access controls could create significant security risks. To prevent this, I’m designing a user identification system with defined roles. Administrators will have full access, while regular users will have restricted access, ensuring data integrity and security.
To get acquainted with the user interface for the STIMS project, please see the embedded screenshots in the user guide here.
The testing plan for the STIMS project and results can be found here.
Endpoint tests performed on the middleware application have been saved and are accessible from this repository under middleware/tests/STIMS. These tests can be executed using the Bruno API client.
A user manual for the STIMS system has been created to onboard new users by assisting and documenting the installation process and general usage of the included features. The user manual is hosted on the project's GitHub page as a markdown wiki, which can be accessed here.
A presentation overview of the project is available in PowerPoint form here.
A narrated version of the project overview is available for download here, or for viewing on my YouTube channel here: https://youtu.be/K8hqDVZwBLc
A higher quality, PDF version of the CEAS Expo poster can be found here.
A self assessment essay by each team member is listed below. This essay includes design choices and rationale for the project as a whole, as well as background information regarding skills utilized in the STIMS project.
Jack Margeson - Self-assessment Essay
Jack Margeson - Self-assessment Essay
No expenses were incurred during the development of the STIMS project.
Please note that no meeting notes are available, as the STIMS project was developed individually.
I, Jack Margeson, affirm that as of April 10th, 2025, I have dedicated and exceeded the required 45 hours to project planning, prototyping, and development efforts. An estimated 45 hours of project planning was performed by myself during the Fall 2024 semester, in addition to an estimated 50-60 hours of software development between October 8th, 2024 and April 6th, 2025. Please refer to the commit history of the STIMS repository for the timestamped development progress of the project.
Main repository (you are here): https://github.com/jack-margeson/stims
Built with Bun, a modern TypeScript development toolkit.
Gantt charts created with onlinegantt.com.





