0% found this document useful (0 votes)
38 views

16CP052 CP446 Ams

This document is a project report for an Asset Management System (AMS) created by Harshil Sadharakiya as part fulfillment for a Bachelor of Technology degree in Computer Engineering. The report includes sections on introduction, system analysis, design, implementation, and testing of the AMS. Key aspects of the system include managing the lifecycle of assets from procurement to retirement, maintaining an inventory of assets, and generating various reports. The system was created using technologies like Angular for the frontend, Node.js and Express for the backend/API, and MongoDB for the database. Testing showed the system met requirements for features like adding, updating, and deleting assets as well as generating reports.

Uploaded by

ayanaman001
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

16CP052 CP446 Ams

This document is a project report for an Asset Management System (AMS) created by Harshil Sadharakiya as part fulfillment for a Bachelor of Technology degree in Computer Engineering. The report includes sections on introduction, system analysis, design, implementation, and testing of the AMS. Key aspects of the system include managing the lifecycle of assets from procurement to retirement, maintaining an inventory of assets, and generating various reports. The system was created using technologies like Angular for the frontend, Node.js and Express for the backend/API, and MongoDB for the database. Testing showed the system met requirements for features like adding, updating, and deleting assets as well as generating reports.

Uploaded by

ayanaman001
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Asset Management System (AMS)

A PROJECT REPORT
Submitted by
Harshil Sadharakiya
(16CP052)

in partial fulfilment for the award of the degree of


B. TECH. (COMPUTER ENGINEERING)
Under the course of
CP446 : FULL SEMESTER EXTERNAL PROJECT

BIRLA VISHVAKARMA MAHAVIDYALAYA


(ENGINEERING COLLEGE)

​(An Autonomous Institution)

VALLABH VIDYANAGAR
Affiliated to

​GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD


Academic Year: 2019 – 2020
B.V.M. ENGINEERING COLLEGE, VALLABH VIDYANAGAR-388120

APPROVAL SHEET

The project work entitled “​Asset Management System(AMS)​" carried out by “HARSHIL
SADHARAKIYA with ID No : 16CP052” (which was carried out at ​Crest Data Systems​) is
approved for the submission in the course CP446, Full Semester External Project for the
partial fulfillment for the award of the degree of B. Tech. (Computer Engineering).

SIGNATURE

(Name & Designation)

Date:

Place:
CERTIFICATE

This is to certify that Project Work embodied in this project report titled “​Asset
Management System(AMS)​" was carried out by “HARSHIL SADHARAKIYA with ID No
: 16CP052” which was carried out at ​Crest Data Systems under the course CP446, Full
Semester External Project for the partial fulfillment for the award of the degree of B. Tech.
(Computer Engineering). Followings are the supervisors at the institute.

Date:

Place:

(Prof. Kirti Sharma)

Project Guide

Assistant ​Professor of Computer Engineering Department

(Prof. Pranay Patel)

Project Guide

Assistant Professor​ of Computer Engineering Department

(Dr. Darshak G Thakore)

Prof. & Head

Computer Engineering Department, BVM


B.V.M. ENGINEERING COLLEGE, VALLABH VIDYANAGAR-388120

DECLARATION OF ORIGINALITY
I hereby certify that we are the sole authors of this report under the course CP446 Full
Semester External Project and that neither any part of this report nor the whole of the report
has been submitted for a degree to any other University or Institution.
I certify that, to the best of our knowledge, the current report does not infringe upon anyone’s
copyright nor violate any proprietary rights and that any ideas, techniques, quotations or any
other material from the work of other people included in our report, published or otherwise,
are fully acknowledged in accordance with the standard referencing practices. Furthermore,
to the extent that we have included copyrighted material that surpasses the boundary of fair
dealing within the meaning of the Indian Copyright (Amendment) Act 2012, we certify that
we have obtained a written permission from the copyright owner(s) to include such
material(s) in the current report and have included copies of such copyright clearances to our
appendix.
I declare that this is a true copy of the report, including any final revisions, as approved by
the report review committee.
We have checked the write up of the present report using an anti-plagiarism database and it is
in the allowable limit. Even though later on in case of any complaint pertaining to plagiarism,
we are solely responsible for the same and we understand that as per UGC norms, University
can even revoke the degree conferred to the student submitting this report.

Date:

Institute code: 007

Harshil Sadharakiya (16CP052)


CERTIFICATE
ACKNOWLEDGEMENT

I would sincerely like to thank ​Prof. Kirti Sharma, Prof. Pranay Patel ​(Department of
Computer Engineering) for the unconditional support during the whole session of study and
development and for guiding me throughout the whole internship period. They provided me
with a favorable environment, without them, I would not have achieved my goal. They had
always been there for me despite their busy schedule and were always a great source of
inspiration. They had been easily approachable during and even after college hours. I
sincerely thank them for that.

I would also like to thank ​Mr​. ​Jignesh Patel​, Technical Lead (Crest Data System Pvt. Ltd.)
For supporting me during the whole internship period. Being with me all time face to face
and guiding me within a busy time schedule. I would like to thank him for that. I would also
like to thank my other senior colleagues who also helped me whenever I required any kind of
support.

A blend of gratitude, pleasure and great satisfaction is what I feel to convey my indebtedness
to all those who have directly and indirectly contributed to the successful completion of the
project.

