Asset Master

Asset Master - Asset Management System

In the era of globalization and working From Home, managing assets efficiently has become a critical aspect for businesses. Whether it’s tracking equipment, maintaining inventory of hardware, or managing software licenses organizations need to use a robust Asset Management System to streamline their processes.

So, what is an Asset Management System? In general, it is a software application responsible for managing the life cycle of any asset such as any hardware. It can also maintain an inventory of Software Licenses.

Advanced IT Asset Management System bind the asset such as Laptop with the company’s infrastructure directly. It makes monitoring assets for IT professionals very easy.

The main objective of any Asset Management System is to provide deep knowledge about a given asset. Based on the capabilities this application can fetch the configuration of assets, activity logs, and relationships with other assets. Later, the information collected can be used to decide the life cycle of assets and future purchases.

The purpose of an Asset Management System is:

  • Eliminate manual asset management and automate the process
  • Effectively manage the life cycle of Assets
  • Improve visibility of Assets
  • Ensure optimum use of Assets
  • Generate timely reports

Asset Master is open source IT Asset management software for businesses. It provides the ability to quickly and easily setup and track IT assets. It implements different authentication / authorization protocols (ex: OIDC) to provide Single Sign-On facility.

The main focus of this project is to provide asset management functionality and reduce manual asset management in any oraganization.

Installation of Asset Master is really simple just download the zip file for your operating system from GitHub release page and extract it at desired location and run binary.

Asset Master is actively maintained, and we release quite frequently. It is open source, thus you can check out source code on GitHub repository.

For live demo please visit here

Technical Specification

Here, we will explore the technical details of project along with different functionalities provided. Let’s start with the technologies used:

  • Front End - HTML, CSS, JavaScript
  • Back End - Golang
  • Database - MySQL

This project follows monolithic architecture to develop the entire system because for now, we do not need microservice or something like that, maybe we will reimplement it with microservice architecture in future.

Another important reason why we developed it as monolithic because we want its installation process as a standalone application and we will provide it as self-hosting only.

There are different entities involved in making this application work the most important among them is its’ User.

Understanding The System

There are different entities involved which work together to make it work such as Location that may be a wearhouse, different categories of assets such as laptop, printer, desktop, keyboard etc. You can refer technical documentation for more details.

Here, we have elaborate some of the most important entities Users & Assets.

Users

The application is intended to have three users mainly:

  1. Super Admin User

This user has all the rights including view and modify of application settings. It can view the profile of another user as well as modify their profiles if required. However, it is intended to be used to modify system settings and in an initial state of application when there are no other users. Another use of this role is to create another Super Administrator.

We have provided this pre-created user for user ease so that the user does not need to follow the registration process if there is only one user and they can directly log into the system with the default username admin and pre-generated password which user will get at the time of installation.

Some of you guys may have questions about this pre-created Super Admin user that we have developed a web application even though we are providing self-host only it is still a web application. So why do we need this pre-created user functionality the answer is it is not necessary to have that in this way. You can consider it as a requirement for this application to have a pre-created super admin user.

  1. Administrator User

As the name implies it is admin user who has most of the rights apart from modifying the system settings. It can view and modify the rest of the things including other user’s profiles. This user is mainly intended to perform administration tasks such as maintaining assets inventory, managing users etc.

Even though this user has most of the administrative level permission it still cannot create a Super Admin User that can be done by another Super Administrator only.

  1. Standard User

As you may have seen in most of the applications standard user has minimum rights, it can neither view other users nor modify them. It can modify limited settings in its profile and for the reset of the things it needs to contact to administrator user.

Assets

Another important entity for this application is Asset which is something we are managing through this application.

Assets can be anything such as a Laptop, Printer, or any other kind of hardware. Even though Software Licenses are an asset.

Through this application we will manage the life cycle of these assets i.e. we can assign any asset to the user, unassigned the asset and put it back into the inventory. We can schedule the maintenance for the asset and we can track depreciation value also.

We will maintain a history of assets in the system, to make tracking easy.

Security Overview

Other than business entities security mechanism of any application is something that interests me a lot, and this security mechanism has an answer to the question How an application is providing authentication & authorization for its users? That means an application can use different kinds of protocols available for this purpose. Apart from this, it also provides insights into How an application prevents common security attacks.

For this application, we provided below ways for SSO (Single SignOn):

  • Basic Authentication
  • SSO with Google, Okta, Azure and GitHub

In addition, to Single Sign On feature, our application implemented other features to prevent common attacks.

  • Two-Factor Authentication with Okta Verify
  • One way secure password with bcrypt encryption
  • SQL injection prevention
  • Configurable setting to prevent common passwords
  • Configurable setting to enforce password requirement
  • Brute force prevention on login attempts
  • CSRF Protection through form tokens
  • Enforce Content Security Policy (CSP)
  • RBAC implementation to restrict access
  • Encrypt fields with AES-256 encryption

Source Code

For the time being, we have not provided the source code for this application because some of its modules are still under development. We will provide a GitHub link for source code and complete documentation whenever it is ready to share.

Once the source code is completed an official website will be launched for complete documentation. We also planned to launch a demo application where you can have a look at each feature without hosting it on your server.

Still Need Help?

Don't worry if you are still facing any issues with Okane - Expense Management System. We are here to help you out. You can contact us at [[email protected]](mailto:[email protected])

If you do not feel comfortable with email support we have an official Facebook Group that you can join and share your queries.