Inventory Manager
I created an inventory tracking system for a credit union to track IT assets for the entire organization.
Overview
There are a lot of off-the-shelf solutions available for tracking IT assets. Most of them are cumbersome to use and have more features than you would ever need.
This solution I created made it as simple as possible to track inventory while also adding some unique features that were necessary for the organization.
Features
Track Inventory
Create, edit, and update inventory assets. Assign them to locations, departments, and employees.
Location History
View a history of the asset including the locations it has been assigned to, the employees who have handled the asset, and more.
Posession Tracking
View an entire list of who had possession of the asset from the time it was entered in the system.
Bulk Import
Import new assets via spreadsheet.
Transfer Requests
Request that an asset be transferred to a new location. Then see a list of pickup and drop off requests by location. So when an employee goes to a location, he/she can see what needs to be picked up and/or dropped off there.
Location Management
Create and edit locations in the system.
IP Address Blocks
Assign IP address blocks to locations and then manage the devices that are assigned to those IP addresses. Lookup a device by IP address.
Console Number Blocks
Assign console number blocks to a location and then manage the devices that are assigned to those console number blocks. Easily see which console numbers are available for that location.
Asset Disposal
Add assets to be disposed of and track how they are disposed. View previous disposals to see where and how an asset was disposed.
Reporting
View reports for IP addresses and console number blocks. More reports could be added in the future.
Intranet Integration
Integrates with the company's intranet to obtain current lists of employees without needing to enter them manually in the system. It is also used to determine which employees are the managers over departments.
Active Directory Integration
Integrates with Active Directory for single sign on.
Dashboard
At login, a dashboard is displayed showing each asset category with the total number of assets in the system, the number of devices that are deployed, the number in transit, and the number available for each category.
Search
The search feature can search every field available for an asset to find it including tag number, serial number, description, IP address, console number, and many more.
My Involvement
I was the only developer on this project. I worked with several IT employees to determine requirements and features. Then I developed the entire application myself including database, back end, and front end. I also created the staging and production environments on the servers and deployed the solution to each of those environments. I also worked with the end users directly to make sure everything met their needs and added additional features as they were requested.
Process
After gathering requirements, I created a new repository on the internal Git server. Then started working on the database schema by creating a new database on my local SQL server.
Once the database schema was created, I created a new empty solution for the project in Visual Studio. Inside that solution, I created three data layer projects. One is a base project where an interface for the Entity Framework context can live. The second contains the concrete implementation of the Entity Framework context. The third contains the models for each database table. The context and models I initially generated using Entity Frameworkâs scaffold-dbcontext command.
For the service layer, I created a base project that contains the interfaces that define each service. Then I created a project for the concrete implementation of those services. Another project was added for the service layer models. Finally, I added a WebAPI web service project with the controllers that handle the HTTP actions and pass them to the services using dependency injection.
The front end was created as an ASP.NET MVC project. It utilizes another project I created to handle the http communication (HttpClient) between the controllers and the backend WebAPI project. The front end uses Bootstrap, some custom Javascript and CSS I created, and jQuery mostly.
I created the HTML and the layout myself. I used chart.js for the charts on the dashboard and zxing.js as a barcode scanner.
Results
After I created the initial project, I wrote user documentation to show the end users how to use it. I trained them and had them test it thoroughly. I fixed issues that they noticed and they started loading data into the system.
At the time of writing, the system now tracks over 6,800 assets at nearly 70 locations.