Harshil Sadharakiya
TABLE OF CONTENTS

Title Page No

ABSTRACT.........................................................................................................................i
TABLES ............................................................................................................................ii
LIST OF FIGURES ..............................................................................................ii
LIST OF TABLES ...............................................................................................iv
1. INTRODUCTION......................................................................................................1
1.1. Project Summary......................................................................................1
1.2. Purpose .....................................................................................................1
1.3. Objective....................................................................................................1
1.4. Scope……...................................................................................................2
1.5. Tools and Technology Used………...…………………............................2
2. ABOUT THE SYSTEM……….................................................................................7
2.1. System Requirements study......................................................................7
2.1.1. User Characteristics….................................................................7
2.1.2. Hardware and Software Requirements......................................7
2.1.3. Assumptions…………..................................................................7
2.1.4. System Consideration…….…......................................................8
2.2. System Analysis…......................................................................................8
2.2.1. Study of current System………..................................................8
2.2.2. Problem and Weakness of current System................................8
2.2.3. Requirements of System..............................................................8
3. ANALYSIS……………………………..……..........................................................11
3.1. Use Cases…………………. ……...................……..................................11
3.1.1. Application Use Cases…………………………………………11
3.2. Class Diagram…….... ……….................................................................13
4. DESIGN……………....……………….....................................................................15
4.1. System Ui Architecture………................................................................15
4.2. System Core Architecture……………………………………………...16
4.2.1. Web Server……………………………………………………..17
4.2.2. Angular………………………………………………………....17
4.2.3. API Gateway…………………………………………………...17
4.3. Data Models……………………………………………………………..20
4.4. WireFrames……....…....………………………………………………...23
5. IMPLEMENTATION………………….…….........................................................29
5.1. Implementation Environment.................................................................29
5.2. Key Implementation Objective................................................................29
5.3. Implementation Modules.........................................................................29
5.4. Implementation Steps for Modules.........................................................30
6. TESTING……………………………......................................................................31
6.1. Test Planning…………………….............................................................31
6.2. Testing Strategy………………….............................................................31
6.2.1. Unit Testing…………………………………………………….31
6.2.2. Integration Testing…………………………………………….31
6.3. Test Suits Design……................................................................................32
6.4. API and Ui Validation Snapshots.............................................................40
6.5. Application Snapshots…………………...………………………………45
7. Conclusion and Future Extension...........................................................................47
7.1. Conclusion ……..........................................................................................47
7.2. Future Extension…....................................................................................47
REFERENCES...............................................................................................................48
ABSTRACT
Asset Management system is used to maintain assets of company requires a significant amount
of time if we do it without software.​Every organization has their own Asset Management System
in order to perform the resource activities.Managing Asset or utilizing assets or keeping track of
assets are significant task of IT team. The main work of the IT team is to maintain all assets of
the company like laptop and any other devices and also maintain the condition of that Asset . In
order to support the IT’s there are some electronic based systems called AMS- Asset
management system. Organizations maintained assets with excel sheets which is a very tedious
job. But this application is cost effective one that allows them to manage their asset’s data in a
simple manner. This project belongs to a category of web application that can be accessed
through PC with internet connection. This Asset Management System allows the IT team to
provide various types of permission to other IT members and also manage Asset’s data, status,
category, location, etc.

i
TABLES

LIST OF FIGURES

Figure Number Figure Name Page Number


1.5.1 Swagger UI of Application 3

1.5.2 Docker container in Execution 5

3.2.1 Class diagram of the system 14

4.1.1 System UI architecture 15

4.2.1 System Core Architecture 16

4.4.1 Dashboard 23

4.4.2 Employee-list 24

4.4.3 Employee-asset-detail 24

4.4.4 Employee-activity 25

4.4.5 Report-asset-activity 25

4.4.6 Report-asset-details 26

4.4.7 Recent-activity 27

4.4.8 Permission 28

6.4.1 Asset-status-validation 34

6.4.2 Company-location-validation 35

6.4.3 Room-validation 36

6.4.4 Supplier-validation 37

6.4.5 Asset-category-validation 38

6.5.1 Dashboard 39

6.5.2 Asset-list 39

ii
6.5.3 Asset-list-filter 40

6.5.4 Add-asset-into-system 40

iii
LIST OF TABLES

Table Number Table Name Page Number


4.2.3 API Gateway 18

4.3.1. Data Models: Asset 20

4.3.2 Data Models: Category 21

4.3.3 Data Models: Status 21

4.3.4 Data Models: Rooms 22

4.3.5 Data Models: Permission 22

4.3.6 Data Models: Location 22

4.3.7 Data Models: Laptop 23

4.3.8 Data Models: Supplier 23

4.3.9 Data Models: Activity Log 24

4.3.10 Test Suites Design 38

iv
Asset Management System

Chapter 1
Introduction

1.1 PROJECT SUMMARY

Asset Management System is an application used by the company to automate and


keep track of the equipment and inventory that are vital to the day-to-day operation of their
businesses. Exactly how those assets are managed, though, is highly variable. A lot of
organizations are managing their equipment and inventory through a manual process,
including spreadsheets over which an employee or employees are tasked with the
responsibility of maintaining. So, this application helps to keep track of these vital assets and
manages efficiently and provides an ease to use.

This project is intended to replace the Manually managed system and provide a
platform that is more efficient, reliable and robust​.

