"Virtual Assistant (Youtube Play) ": Prof. Irfan A. Chaugule
"Virtual Assistant (Youtube Play) ": Prof. Irfan A. Chaugule
"Virtual Assistant (Youtube Play) ": Prof. Irfan A. Chaugule
Project Report
On
Submitted By
Ms. Shaikh Namira Hanif Roll No. -9209
Mr. Shaikh Afnan Rafique Roll No. -9210
Guided by
Prof. Irfan A. Chaugule
POONA COLLEGE of
of Arts, Science and Commerce,
DEPARTMENT OF COMPUTER SCIENCE
2020-21
Page | 1
Anjuman Khairul Islam's
POONA COLLEGE of
of Arts, Science and Commerce
Affiliated to
Savitribai Phule Pune University
Department of Computer Science
Academic year
2020-21
CERTIFICATE
This is certify that,
Ms. Shaikh Namira Hanif
Mr. Shaikh Afnan Rafique
Is/are student of M.Sc. Computer Science Semester II was examined in the partial fulfilment of
academic year 2020-21 project entitled
Page | 2
SR.N TOPIC PAGE NO
O
1. INTRODUCTION 4-6
2. OVERALL DESCRIPTION 7
6. RISK MANAGEMENT 19
7. SOFTWARE METRICS 20
8 TESTING 21-24
Page | 3
VIRTUAL ASSISTANT
(YouTube Play)
1. INTRODUCTION
In today’s era almost all tasks are digitalized. We have Smartphone in hands and it is
nothing less than having world at your fingertips. These days we aren’t even using
fingers. We just speak of the task and it is done. There exist systems where we can say
Text Dad, “I’ll be late today.” And the text is sent. That is the task of a Virtual Assistant.
It also supports specialized task such as helping automate search on YouTube.
This system is designed to be used efficiently on desktops. Personal assistant software improves
user productivity by managing routine tasks of the user and by providing information from
online sources to the user.
Voice searches have dominated over text search. Web searches conducted via mobile devices
have only just overtaken those carried out using a computer and the analysts are already
predicting that 50% of searches will be via voice by 2020.Virtual assistants are turning out to be
smarter than ever. Detect intent, pick out important information, automate processes, and deliver
personalized responses.
This project was started on the premise that there is sufficient amount of openly available data
and information on the web that can be utilized to build a virtual assistant that has access to
making intelligent decisions for routine user activities.
1.1 OBJECTIVES
Main objective of building personal assistant software (a virtual assistant) is using semantic data
sources available on the web, user generated content and providing knowledge from knowledge
databases. The main purpose of an intelligent virtual assistant is to answer questions that users
may have.
Page | 4
Virtual assistants can tremendously save you time. We spend hours in online research and then
making the report in our terms of understanding. This system can do that for you. Provide a
topic for research and continue with your tasks while the system does the research.
One of the main advantages of voice searches is their rapidity. In fact, voice is reputed to be
four times faster than a written search: whereas we can write about 40 words per minute, we are
capable of speaking around 150 during the same period of time15. In this respect, the ability of
personal assistants to accurately recognize spoken words is a prerequisite for them to be adopted
by consumers
1.2 Intended Audience and reading suggestions:
Voice assistants will continue to offer more individualized experiences as they get better at
differentiating between voices. However, it’s not just developers that need to address the
complexity of developing for voice as brands also need to understand the capabilities of each
device and integration and if it makes sense for their specific brand. They will also need to focus
on maintaining a user experience that is consistent within the coming years as complexity
becomes more of a concern. This is because the visual interface with voice assistants is missing.
Users simply cannot see or touch a voice interface.
1.4 Reference
Websites referred
www.stackoverflow.com
www.pythonprogramming.net
Page | 5
www.codecademy.com
www.tutorialspoint.com
www.google.co.in
Books referred
CS Dojo
edureka!
Page | 6
2. OVERALL:
2.1 Project Perspective:
Purpose of virtual assistant is to being capable of voice interaction, music playback, , and
providing weather, traffic, sports, and other real-time information, such as news. Virtual
assistants enable users to speak natural language voice commands in order to operate the
device and its apps.
FRONT-END: TKINTER
BACK-END: PYTHON
2.4 Stakeholders:
Page | 7
3. HARDWARE AND SOFTWARE REQUIREMENTS
The software is designed to be light weighted so that it doesn’t be a burden on the machine
running it. This system is being build keeping in mind the generally available hardware and
software compatibility. Here are the minimum hardware and software requirement for virtual
assistant.
Hardware:
Software:
Windows 7(32-bit) or above.
Python 2.7 or late
Page | 8
4. DESIGN PHASE
4.1 Design constraint
1.Schedule
2.Resources
3.Quality
You can usually pick any two of these but the third can only be roughly estimated.
If you have a hard delivery date and limits on available resources (both human and hardware),
the quality will suffer.
If the schedule is too unreasonable, no amount of resources will be sufficient unless zero quality
is acceptable.
Page | 9
SEQUENCE DIAGRAM
Page | 10
COLLABORATION DIAGRAM
DEPLOYMENT DIAGRAM
Page | 11
4.3 Tasks Performed
Analysis
The project could be implemented in an average sized organization. An average company will not
be very keen on spending loads of Money on ledgers. Whereas our project will greatly reduce the
costs which is using common and cheap office items like database and desktop application.
Feasibility Study:
The feasibility plays a major role in the analysis of the system. The very decision of the system
analysis whether he should design a particular system not and till what extend and limits the very
project should stretched can be inferred from the system feasibility study. Hence the feasibility
study forms basis of the system.
Technical Feasibility:
The technical feasibility assessment is focused on gaining and understanding of the present
technical resources of the organization and their applications to the expected needs of the
proposed system. It is an evaluation of the hardware and software how it meets the need of the
proposed system.
The assessment is based on an outline design of system requirements, to determine whether the
technical enterprises to handle the completion of project.
Page | 12
Economical Feasibility:
The purpose of Economical feasibility assessment is to determine the positive economic benefits
to organization that is the proposed system. System will provides it includes quantification and
identification of all the benefits expected. This assessment typically involved a cost, benefits
analysis. Development of this application is highly economically feasible. The organization need
not spend much more memory for the development of the system.
Operational Feasibility:
Operational feasibility is measure of how well a proposed system will solve the problem and take
the advantage of the opportunity, identified during the scope of definition and how it satisfies the
requirements identified on the requirement analysis phase of system development. This system
will be easy to use as a interface is GUI based. The system is easy to use so no any special skill
will be required to use the system. The customer can request to browse through the various
product available in store. The dealer can handle the transaction efficiency so the project
operationally feasible
Feasibility Study:
The feasibility plays a major role in the analysis of the system. The very decision of the system
analysis whether he should design a particular system not and till what extend and limits the very
project should stretched can be inferred from the system feasibility study. Hence the feasibility
study forms basis of the system.
Technical Feasibility:
The technical feasibility assessment is focused on gaining and understanding of the present
technical resources of the organization and their applications to the expected needs of the
proposed system.
It is an evaluation of the hardware and software how it meets the need of the proposed system.
The assessment is based on an outline design of system requirements, to determine the whether
the technical enterprises to handle the completion of project.
Page | 13
Economical Feasibility:
The purpose of Economical feasibility assessment is to determine the positive economic benefits
to organization that is the proposed system. System will provides it includes quantification and
Identification of all the benefits expected. This assessment typically involved a cost, benefits
analysis. Development of this application is highly economically feasible. The organization need
not spend much more memory for the development of the system.
Operational Feasibility:
Operational feasibility is measure of how well a proposed system will solve the problem and take
the advantage of the opportunity, identified during the scope of definition and how it satisfies the
requirements identified on the requirement analysis phase of system development.
This system will be easy to use as a interface is GUI based. The system is easy to use so no any
special skill will be required to use the system. The customer can request to browse through the
various product available in store. The dealer can handle the transaction efficiency so the project
operationally feasible
Design :
System Design
Design Objective:-
The primary objective of design is to deliver the requirement as specified in the feasibility report.
Following objectives should be kept in mind:-
Efficiency Cost Flexibility Security
The aim of system design, which is sometimes also referred to as top-level design, is to identify
the modules that should be in the system, the specification these modules, and how they interact
with each other to produce the desire results. At the end of the system design all the major data
structure file formats, output formats and the major modules in the system and their specification
are needed.
Design Concept:- A set fundamental software design concepts has evolved:- What criteria can be
used to partition software into individual component?
How function or data is structure detail separated from a conceptual representation of the
software?
Are these uniform criteria that define the technical quality of software design?
Implementation :
Code Efficiency:-
A very vital element of any engineering process is measurement. Measurement is the process by
which numbers are assigned to the attributes of entities in the software developed. Until recently,
software engineers had little quantitative guidance in this particular field. But now, they use
technical metrics to help them build higher- quality software. The factors that affect software
quality can be categorized in two broad groups:
Factors that can be directly measured and Factors that can be measured only indirectly (e.g.
usability or maintainability).
Some of the important factors are briefly described below:-
Correctness: The extent to which a program satisfies its specifications and fulfills the admins
mission objectives is termed as its correctness. The project is fully correct in the sense that it has
completely implemented the admin’s requirements and needs.
Page | 15
Efficiency: The amount of computing resources and code required by a
program to perform its function.
Portability: Effort required transferring the program from one hardware and/
or software system environment to another.
Milestones:
o A project milestone is a management tool that is used to delineate a
point in a project schedule. These points can note the start and finish of
a project, and mark the completion of a major phase of work. Milestones
can be used to symbolize anything that has started or finished, though
it’s primarily used as a scheduling tool.
o The milestones for the automated timetable generator were,
1. Front End
2. Database
3. Linking of database to the front end
4. Insertion module
5. Allocation module
6. Display module
Project Charter:
The final system should able to generate proper stable time tables for
supervisor in supervision room completely in easy way which will save a lot
of time and effort of an institute examination administrations. To make a
Supervision system generic so that admin can work equally well for different
departments supervisors in School, Colleges and Universities etc. Ease of use
for admin of system so that he/she can make supervision time table in less
time. Focus on optimization of progarm so that it Provides and facilitates for
Page | 16
admin a clear view detail of every supervisior in the institute to make stable
and non-overlapping timetable for supervision.
5. Time Management
5.1 Project Network Diagram
5.2 Plan
1 UI/UX Design
2 Implementation
3 Data Collection
4 Testing
Page | 17
5.4 Data Collection
Data collection is the first step in the Virtual Assistant model
development project. Analyzing various surveys of languages that are
widely used was important.
In this project, we have used a real time API. This allows the users to speak to
the system and find the desired result to be searched on YouTube.
5.5 Implementation
The implementation is done in a very structured way which makes the
code very easy to read and maintainable. Python is chosen as the
language for implementing the app because it is the standard language
and also it is easy to read and more efficient.
6. Risk Management
To achieve effective and efficient risk management, risk planning is
required. The commonest form of risk planning is the Risk Management
Plan (RMP).
A risk management plan (RMP) comprises:-
The risk strategy, which records how risk will be owned,
evaluated, controlled, reviewed and reported upon, the
plan will show:-
Who is accountable for a particular risk (ownership). What
that particular risk is (evaluation). How that particular risk
will be managed, controlled, reviewed and reported, in
Page | 18
other words the physical actions or management actions
that will be taken to avoid, reduce, control or accept the
risk.
The key to effective risk management is ownership. Each risk (and associated
actions) must be owned so that there is clear responsibility and accountability for
the risk and its associated action. It has become an axiom of good risk
management that the ownership of a risk should lie with the party ‘best’ able to
control the risk probability and its impact. Different risks and actions will need to
be owned by different stakeholders
7. SOFTWARE METRICS
Software metrics is a standard of measure that contains many activities which
involve some degree of measurement. It can be classified into three categories:
product metrics, process metrics, and project metrics.
● Product metrics describe the characteristics of the product such as size,
complexity, design features, performance, and quality level.
● Process metrics can be used to improve software development and
maintenance. Examples include the effectiveness of defect removal during
development, the pattern of testing defect arrival, and the response time of
the fix process.
● Project metrics describe the project characteristics and execution. Examples
include the number of software developers, the staffing pattern over the life
cycle of the software, cost, schedule, and productivity.
Some metrics belong to multiple categories. For example, the in-process quality
metrics of a project are both process metrics and project metrics.
Scope of Software Metrics
Software metrics contains many activities which include the following −
Page | 19
● Cost and effort estimation
● Productivity measures and model
● Data collection
● Quantity models and measures
● Reliability models
● Performance and evaluation models
● Structural and complexity metrics
● Capability – maturity assessment
● Management by metrics
● Evaluation of methods and tools
Reliability Models
Most quality models include reliability as a component factor, however, the
need to predict and measure reliability has led to a separate specialization in
reliability modeling and prediction. The basic problem in reliability theory is
to predict when a system will eventually fail.
Modularity Models
Quality Models
There exist a lot of works proposing metrics for the quality of a single class
and/or the quality of inter-class relationships, there exist few works dealing
with some aspects for the quality of package organization and relationship. As
consequence, the modularization gradually drifts and looses quality, where
some classes may not be placed in suitable packages and some packages need
to be re-structured [19], [23]. To improve the quality of software
Page | 20
modularization, assessing the package organization and relationships is
required.
Maintainability Models
8. TESTING
METHODOLOGY OF TESTING USED IN THE PROJECT:-
Testing is the process of detecting errors. Testing performs a very critical role
for quality assurance and for ensuring the reliability of the software. The
results of testing are used later on during maintenance also.
Here System Testing is involved in this project.
Testing is vital to the success of the system. System testing makes a logical
assumption that if the parts of the system are correct, the goal will be
successfully achieved. In adequate testing or non-testing leads to errors that
may not appear until months or even years later (Remember the New York
three day power failures due to a misplaced ‘Break’ statement).
This creates two problems:-
1. The time lag between the cause and the appearance of the problem.
2. The time interval effect of the system errors on files and the records on
the system. A small error can conceivably explode into a much larger
problem. Effective testing early in the process translates directly into
long term cost savings from a reduced number of errors. compromised
by efforts to facilitate program or design efficiency in terms of
processing time or design efficiency.
Thus in this phase we went to test the code we wrote. We needed to know if
Page | 21
the code compiled with the design or not? Whether the code gave the
desired outputs on given inputs? Whether it was ready to be installed on
the user’s computer or some more modifications were needed?
The aim of testing is often to demonstrate that a program works by
showing that it has no errors. The basic purpose of testing phase is to
detect the errors that may be present in the program. Hence one should not
start testing with the intent of showing that a program works, but the intent
should be to show that a program doesn’t work. Testing is the process of
executing a program with the intent of finding errors.
Testing Objectives: -
The main objective of testing is to uncover a host of errors, systematically
and with minimum effort and time. Stating formally, we can say
Testing is a process of executing a program with the intent of finding an error.
A successful test is one that uncovers an as yet undiscovered error. A good test
case is one that has a high probability of finding error, if it exists. The tests are
inadequate to detect possibly present errors. The software more or less
confirms to the quality and reliable standards.
Steps of Testing of Module: - In order to uncover the errors present in
different phases, we have the concept of levels of testing. The basic levels of
testing are
▪ Acceptance Testing: -
Acceptance Testing is performed with realistic data of the client to
demonstrate that the software is working satisfactorily. Testing here is focused
on external behavior of the system; the internal logic of program is not
emphasized.
The testing phase is an important part of software development. It is the
process of finding errors and missing operations and also a complete
verification to determine whether the objectives are met and the user
requirements are satisfied.
▪ System Testing: -
Here the entire software system is tested. The reference document for this
process is the requirements document, and the goal is to see if software meets
its requirements.
Page | 22
Here entire ‘REGISTRATION COUNTER MANAGEMENT’ has been tested
against requirements of project and it is checked whether all requirements of
project have been satisfied or not.
▪ Integration Testing: -
After unit testing, we must perform integration testing. The goal here is to see
if modules can be integrated properly, the emphasis being on testing interfaces
between modules. This testing activity can be considered as testing the design
and hence the emphasis on testing module interactions.
Unit Testing: -
Unit testing focuses verification effort on the smallest unit of software i.e. the
module. Using the detailed design and the process specifications, testing is
done to uncover errors within the boundary of the module. All modules must
be successful in the unit test before the start of the integration testing begins.
Debugging: -
The process of testing gives symptoms, and a program’s failure is a clear
symptom of the presence of the error. After getting a symptom, we begin an
investigation to localize the error, that is to find out which module or interface
is causing it. Then that section of the code is to be studied to determine the
cause of the problem. This process is called ‘Debugging’. Hence, debugging is
the activity of locating and correcting errors.
In general: -
Page | 23
Test cases: Clicking on speak button:
Sr.No Actions Expected output Actual Output Status
1. Clicking on speak The Speak button It should record Successful
button. is functional. the input.
2. Clicking on speak Should accept Display the Successful
button input & search it message speak
continuously. again
3. After one voice User should have User is able to Successful
recognition fail chances to speak speak again by
message appears again going back
Page | 24