Beruflich Dokumente
Kultur Dokumente
BACHELOR OF ENGINEERING
IN
BY
VARUN KHURANA
(SG15345)
BACHELOR OF ENGINEERING
IN
BY
VARUN KHURANA
(SG15345)
The internship opportunity I had with INFOSYS LIMITED was a great chance for
learning and professional development. Therefore, I consider myself as a very lucky
individual as I was provided with an opportunity to be a part of it. I am also grateful for
having a chance to meet so many wonderful people and professionals who led me though
this internship period.
Bearing in mind previous I am using this opportunity to express my deepest gratitude and
special thanks to Mr. Azhar Naveed Khairdi (Mentor) who in spite of being
extraordinarily busy with his duties, took time out to hear, guide and keep me on the
correct path and allowing me to carry out my project at their esteemed organization and
extending during the training.
I express my deepest thanks to Kadir Vel Rajan (Batch Owner) for taking part in useful
decision & giving necessary advices and guidance and arranged all facilities to make life
easier. I choose this moment to acknowledge his contribution gratefully.
Varun Khurana
Abstract
This report describes the internship I spent at the Infosys Limited Mysore. The Global
Education Center is a leading training center for the company recruits and as such
operates under the principles governed by the company itself. The managerial structure of
the Center and responsibilities of each department, explain the specifics of the Center and
the difficulties, problems and barriers that impact the functioning of the Center.
I present an in-depth analysis of the project done at the end of the training along with
strengths and weaknesses as well as threats and opportunities available to me as identified
through a SWOT analysis. The steps required to implement the recommendations
suggested are also presented.
Finally, I presented the entire functioning of the project through the screenshots and
discuss the future scope of the project taken during the internship.
Table of Contents
3. Student Declaration iv
4. Acknowledgement v
5. Abstract vi
6. List of Figures xi
Chapter1 Introduction 1
1.8.1 Limitations 5
1.9.1 Advantages 6
2.1 Performax 7
3.5.1 HTML11
3.5.2 CSS 12
3.5.3 JavaScript 12
3.5.7 Flask 13
3.5.8 Assistedge 14
3.5.9 Bootstrap 14
Chapter5 Implementation 19
5.2.1 UI MODULE 21
5.2.1.1 HTML 21
5.2.1.2 CSS 21
5.2.1.3 JAVASCRIPT 21
5.2.1.4 BOOTSTRAP 22
5.2.2.4 Session 24
5.2.3.1 Oracle 25
5.2.3.2 PL SQL 26
5.2.6 Scrum 29
Chapter7 TESTING 44
8.1 CONCLUSION 52
LIST OF FIGURES
Page
Fig. No. Title No.
6.7 Dashboard 35
6.10 Yearly 37
6.17 Contact Us 40
Page
Table. No. Title No.
The increasing use of technology in everyday life has increased efficiency and
productivity. It is because of budding technologies like artificial intelligence, robotic
process automation, and machine learning etc. that the educators today are able to
provide a personalized learning environment to the students and easily monitor their
own performance.
The following are the 6 ways in which technology is influencing the education sector:
1. Smart Feedbacks
Feedback, whether it is for the educator or tech associate, is very important to improve
the learning process. The students’ feedback gives an opportunity for the educator or
tech associate to identify gaps in their teaching efforts and do better. The teachers’
feedback allows the students to identify the areas where they need to do some extra
work. For student’s feedback, the educational institutions generally use online to
printed forms.
But this process can become more engaging and authentic with technology
implementations.
Every year a huge amount, of prospective students visit the college websites or
administrate offices to inquire about the admission process, scholarships or course fees.
Since most questions are repetitive, chat bot’s can be used to convert this time-
consuming task of replying to each query personally into an automatic one.
This would not only save a great deal of time of the students but would also diminish
the burden of the institutions. Moreover, the students would not have to wait for getting
the reply and can participate in instant chats with these bots.
5. Better Support
The responsibility of an educational institution doesn’t end at providing a highly-
qualified faculty, well-equipped labs or better courses. It has been found that a poor
student support is one of the key reasons why students drop out of colleges. Hence, the
higher education institutions should always pay attention in providing the complete
information to the students and in communicating with them time-to-time.
RPA can offer a huge value here. RPA that help the students during the admission
processes can further be used to provide them all the necessary information about their
courses, its modules, and faculties. The bots can also act as campus guides and help the
students as they arrive at the campus. They can help the students find out more about
the scholarships, hostel facilities, library memberships, and so on.
1.3 PURPOSE
The purpose of the project is efficient performance analysis of educator and tech
associate via Feedbacks from the students. Since, the feedback is generated and stored
in excel sheets which are quite boring and tedious to look at. So, the excel sheet data is
thus transformed to visual representation. This would not only save a great deal of time
of the educators and their managers but would also diminish the burden of the
institutions. Moreover, the students would experience a better learning environment.
1.4 SCOPE OF THE PROJECT
Initially the educators would be informed of their performance by their managers, whenever
the manager got the time to do so. Now-a-days nobody really has time and the managers
who have to mentor multiple educators and tech associates might not get the time to monitor
each of them regularly and frequently. This lack of mentorship and not knowing where they
lack, can lead to bad teaching practices. When we say technology have come a long way,
we actually meant it. Availability of our application is 24/7 with the immense knowledge
it can hold is all set to outperform managers. With speed and accuracy, they will offer great
support to institutions and ETA department. It saves time and in most of the cases offers
them clear and concrete answers. They may not be perfect but quite useful.
Everyone finds it difficult while we are learning under the absence of the mentor.
The students may despise studying if the educator isn’t good enough.
They can help in reducing the workload of the administrative staff of the educational
institutions.
• The user is always free to learn new things with the help of this project as it
provides a connectivity to LEX.
• The assistant is accessible during the working and non-working hours or we can
say after 5 pm.
• The project enables users to have good and user-friendly experience with simple
UI.
1.8.1 Limitations:
• Everyone finds it difficult while we are learning under the absence of the guide.
• Many educators who are really interested to improve and learn new things might
get stuck in between and find difficult to proceed further.
• Many educators might lose interest and continue their average teaching process
because of not knowing where they lack.
1.9 PROPOSED SYSTEM
PERFORMAX renders graphs based on the performance of the educator and tech associates
assessed via feedback given by students. The proposed solution is to create an application
which provides suggestions and links to other ETA related activities to assist educators and
tech associates with their certain needs and to provide a more personal experience.
1.9.1 Advantages:
The proposed solution is an application which provides suggestions to
assist educators and tech associates for improving their teaching skills.
PERFORMAX will query data from database, what the user is asking and
generate an appropriate response based on the queried data in the form of
graphical representation.
2.1 PERFORMAX
Literature survey is the most important step in software development process. Before
developing the tool, it is necessary to determine the time factor, economy and company
strength. Once these things are satisfied, the next step is to determine which language is to
be used for developing the tool. Once programmer starts coding, they need lots of external
support. This can be obtained by senior programmers. Before building the system, the
above consideration should be taken into account.
Google Charts is a pure JavaScript based charting library meant to enhance web
applications by adding interactive charting capability. It supports a wide range of charts.
Charts are drawn using SVG in standard browsers like Chrome, Firefox, Safari, and
Internet Explorer (IE). In legacy IE 6, VML is used to draw the graphics.
Following are the salient features of Google Charts library.
Compatibility − Works seamlessly on all major browsers and mobile platforms like
android and iOS.
Multi-touch Support − Supports multi-touch on touch-screen based platforms like
android and iOS. Ideal for iPhone/iPad and android based smart phones/ tablets.
Free to Use − Open source and is free to use for non-commercial purpose.
Lightweight − loader.js core library, is extremely lightweight library.
Simple Configurations − Uses json to define various configuration of the charts and
very easy to learn and use.
Dynamic − Allows to modify chart even after chart generation.
Multiple axes − Not restricted to x, y axis. Supports multiple axis on the charts.
Configurable tooltips − Tooltip comes when a user hover over any point on a chart.
Google charts provides tooltip inbuilt formatter or callback formatter to control the
tooltip programmatically.
Date Time support − Handle date time specially. Provides numerous inbuilt
controls over date wise categories.
Print − Print chart using web page.
External data − Supports loading data dynamically from server. Provides control
over data using callback functions.
Text Rotation − Supports rotation of labels in any direction.
CHAPTER 3
SYSTEM REQUIRMENTS SPECIFICATION
Take the input i.e., queries data from the database etc. which is selected by the user
through the dashboard.
The application should search for the appropriate output with the help of data in
database available.
According to the output generated, the user is given certain suggestions to improve
his/her skills.
From the CSV the data is entered to the database using a program written in python.
preferences, behaviors.
Define meaningful user groups/personas. Identify user roles and groups based on
the difference in their goals.
Determine user goals. Build user stories around user’s needs and expectations.
Map user groups, goals and system actions. Apply use cases for different user
groups with various goals to your system.
3.4 OUTPUT REQUIREMENTS
The application should search for the appropriate output with the help of data in
database available.
According to the output generated, the user is given certain suggestions to improve
his/her skills.
Java-script is the programming language of HTML and the Web. Java-script (JS) is
a lightweight interpreted or just-in-time compiled programming language
with first-class functions. While it is most well-known as the scripting language for
Web pages.
Google Charts provides wide variety of charts. For example, line charts, spline
charts, area charts, bar charts, pie charts and so on.
Free to Use − Open source and is free to use for non-commercial purpose.
Configurable tooltips − Tooltip comes when a user hover over any point on
a charts. Google charts provides tooltip inbuilt formatter or callback
formatter to control the tooltip programmatically.
Date Time support − Handle date time specially. Provides numerous inbuilt
controls over date wise categories.
Example :The following code shows a simple web application that prints "Hello
World!":
app = Flask(__name__)
@app.route("/")
def hello():
Bootstrap is a free front-end framework for faster and easier web development.
Bootstrap includes HTML and CSS based design templates for typography, forms,
buttons, tables, navigation, modals, image carousels and many other, as well as
Bootstrap also gives you the ability to easily create responsive designs.
Generating HTML from within Python is not fun, and actually pretty cumbersome because
you have to do the HTML escaping on your own to keep the application secure. To render
a template you can use the render_template() method.
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
User PERFORMAX
Result
The below diagram represents the system architecture of Learning assistant project. The
user is allowed to request or query via a user interface i.e. dashboard. The data is stored in
the database and the output generated is rendered as a step and suggestions are displayed.
LOGIN ACCORDING
TO YOUR ROLE
Select
functionality
Appropriate message is to be
displayed
Data processing
Fetch appropriate
answer
Features:
Multi-skilled robots
Google Charts provides wide variety of charts. For example, line charts, spline charts, area
charts, bar charts, pie charts and so on.
Compatibility − Works seamlessly on all major browsers and mobile platforms like
android and iOS.
Multi-touch Support − Supports multi-touch on touch screen based platforms like
android and iOS. Ideal for iPhone/iPad and android based smart phones/ tablets.
Free to Use − Open source and is free to use for non-commercial purpose.
5.1.3 Flask integration:
Flask is often referred to as a micro framework. It aims to keep the core of an application simple
yet extensible. Flask does not have built-in abstraction layer for database handling, nor does it have
form a validation support. Instead, Flask supports the extensions to add such functionality to the
application.
HTML
CSS
BOOTSTRAP
JAVASCRIPT
5.2.1.1 HTML
HTML is the standard markup language for creating Web pages. HTML stands
for Hypertext Markup Language, and it is the most widely used language to write Web
Pages.
Hypertext refers to the way in which Web pages (HTML documents) are linked
together. Thus, the link available on a webpage is called Hypertext.
As its name suggests, HTML is a Markup Language which means you use HTML
to simply "mark-up" a text document with tags that tell a Web browser how to
structure it to display.
Originally, HTML was developed with the intent of defining the structure of documents
like headings, paragraphs, lists, and so forth to facilitate the sharing of scientific
information between researchers.
Now, HTML is being widely used to format web pages with the help of different tags
available in HTML language.
HTML stands for Hyper Text Markup Language.
HTML describes the structure of Web pages using markup.
HTML elements are the building blocks of HTML pages.
HTML elements are represented by tags.
5.2.1.2 CSS
CSS stands for Cascading Style Sheets Cascading Style Sheets, fondly referred to as CSS,
is a simple design language intended to simplify the process of making web pages
presentable.
CSS handles the look and feel part of a web page. Using CSS, you can control the color of
the text, the style of fonts, the spacing between paragraphs, how columns are sized and laid
out, what background images or colors are used, layout designs, variations in display for
different devices and screen sizes as well as a variety of other effects.
CSS is easy to learn and understand but it provides powerful control over the presentation
of an HTML document. Most commonly, CSS is combined with the markup languages
HTML or XHTML.
Advantages of CSS
CSS saves time − You can write CSS once and then reuse same sheet in multiple
HTML pages. You can define a style for each HTML element and apply it to as
many Web pages as you want.
Pages load faster − If you are using CSS, you do not need to write HTML tag
attributes every time. Just write one CSS rule of a tag and apply it to all the
occurrences of that tag. So less code means faster download times.
Easy maintenance − To make a global change, simply change the style, and all
elements in all the web pages will be updated automatically.
Superior styles to HTML − CSS has a much wider array of attributes than HTML,
so you can give a far better look to your HTML page in comparison to HTML
attributes.
5.2.1.3 JAVASCRIPT
Javascript is the programming language of HTML and the Web. Javascript (JS) is a
lightweight interpreted or just-in-time compiled programming language with first-class
functions. While it is most well-known as the scripting language for Web pages.
Client-side JavaScript is the most common form of the language. The script should be
included in or referenced by an HTML document for the code to be interpreted by the
browser.
It means that a web page need not be a static HTML, but can include programs that interact
with the user, control the browser, and dynamically create HTML content.
The JavaScript client-side mechanism provides many advantages over traditional CGI
server-side scripts. For example, you might use JavaScript to check if the user has entered
a valid e-mail address in a form field.
The JavaScript code is executed when the user submits the form, and only if all the entries
are valid, they would be submitted to the Web Server.
JavaScript can be used to trap user-initiated events such as button clicks, link navigation,
and other actions that the user initiates explicitly or implicitly.
Advantages of JavaScript
The merits of using JavaScript are −
Less server interaction − You can validate user input before sending the page off
to the server. This saves server traffic, which means less load on your server.
Immediate feedback to the visitors − They don't have to wait for a page reload to
see if they have forgotten to enter something.
Increased interactivity − You can create interfaces that react when the user hovers
over them with a mouse or activates them via the keyboard.
Richer interfaces − You can use JavaScript to include such items as drag-and-drop
components and sliders to give a Rich Interface to your site visitors.
5.2.1.4 BOOTSTRAP
Bootstrap is the popular HTML, CSS and JavaScript framework for developing a
responsive and mobile friendly website.
Bootstrap includes all topics such as jumbotron, table, button, grid, form, image, alert,
wells, container, carousel, panels, glyphicon, badges, labels, progress bar, pagination,
pager, list group, dropdown, collapse,tabs, pills, navbar, inputs, modals, tooltip, popover
and scrollspy.
Bootstrap is a free front-end framework for faster and easier web development.
Bootstrap includes HTML and CSS based design templates for typography, forms,
buttons, tables, navigation, modals, image carousels and many other, as well as
optional JavaScript plugins.
Bootstrap also gives you the ability to easily create responsive designs.
Python Flask
Flask is a web application framework written in Python. Armin Ronacher, who leads an
international group of Python enthusiasts named Pocco, develops it. Flask is based on
Werkzeug WSGI toolkit and Jinja2 template engine. Both are Pocco projects.
1 GET
Sends data in unencrypted form to the server. Most common method.
2 HEAD
Same as GET, but without response body
3 POST
Used to send HTML form data to server. Data received by POST method is not
cached by server.
4 PUT
Replaces all current representations of the target resource with the uploaded
content.
5 DELETE
Removes all current representations of the target resource given by a URL
By default, the Flask route responds to the GET requests. However, generating HTML
content from Python code is cumbersome, especially when variable data and Python
language elements like conditionals or loops need to be put. This would require frequent
escaping from HTML.
This is where one can take advantage of Jinja2 template engine, on which Flask is based.
Instead of returning hardcode HTML from the function, a HTML file can be rendered by
the render_template() function.
5.2.2.3 Session
Unlike a Cookie, Session data is stored on server. Session is the time interval when a client
logs into a server and logs out of it. The data, which is needed to be held across this session,
is stored in a temporary directory on the server.
A session with each client is assigned a Session ID. The Session data is stored on top of
cookies and the server signs them cryptographically. For this encryption, a Flask
application needs a defined SECRET_KEY.
Session object is also a dictionary object containing key-value pairs of session variables
and associated values.
Oracle
PL SQL
5.2.3.1 Oracle
The acronym ERP stands for enterprise resource planning. It refers to the systems and
software packages used by organizations to manage day-to-day business.
Oracle E-Business Suite is one of the most reputed ERP product which is currently
available in the market – developed by Oracle. In the world of enterprise resource
planning, very few software products have really made to the top ranks when it comes to
worldwide implementations. Based on market share – SAP, Microsoft Dynamics are the
close vendors who try to get the ERP share in almost all the regions.
Direct call can also be made from external programming language calls to
database.
PL/SQL's general syntax is based on that of ADA and Pascal programming
language.
4 UI design 05/04/2019
5 Coding 06/04/2019
7 Integration 28/04/2019
9 Documentation 03/05/2019
12 Principles of Agile
1. Customer satisfaction through early and continuous software delivery.
2. Accommodate changing requirements throughout the development process.
3. Frequent delivery of working software.
5.2.6 Scrum
Scrum is an agile way to manage a project, usually software development. Agile software
development with Scrum is often perceived as a methodology; but rather than
viewing Scrum as methodology, think of it as a framework for managing a process.
Sprint
Sprint Planning
Daily Scrum
Sprint Review
Sprint Retrospective
2) Reliability:
The extent to which any software system continuously performs the specified functions
without failure. This is tested by Reliability Testing
3) Survivability:
The parameter checks that the software system continues to function and recovers itself in
case of system failure. This is checked by Recovery Testing
4) Availability:
The parameter determines the degree to which user can depend on the system during its
operation. This is checked by Stability Testing.
5) Usability:
The ease with which the user can learn, operate, prepare inputs and outputs through
interaction with a system. This is checked by Usability Testing
6) Scalability:
The term refers to the degree in which any software application can expand its processing
capacity to meet an increase in demand. This is tested by Scalability Testing.
7) Interoperability:
This non-functional parameter checks a software system interfaces with other software
systems. This is checked by Interoperability Testing.
8) Efficiency:
The extent to which any software system can handles capacity, quantity and response
time.
9) Flexibility:
The term refers to the ease with which the application can work in different hardware and
software configurations. Like minimum RAM, CPU requirements.
10) Portability:
The flexibility of software to transfer from its current hardware or software environment.
11) Reusability:
It refers to a portion of the software system that can be converted for use in another
application.
The purpose of testing is to discover errors. Testing is the process of trying to discover
every conceivable fault or weakness in a work product. It provides a way to check the
functionality of components, subassemblies, assemblies and/or a finished product it is the
process of exercising software with the intent of ensuring that the Software system meets
its requirements and user expectations and does not fail in an unacceptable manner. There
are various types of test. Each test type addresses a specific testing requirement.
White box testing encompasses several testing types used to evaluate the usability of an
application, block of code or specific software package. There are listed below –
Unit Testing: It is often the first type of testing done on an application. Unit testing
is performed on each unit or block of code as it is developed. Unit Testing is
essentially done by the programmer. As a software developer, you develop a few
lines of code, a single function or an object and test it to make sure it works before
continuing Unit Testing helps identify a majority of bugs, early in the software
development lifecycle. Bugs identified in this stage are cheaper and easy to fix.
Testing for Memory Leaks: Memory leaks are leading causes of slower running
applications. A QA specialist who is experienced at detecting memory leaks is
essential in cases where you have a slow running software application.
Apart from above, a few testing types are part of both black box and white box testing.
They are listed as below
White Box Penetration Testing: In this testing, the tester/developer has full
information of the application's source code, detailed network information, IP
addresses involved and all server information the application runs on. The aim is
to attack the code from several angles to expose security threats
7.4 DIFFERENT STAGES OF TESTING
input, all of the "integrated" software components that have successfully passed integration
testing and also the software system itself integrated with any applicable hardware
system(s).
System testing is a more limited type of testing; it seeks to detect defects both within the
"inter-assemblages" and also within the system as a whole. System testing is performed on
the entire system in the context of a Functional Requirement Specification(s) (FRS) and/or
a System Requirement Specification (SRS).
System testing tests not only the design, but also the behavior and even the believed
expectations of the customer. It is also intended to test up to and beyond the bounds defined
in the software/hardware requirements specification(s).
[2] Allen Downey, Jeff Elkner, Chris Meyers,” Learning with Python”
[4] https://stackoverflow.com/
[5] https://zenkit.com/en/blog/agile-methodology-an-overview/
[6] www.w3schools.com.
[7] www.tutorialspoint.com
[8] https://github.com/miguelgrinberg/flasky