1.2 PURPOSE

IT asset management ties the assets with the IT infrastructure of the organization.
With a robust asset management system, management and IT professionals can review and
monitor all types of assets within the organization. The information can be used to make
detailed decisions about the purchase and other aspects of the asset’s life cycle. So, the
purpose of IT asset management is to :
1.2.1. Effectively help manage the assets.
1.2.2. Improve visibility of assets.
1.2.3. Ensure optimum utilization of assets.
1.2.4. Reduce IT and software costs.
1.2.5. Ensure compliance with regulatory requirements.

1.3 OBJECTIVE

The objective of the IT asset management system is to provide an organization with a


deep knowledge of its information systems to use this information for the identification and
rapid resolution of problems. And also complete information about the configuration of assets
and their relationship among each other and also make sure that this data is available
whenever it is needed.

1
Asset Management System

The goal of this project is to reduce the effort required to maintain a variety of assets
and automate the task of managing assets. Using the software can help in efficient resource
planning. ​The main focus of this project is to provide management functionalities like
Manage Asset, Manage Asset category, Manage Status, Manage Rooms, Employee Listing,
Manage ​Permission​, Generate Reports, and the Activity Logs.

1.4 SCOPE

Following features are there in the scope:


● Keep track of the company’s hardware and software purchases. That determines the
exact time to renew a license, update software, or replace a piece of equipment.
● Effective Resource Planning: Maximize utilization and reduce cost.
● Increase Security: Protection of data found in the company systems. Also, know the
status of their security tools.
● Definition of service levels: Helps IT specialists define the level of service that can be
offered to customers based on the number of existing assets.

1.5 TOOLS AND TECHNOLOGY USED

Following are the Technology used in the system:


● Backend: Python 3.8, FastAPI, SQLAlchemy, Redis Cache
● Frontend: Angular 9, Angular Material
● Database: PostgreSQL

Distributed 3-tier Architecture. Each tier contains a separate Docker Container.

Overview of FastAPI [​1​]:

FastAPI is a modern, fast (high-performance), web framework for building APIs with
Python 3.6+. FastAPI provides the following:
● OpenAPI for API creation, including declarations of path operations, parameters,
body requests, security, etc. It also generates automatic data model documentation
with JSON Schema.
● Swagger UI for Interactive API documentation and exploration web user interfaces by
exploration, call and test your API directly from the browser.

2
Asset Management System

Fig. 1.5.1 Swagger UI of Application

FastAPI provides validation for most python data types including JSON object,
JSON array, String, Number with min and max values, etc. It also provides validation for
exotic types like Email, URL, UUID, etc.

Security and authentication are also integrated into FastAPI. It gives security on
HTTP Basics and authentication provides by OAuth2 (also with JWT tokens). It uses uvicorn
for the server that loads and serves our application.

I preferred FastAPI for this project because of its high performance, robust, easy to
use and standard-based features.

Overview of SQLAlchemy [​2​]:

SQLAlchemy is the toolkit and Object Relational Mapper which is written in Python
and provides the flexibility of SQL for application development.SQLAlchemy provides
object-relational mapper (ORM), using which classes can be mapped to the database, thereby
allowing the object model and database schema to develop in a cleanly decoupled way from
the beginning.

I preferred this because it will be beneficial for the application as it provides good
support to FastAPI. Here I use the Postgres ORM model for development.

3
Asset Management System

Overview of PostgreSQL [​5​]:

PostgreSQL is a powerful, open-source object-relational database system that uses


and extends the SQL language combined with many features that safely store and scale the
most complicated data workloads. PostgreSQL differs from other relational database
management systems for ​its proven architecture, reliability, data integrity, robust feature set,
extensibility, and the dedication of the open-source community behind the software to
consistently deliver performant and innovative solutions. PostgreSQL runs on all major
operating systems and has extensive support for ACID properties.
As the project requires a database having features like better support for Parallel
merge joins and Parallel aggregation, So the PostgreSQL would be most suitable for this
project. PostgreSQL is preferable for this project as a schema for the table is fixed of data
models and because of PostgreSQL object-relational feature relation between data models
would be well defined. Also, joins between data tables would easily be handled in the
PostgreSQL database. ​PostgreSQL performance is utilized best in systems requiring the
execution of complex queries. PostgreSQL has roles and inherited roles to set and maintain
permissions. PostgreSQL has native SSL support for connections to encrypt client/server
communications. It also has Row Level Security.

Overview of Angular 9 [​6​] and Angular Material [​7​]:

Angular is open-source frameworks for building web and mobile applications. A new
version of Angular 9 is smaller, faster, and easier to use. With Angular 9, community can
benefit from smaller, high-performance applications, and better developer experience.
From Angular 9 the Ivy compiler is available for all apps. The main benefit of Ivy is
that it is able to significantly reduce the size of large-sized applications.
Angular Material is a UI component library for Angular developers. Angular Material
components help in constructing attractive, consistent, and functional web applications while
adhering to modern web design principles like browser portability, device independence, and
graceful degradation. It helps in creating faster, beautiful, and responsive websites.

Overview of Docker [​8​]:

Docker is an open platform for developing, shipping, and running applications.


Docker enables us to separate our applications from our infrastructure so we can deliver
software quickly. With Docker, we can manage infrastructure in the same ways we manage
our applications. By taking advantage of Docker’s methodologies for shipping, testing, and
deploying code quickly, we can significantly reduce the delay between writing code and
running it in production.

