16CP052 CP446 Ams
16CP052 CP446 Ams
A PROJECT REPORT
Submitted by
Harshil Sadharakiya
(16CP052)
VALLABH VIDYANAGAR
Affiliated to
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
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:
Project Guide
Project Guide
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:
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
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
iv
Asset Management System
Chapter 1
Introduction
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
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
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
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.
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
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.
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.
5
Asset Management System
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.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
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.
8
Asset Management System
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
11
Asset Management System
12
Asset Management System
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
14
Asset Management System
Chapter 4
Design
15
Asset Management System
16
Asset Management System
Application components
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.
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
18
Asset Management System
19
Asset Management System
This section lists the data models required for state persistence within the application.
4.3.1. Asset :
Table Name: asset_master
20
Asset Management System
4.3.3. Location :
Table Name: location_master
4.3.4. Laptop :
Table Name: laptop_master
21
Asset Management System
os varchar os name
22
Asset Management System
4.4 WIREFRAMES[11]
4.4.1. DASHBOARD
23
Asset Management System
24
Asset Management System
25
Asset Management System
26
Asset Management System
27
Asset Management System
4.4.8. PERMISSION
28
Asset Management System
Chapter 5
Implementation
29
Asset Management System
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
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.
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.
31
Asset Management System
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
33
Asset Management System
34
Asset Management System
35
Asset Management System
36
Asset Management System
37
Asset Management System
38
Asset Management System
6.5.1 Dashboard
39
Asset Management System
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.
● 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
42
Asset Management System
Plagiarism Report
● Average plagiarism report- 9.21
43
Asset Management System
44
Asset Management System
45