Professional Documents
Culture Documents
Date of Submission
22nd-Nov-2018
SALMAN AHMAD
BSCS/S15/0106
Supervisor
Sir Iqbal Uddin Khan
Department of Computing
Faculty of Engineering Sciences & Technology
Hamdard University
FYP Proposal
Table of Contents
1.0- Introduction
1.1- Problem Statement
1.2 Motivation
1.3 FYP Objectives
1.4 Literature Review
3.0 Methodology
3.1 Project Approach (Agile)
3.2 Team Role & responsibilities (RACI matrix)
3.3 Requirement Development
3.4 Architect / Design
3.5 Development / Construction
3.6 Application (or Project) Testing
6.0 Budget/Costing
7.0 Project Deliverables
7.1 Milestone Plan
8.0 Reference
FYP Proposal
1.0 Introduction
1.1 Problem Statement
It is difficult for the Head of computer labs to supervise each and every Computer lab at
certain time. Also that LABS head has no idea about where peripherals are connected to a
system. It makes difficult to monitor several systems throughout all labs. We want all the
information under a single hood to make information manageable.
1.2 Motivation
As this project is based on computer monitoring so this project can be used in any
university, firms and software houses.
Reference : (https://dl.acm.org/citation.cfm?id=1913636)
2.1 Scope
The scope of the product is knowing every relevant information about a system’s hardware
so that we can cast it to an administrator-side application, so he may fully monitor it in real-
time. The client process will be running as a background process, while the server be
fetching information updates when a new client is turned on, or an existing one has turned
off.
The project stakeholders (primary) are the administrator(s) who want to monitor the
project.
The constraints are that we are heavily reliant on internet connectivity such that if it is down
at any time, we don’t know if a new system has been turned-on or an existing one has been
turned off.
At a later stage we want to make the program efficient by updating the elements
dynamically in the server application so that it doesn’t refresh the entire row on update.
Basic steps:
5. After clicking on any client from the list server will display its system details.
6. If Client shutdown the computer the server will not display the client in the
list.
FYP Proposal
CLIENT APPLICATION:
Fetch hardware information.
SERVER APPLICATION:
Receives system details through network and display.
2.1.3 Front-End
Home Page (Client)
The home page of the client application shows the current system’s hardware
specifications, along with the login time.
Home Page (Server)
The home page of the server application shows the all of the system online
along with their login times, and logout times.
2.2 Backend
The backend uses a JavaScript library to fetch a current system’s hardware specifications.
The specs are stored in a mongo database, which stores specifications as a document, each
document identifiable by a UUID of the system, which will only be created once for every
single system. After that the record will be updated for each new login time/logout time.
USE CASE 1: Admin wants to see the list of all the PCs
- Admin opens the server application
- Admin views the entire list of active/inactive PCs along with their timings
- The following is a list of activities that are clearly excluded scope of development for
this proposal.
- Development of Detailed Functional Specification
- Detail functional specification is not included in this timeline. Scope document will
be the base document for the requirements.
2.5 Assumptions
Internet
We are assuming that to ensure accurate login/logout times of clients, internet connectivity
in the entire lab are active always.
3.0 Methodology
Therefore, we first developed the backend for the client application, tested it with the
frontend, and then added real-time features on the backend to re-test it with the frontend.
We repeat the same steps for the Server application.
And finally, we wrap our entire code into Electron’s desktop application building tool, which
complies our JavaScript code into a Desktop application.
We then build the packager into an installer file which will allow the end user to
conveniently install the application in any system.
Tools and technologies used.
Backend:
Programming Language: JavaScript
JavaScript allows support for a large variety of libraries developed open source, which
allows a developer to build scalable and fault tolerant applications.
Database: MongoDB
We want the database to be scalable so that we can add/remove features or attributes from
the client’s application without using migrations (i.e. SQL databases), which would remove
the need to rollback the database each time a feature is added.
Frontend:
Templating Engine: Ejs
Ejs is a frontend templating engine that understands variables stored by the server which
were rendered to the page. Ejs is a widely used templating engine used for building simple
static applications involving database interactions.
3.4 Architect/Design
The client system’s architecture is a library used in node-js coded on the backend to store
information relevant to a system’s hardware. The design is simply fetching this information
and displaying it on the front-end.
Similarly for the server application, the information regarding all the clients is fetched at the
backend from a mongo database hosted online (mlabs). This data is rendered to the
frontend in real-time
FYP Proposal
3.5 Development/Construction
Used EJS (templating engine) to render the information coded at the backend to the front-end. Ejs
allows variables sent from the server to be rendered in a simpler fashion using a specific EJS syntax
(<% “variable name” %>). The library (system-information-npm) is used to fetch any system’s
hardware specifications.
We used ‘Pusher’, an online tool to develop real-time streaming databases. Which will be used to
broadcast each system’s login/logout time in real-time.
3.6 Testing
The project was initially tested by installing our client and server desktop application on the same
system. We ran the server application first which showed an empty list of 0 online systems. As soon
as the client application was run, the server application was refreshed, and it showed our current
system’s application on the server. The same behavior occurs when the client application was run on
different client machine.
FYP Proposal
- The server which wants to know information about all the clients must have the server application
installed on the system
6.0 Budget/Costing
- Total cost of the project: Depends On Time
- Start Date: 19/11/2018
- End Date: 10/12/2019 (Expected)
8.0 References
Fig 1. (https://en.wikipedia.org/wiki/Iterative_and_incremental_development)
(https://dl.acm.org/citation.cfm?id=1913636)