4
Asset Management System

In this project, I have used four dockers containers for each tier: Backend, Frontend,
Redis and Database, which will increase the production rate significantly.
All the Docker containers use Alpine Version Image as a base image,on top of that
each container has its own separate volumes that are maintained and updated with the content
of each docker container respectively.
We have two separate docker-compose files one for the Frontend and one for the
Backend.
The Frontend docker-compose file includes AMS Frontend Image which internally
uses Node’s Alpine Image and NGINX’s Alpine Image and also has instructions regarding to
create Production Build of the project and COPY the BUILD into the NGINX container
volume.
The Backend docker-compose comprises of the Postgres, Redis and AMS Backend
Images which internally uses Python v3.8.2 Alpine image. The environment variables are set
for all the images using the environment property of each docker-compose service.

Fig. 1.5.2 Docker Containers in Execution

5
Asset Management System

Overview of Redis [​10​]:

Redis is an open source, in-memory data structure store, used as a database, cache and
message broker. It supports data structures such as ​strings​, ​hashes​, ​lists​, ​sets​, ​sorted sets with
range queries, ​bitmaps​, ​geospatial indexes with radius queries and ​streams​. Redis has built-in
replication​, ​LRU eviction​, ​transactions and different levels of ​on-disk persistence​, and
provides high availability via ​Redis Sentinel​ and automatic partitioning with ​Redis Cluster​.

6
Asset Management System

Chapter 2
About the system

2.1 SYSTEM REQUIREMENTS STUDY

2.1.1 USER CHARACTERISTICS

Application intended to use by mainly two users :


1. Super Admin
2. IT supervisor
Assets management will be managed by both users. The application would provide
asset and user mapping. Users would manage assets like being able to add assets, update the
asset, delete an asset, assign/unassign assets to users. SuperUser(Admin) will assign
permission to the other IT supervisor. The application would also generate reports based on
duration, asset details, employee details and would also manage activity logs.

2.1.2 HARDWARE AND SOFTWARE REQUIREMENTS


Client Requirement
● Processor: Dual Core 2.0 GHZ or latter CPU
● RAM: 4 GB
● Browser: Chrome, Firefox
Server Requirement
● Processor: 4 Core CPUs
● RAM: 4 GB RAM minimum
● Hard Disk: 100 GB storage minimum

2.1.3 ASSUMPTIONS
It is assumed that:
● The Employee database will be accessible using the HRMS APIs.
(HRMS is the company’s internal system that manages the Employee Details.)
● Authorized users will be able to assign different permissions to the other users.
● The IT supervisor would be managing the Meeting/Conference/Training
● Rooms Assets (TV issues, WebCam Issues, Projector and its accessories, etc).

7
Asset Management System

2.1.4 SECURITY CONSIDERATION


These are security considerations :
● The application components should not use any third-party modules, frameworks
which have known vulnerabilities.
● In order to provide the best security, the web application would use JWT
authentication tokens.
● To provide HTTPS support the web application would require to have its own
dedicated HOST with its dedicated IP address and SSL Certificate.

2.2 SYSTEM ANALYSIS

2.2.1 STUDY OF CURRENT SYSTEM

Companies manage their equipment and inventory through a manual process,


including spreadsheets over which an employee or employees are tasked with the
responsibility of maintaining.

2.2.2 PROBLEMS AND WEAKNESSES OF CURRENT SYSTEM

Due to manual processes, IT supervisors suffer problems like forgotten items, broken
or lost equipment, human error, hours spent searching for items that have mysteriously
disappeared, inaccurate information needed for accounting and compliance, customer
dissatisfaction.

2.2.3 REQUIREMENTS OF SYSTEM


2.2.3.1. Functional Requirements
Functional requirements involve calculations, technical details, data manipulation and
processing, and other specific functionality that define what a system is supposed to
accomplish.
● Functional requirement of API Endpoints
○ Manages Asset Details
By this functionality, the IT supervisor can maintain the asset detail by
Adding new assets, editing existing asset details and deleting assets not
required from the system.
Input: Asset Details
Output: Record changes in the system
Processing: Fire Query of PostgreSQL and perform changes in database

8
Asset Management System

○ Assignment or Unassignment of Asset to Employees or Rooms


IT supervisor can Assign/Unassign/Reassign the variant assets to the
single employee or group of employees or maybe room.
Input: Employee details, Room Details, Asset Details
Output: Assign or Unassign Assets to employee or room
Processing: Based on the Asset availability assignment would be performed

○ Set Notification and Get Notified on Events


IT supervisors would set reminders regarding assets like ​time to renew
a license, update software, or replace a piece of equipment. Also, set a
notification for the employee when the asset is assigned for a specific time
duration. Get notified on events set in Notification when it occurs.
Input: Time Interval for Asset or Employee
Output: Acknowledgement on the successful set reminder
Processing: Set Time period for the specified asset or employee and record in
database

○ Generate Reports of Assets and Employees


IT supervisors can generate the report based on filtering criteria and
export it into formats like document or PDF.
Input: Filtering criterion of assets and employee
Output: Asset-Employee details based requirements.
Processing: Perform Search Query on Employee data and/or Asset data then
show data in well-formed UI.

2.2.3.2. Non-Functional Requirements


2.2.3.2.1. Security
The system uses HTTPS to transmit data so it passes through SSL. Authentication
would be done by JWT token-passing mechanism.

9
Asset Management System

2.2.3.2.2. Confidentiality
The system protects sensitive data of employees and allows only authorized access to
the data.

2.2.3.2.3. Reliability
The application consistently performs the specified functions without failure by an
efficient error handling mechanism.

2.2.3.2.4. Usability
The system is easy to use as Angular 9 is used as a frontend and due to Angular
Material Component, controls look attractive and easy to use.

2.2.3.2.5. Maintainability
The ease with which faults in a software system can be found and fixed. The system
would be extensible by adding new functionality.

2.2.3.2.6. Reusability
The API endpoints are reusable and also able to integrate with other systems
efficiently.

10
Asset Management System

Chapter 3
Analysis

3.1 USE CASES

3.1.1 APPLICATION USE CASES

This section describes the use cases of the system.


3.1.1.1. Ability to Manage Assets
Description:
Users would be able to manage the details for assets.
Acceptance criteria​:
1. Users should be able to add a new asset.
2. Users should be able to update an existing asset.
3. Users should be able to delete an existing asset.
4. Users should be able to view assets based on filtering criteria or using search.
5. Users should be able to Import multiple assets from the file(.XLS or .CSV).
6. Users should be able to Export the assets(.XLSX, .CSV).
7. Users should be able to assign/unassign assets to the user/room.
8. Users should be able to view the asset details.
9. Users should be able to send asset for maintenance
10. Users should be able to extend the warranty.
11. Users should be able to send notification (mail) to the owner of the asset.
12. Users should be able to add an image of an asset.

3.1.1.2. Ability to Manage Asset Category


Description:
Users would be able to manage the asset category.
Acceptance criteria​:
1. Users should be able to add an asset category like Laptop, Mouse, etc.
2. Users should be able to update an existing category.
3. Users should be able to delete an existing category.
4. Users should be able to view different assets based on category filtering
criteria or using a category search.

3.1.1.3. Ability to Manage Locations


Description:
Users would be able to manage asset locations.
Acceptance criteria:
1. Users should be able to add locations.

11
Asset Management System

2. Users should be able to update the existing locations.


3. Users should be able to delete existing locations.
4. Users should be able to view locations.
5. Users should be able to view different assets based on Location filtering
criteria or using a Location search.
6. Location is associated with Rooms.
7. Users should be able to add Room to Particular Location.

3.1.1.4. Ability to View Employee Listing


Description:
Users would be able to view the list of employees and their asset usage
history.
Acceptance Criteria:
1. Users should be able to view all employees list
2. Users should be able to view the employee details
3. Users should be able to view the history of the assigned/unassigned assets.
4. Users should be able to assign/unassign Asset to Employees

3.1.1.5. Ability to Manage log


Description:
The system would be managing the logs of every action made by the IT
supervisor or Employee.
Acceptance criteria:
1. Users should be able to view the activity logs for any time duration, for any
assets, for any employee.
2. Users should be able to export the activity logs.
3. Users should be able to perform auditing.

3.1.1.6. Ability to Generate Reports


Description:
Users would be able to generate reports based on criteria like status, duration,
Asset Category.
Acceptance criteria​:
1. Users should be able to generate asset reports.
2. Users should be able to generate employee reports.

3.1.1.7. Ability to Manage Laptop


Description:

12
Asset Management System

Users can manage a Laptop which is a special kind of Asset, which is an


essential asset, which has many extra features.
Acceptance criteria​:
1. If the Asset category is Laptop then Laptop has more features like wifi and lan
mac address, laptop is for splunk, cisco etc.
2. Wifi and Lan mac address should be unique.
3. If Laptop is for Splunk then Splunk id is unique.

3.2 CLASS DIAGRAM


Asset
This class stores asset details(Id, name, model, arrival time, category, status,
description). Users can manage and search assets in this class. Users can sort assets.

Asset-Category
This class stores asset categories like Mouse, Keyboard, Laptop, etc.

Asset-Status
This class stores asset status like assign, unassign, new, destroyed, etc.

Employee
This class lists all employees of the organization. Based on permission associated
with the users, they can manage assets.

Location
It contains details regarding the locations of the organization.

Room
This class contains details regarding rooms in the organization and assets assigned to
these rooms.

Supplier
It contains the supplier details and assets delivered by them.

Permission
This class provides permission to users. Based on permission, users can manage
assets.

13
Asset Management System

Fig. 3.2.1 Class diagram of system

14
Asset Management System

Chapter 4
Design

4.1 SYSTEM UI ARCHITECTURE

Fig. 4.1.1 System UI architecture

15
Asset Management System

4.2 SYSTEM CORE ARCHITECTURE

Fig. 4.2.1 System Core Architecture

16
Asset Management System

Application components

This section lists the components required for the UI module.

4.2.1. Web Server

NGINX will be used as a webserver to serve HTML/CSS and JS files.NGINX became


famous as the fastest web server, the scalable underlying architecture has proved ideal for
many web tasks beyond serving content.
It can handle a high volume of connections, NGINX can be also used as a reverse proxy and
load balancer to manage incoming traffic and distribute it to slower upstream servers.

4.2.2. Angular[​6​]

Angular is a JavaScript library for building user interfaces. Angular can be used as a
base in the development of a single-page or mobile application. Angular also provides
Webpack and Babel tools. Webpack will be used to create a build of Angular application. It
will create a build that can be served with the Web server. It is a module bundler primarily
for JavaScript, it can transform front-end assets like HTML, CSS, and images if the
corresponding loaders are included. Webpack takes modules with dependencies and
generates static assets representing those modules. Babel is used to converting ECMAScript
2015+ code into a backward-compatible version of JavaScript that can be run by older
browsers(JavaScript engines).
● Angular Material[​7​]
Angular Material is a UI component library for Angular developers. Angular Material
components help in constructing attractive, consistent, and functional web pages and web
applications while adhering to modern web design principles like browser portability, device
independence, and graceful degradation. It helps in creating faster, beautiful, and responsive
websites.

4.2.3. API Gateway

The solution will contain an API gateway that will be used to interact with the core
services of the AMS. All the API calls are authenticated using the JWT authentication
scheme.
The API gateway will use the FastAPI framework along with uvicorn to serve the
requests. Rate limiting of the API will be a setup-time parameter. List of Endpoints that will
be exposed by API gateway. The API documentation is auto-generated.

17
Asset Management System

Context Method Functions

/api/auth POST Authentication endpoint to validate the user credentials and


store an authentication token.

/api/category-list GET Provides list of all category

/api/category GET Get category range based on parameter.

/api/category POST Create new Category.

/api/category/{id} GET Get category using id.

/api/category/{id} PUT Update category using id.

/api/category/{id} DELETE Delete category using id.

/api/location-list GET Get list of all location.

/api/location/{id}/ro GET Get all room of particular location.


om

/api/location GET Get range of location using parameter.

/api/location POST Create new location.

/api/location/{id} GET Get location using id.

/api/location/{id} PUT Update location using id.

/api/location/{id} DELETE Delete location using id.

/api/asset-list GET Get list of all asset.

/api/asset GET Get range of asset using parameter.

/api/asset POST Create new asset.

18
Asset Management System

/api/asset/{id} GET Get asset using id.

/api/asset/{id} PUT Update asset using id.

/api/asset/{id} DELETE Delete assets using id.

/api/asset/{id}/status PUT Update asset-status using asset id.

/api/asset/{id}/room PUT Assign asset to room.


/assign

/api/asset/{id}/room PUT Unassign asset from room.


/unassign

/api/asset/{id}/empl PUT Assign Asset to Employee.


oyee/assign

/api/asset/{id}/empl PUT Unassign Asset from Employee.


oyee/unassign

/api/asset/import POST Import Excel or csv file for asset.

/api/asset-export GET Export Asset details.

/api/employee-add GET Add Employee in Redis cache.

/api/employee-list GET Get list of all employees.

/api/employee GET Get range of employee based on parameter.

/api/employee/{id} GET Get employee using id.

Table 4.2.3. API Gateway

19
Asset Management System

4.3 DATA MODELS

This section lists the data models required for state persistence within the application.

4.3.1. Asset :
Table Name:​ asset_master

Name Type Unique Required Description Default

id number True True asset id Auto


Increment

asset_tag varchar True True asset tag of the


company

company_na varchar True the asset’s


me manufacturer
company name.

model number True asset’s model name

description varchar asset’s description

warranty varchar asset warranty 0 (Zero)


details

serial_numb varchar True True asset’s serial number


er

purchase_da datetime True asset’s purchase date


te

purchase_co number True asset’s purchase cost


st

category_id number True asset’s category

status_id number True asset’s status

employee_id number assigned employee


id

room_id number assigned room id

Table 4.3.1. Asset

20
Asset Management System

4.3.2. Asset Category :


Table Name:​ asset_category_master

Name Type Unique Required Description Default

id number True True category id Auto Increment

name text True True category name

description varchar category’s


description

is_laptop boolean to specify False


category is
belonging on
laptop
Table 4.3.2. Category

4.3.3. Location :
Table Name:​ location_master

Name Type Unique Required Description Default

id number True True Location id Auto


Increment

name varchar Locationname

description varchar Location’s description

Table 4.3.3. Location

4.3.4. Laptop :
Table Name:​ laptop_master

Name Type Unique Required Description Default

id number True True Laptop id Auto


Increme
nt

asset_id varchar asset id

wifi_mac_address varchar wifi mac description

lan_mac_address varchar lan mac description

21
Asset Management System

os varchar os name

processor number name of processor

ram varchar Ram type

disk_type varchar disk_type like SSD,


HDD

disk_capacity varchar disk_capacity


description

is_cisco_product boolean false

is_cloudops_product boolean false

splunk_id varchar true

Table 4.3.4. Laptop

22
Asset Management System

4.4 WIREFRAMES[​11​]
4.4.1. DASHBOARD

Fig 4.4.1. Dashboard


Application Dashboard shows the various counts and Recent Activity log on screen.

23
Asset Management System

4.4.2. EMPLOYEE LIST

Fig 4.4.2. Employee-list


List down all the Employees with details.

4.4.3. EMPLOYEE CURRENT ASSET

Fig 4.4.3. Employee-asset-detail


By clicking on a particular Employee, the system shows Asset details that are currently
assigned to that employee.

24
Asset Management System

4.4.4. EMPLOYEE ASSET ACTIVITY

Fig 4.4.4. Employee-activity


Shows the various assets activity logs that are performed by a particular Employee.

4.4.5. REPORT ASSET ACTIVITY

Fig 4.4.5. Report-asset-activity


Based on filtering criteria and requirements various Assets Activity would be sorted out
and it would be exported based on user choices like CSV, PDF or XLSX file format.

25
Asset Management System

4.4.6. REPORT ASSET DETAILS

Fig 4.4.6. Report-asset-details


Based on filtering criteria and requirements various Assets details would be sorted out
and it would be exported based on user choices like CSV, PDF or XLSX file format.

26
Asset Management System

4.4.7. RECENT ACTIVITY

Fig 4.4.7. Recent-activity


The screen shows the Recent Activity logs which represent tasks recently performed
onto the system.

27
Asset Management System

4.4.8. PERMISSION

Fig 4.4.8. Permission


Screen shows which permission is given to which employee. And can also change the
permission of employees by admin or other authenticated person.

28
Asset Management System

Chapter 5
Implementation

5.1 IMPLEMENTATION ENVIRONMENT

In this project, the implementation environment is made up of three components:


FastAPI, Angular 9 and PostgreSQL. FastAPI is the library that is used to manage backend
logic and provides APIs for each module like Asset, Employee, Room, Supplier, Asset
Category, Status and Manage Permissions. Now, PostgreSQL is a Relational Database
Management architecture used to record all occurrences of data. It helps in application to
manage the relationship between data models efficiently by its Object-Oriented feature. And
PostgreSQL has the Dashboard with real-time analysis, Servers connections, IO operation
frequency, Transaction per Second and Efficient UI for data analysis. Angular 9 is used for
UI design. Angular 9 is having a rich feature set with dynamic data and event behavior is
useful for this project. Angular has a modular structure with Modules, Components, Services,
and a lazy loading routing mechanism. ​Angular Material components help in constructing
attractive, consistent, and functional web pages and web applications while adhering to
modern web design principles like browser portability, device independence, and graceful
degradation. It helps in creating faster, beautiful, and responsive websites. And all these
components are integrated into Docker using a docker-compose file.

5.2 KEY IMPLEMENTATIONS OBJECTIVE

● Simple and Easy UI interactions should be developed.


● All API calls and functionality should be properly working.
● Consistent data should be there in the database.
● Activity Log should be recorded for specified operations.
● The report should be generated as per user requirements.

5.3 IMPLEMENTATION MODULES

Each module are Integrated into FastAPI, PostgreSQL, and Angular


● Asset: Manages Asset
● Employee: Assign, Reassign and Unassign Asset
● Room: Assign, Reassign and Unassign Asset
● Report: Generate Report based on specifications

29
Asset Management System

5.4 IMPLEMENTATION STEPS FOR MODULES

1. First Install all required python libraries for FastAPI and SQLAlchemy with
PostgreSQL ORM.
2. Create a database connection code with PostgreSQL service by providing connection
server url, port and database name.
3. Develop database table-column Model by specifying the column name and data type
store in that field.
4. Decide request time data schema and response time data schema.
5. Develop API that defines backend implementation includes database query.
6. Test APIs using SwaggerUI with realtime database server connection and also, Proper
validation Error messages.
7. Integrate APIs into Angular UI design with proper user interaction.
8. Integrate API data into Angular Material components.
9. Develop Docker files for each component with specified configurations.
10. Combine all Docker services into a docker-compose file.
11. Upload docker images into Docker Hub and fetch that image into the real-time server
then run a Docker container on the server.

30
Asset Management System

Chapter 6
Testing

6.1 TEST PLANNING

Test planning is the phase to describe how Testing would be performed. It includes a
plan to test before going to start making the test suite. The first step of testing is to test each
system module that is once the module has been completed, we test the module. For this,
white box testing and black-box testing is used. In white-box testing, structural testing is done
so all the modules are tested one by one and finally when the project is completed black box
testing is used to test the whole system together.
The objective of the system testing is to ensure that all individual programs are
working as expected, that the programs link together to meet the requirements specified and
ensure that the computer system and the associated clerical and other procedures work
together.

6.2 TESTING STRATEGY

Following Testing Strategies are used in the Application:

6.2.1. UNIT TESTING

Unit testing focuses on the smallest unit of software design, like a module or
system component. This testing strategy conducted on each module interface to access
Boundary conditions are tested and all error handling paths are tested.

6.2.2. INTEGRATION TESTING

This testing strategy follows the ​testing of combined parts of an application to


determine if they function correctly. The purpose of this level of testing is to expose
faults in the interaction between integrated units. Testing performed to expose defects
in the interfaces and interaction between integrated components.

31
Asset Management System

6.3 TEST SUITES DESIGN

Sr. Test Case Expected Output Actual Test Case


No. Output Result

1. FastAPI connection with Connection Success message As Pass


PostgreSQL database is shown on the Server log Expected
service

2. Add asset category with JSON Object with input As Pass


unique category name values of the asset category Expected
and asset tag

3. Add asset category with Error message to give other As Pass


an existing name or asset name or asset tag for a Expected
tag category as it is already exist

6. Add company location JSON Object with input As Pass


with a unique name values of location Expected

7. Add company location Error message to give other As Pass


with an existing name names for the company Expected
location

13. Add Asset with JSON Object with input As Pass


auto-generated Asset tag values of the Asset Expected
and number as per
selected asset category

14. Assign asset to an Success message of assign As Pass


employee with asset to an employee Expected
unassigned asset status

15. Assign asset to an Error message ‘Asset is As Pass


employee with assigned already assigned to a specific Expected
asset status employee or room’

16. Assign asset to room Success message of assign As Pass


with unassigned asset asset to a room Expected
status

17. Assign asset to room Error message ‘Asset is As Pass


with assigned asset already assigned to a specific Expected
status employee or room’

19. Filter asset based on Display asset details based on As Pass


category, Status, filtering criteria Expected
Location, Employee,
Room, Supplier or Asset
Company

32
Asset Management System

20. Import Asset from .csv, JSON object list with asset As Pass
.xls or .xlsx format file details Expected

21. Import Asset from other Error message for the invalid As Pass
format files file format Expected

22. Export Assets to format Download file into the As Pass


like .csv, .xls, xlsx or machine with the specified Expected
PDF file format and requirement
Table 6.3 Test Suites Design

33
Asset Management System

6.4 API AND UI VALIDATIONS SNAPSHOTS

6.4.1. Asset Status Validation[​12​]

Fig 6.4.1. Asset-status-validation


Asset Status Label name and hex color code value should be unique.

34
Asset Management System

6.4.2. Company Location Validation

Fig 6.4.2. Company-location-validation


The location name should be unique.

35
Asset Management System

6.4.3. Room Validation[​12​]

Fig 6.4.3. Room-validation


The room name should be unique for the same location but the different locations can have
the same name.

36
Asset Management System

6.4.4. Supplier Validation[​12​]

Fig 6.4.4. Supplier-validation


The supplier email and Contact number should be unique.

37
Asset Management System

6.4.5. Asset Category Validation

Fig 6.4.5. Asset-category-validation


Category name and Asset Prefix Tag should be unique.

38
Asset Management System

6.5 APPLICATION SNAPSHOTS

6.5.1 Dashboard

Fig 6.5.1. Dashboard


Dashboard shows the various counts and Activity log of various Assets. Also, there are some
statistical graphs and charts shown.

6.5.2 Asset List

Fig 6.5.2. Asset-list


List of All Assets with status code and relevant details.

39
Asset Management System

6.5.3 Asset List Filters

Fig 6.5.3 Asset-list-filter


Asset list with various filters like Status, Category, Location and Activity from start date to
end date. So, based on filtering criteria Assets will be sorted out.

​6.5.4 Add Asset into System

Fig 6.5.4. Add-asset-into-system


Add multiple Asset within the system with same configuration and different serial number

40
Asset Management System

Chapter 7
Conclusion and Future Extension

7.1 CONCLUSION

As ​keeping a track of assets is important for every organization. This application ties
the assets with the IT infrastructure of the organization. With a robust asset management
system, management and IT professionals can review and monitor all types of assets within
the organization. The information can be used to make detailed decisions about purchase and
other aspects of the asset’s life cycle.

The system helps in an accurate record of all types of assets. Using the software can
help in efficient resource planning. It can also reduce the risk of theft of assets. An asset
management system will help to monitor the assets located in different locations and
departments. We will get to know where the assets are located. We can run reports to know
about ownership, service details, and other insightful information.

The Project provides meaningful information regarding assets to optimize asset


utilization and remove manual management tasks of maintaining a spreadsheet for various
assets. The featured dashboard can help to get a quick decision by asset count and statistic
charts or graphs information.

7.2 FUTURE EXTENSION

● Develop a request module by that Employee can request for a particular asset with a
specific configuration and based on that assignment-reassignment of asset tasks would
be automated using AI-based algorithms.
● Lost and Found: In the case of asset Lost, If someone lost his/her physical asset in the
organization then put asset information ( like Assert Tag ) onto the system then a
notification is sent to employees. In the case of asset Found, If someone found an
asset then find the owner name of that asset by entering Asset Tag into the system and
send an acknowledgment to the owner.

41
Asset Management System

References

[1] FastAPI Inc. (2020,April). Documentation. ​https://fastapi.tiangolo.com/


[2] SQLAlchemy Inc. (2020,March). Documentation. ​https://docs.sqlalchemy.org/en/13/
[3] Psycopg2​ Inc. (2020,March). Documentation. ​https://wiki.postgresql.org/wiki/Psycopg2_Tutorial
[4] P​ython Inc. (2019,Dec). Documentation. ​https://docs.python.org/3/
[5] P​ostgreSQL Inc. (2020, February). Documentation. ​https://www.postgresql.org/docs/
[6] Angular 9 Inc. (2020,February). Documentation. ​https://angular.io/docs
[7] Angular Material Inc. (2020,June). Documentation. ​https://material.angular.io/
[8] Docker Inc. (2020,May). Documentation. ​https://docs.docker.com/
[9] StackOverflow Inc. (2020,April). Community. ​https://stackoverflow.com/questions
[10] Redis Cache. ​https://redis.io/documentation
[11] Balsamiq Wireframing.(2020,February) ​https://balsamiq.cloud​/
[12] Dharva Mistry. (17CP301​),​ BVM Engineering College, Vallabh Vidyanagar.

42
Asset Management System

Plagiarism Repor​t
● Average plagiarism report- 9.21

43
Asset Management System

44
Asset Management System

45

You might also like