SlideShare a Scribd company logo
1 of 37
1 | P a g e
Summer Internship Report
Sms Based Search Engine
Mohit Kalra
12CSU066
20 August 2015
2 | P a g e
Table of Contents
1. Abstract ……………………………………………………….. 5
2. Introduction …………………………………………………... 6
3. Pre-Project Talks ...…………………………………………… 6
4. Pre Project Trainings ………………………………………… 9
4.1 Html, Css, JavaScript …………………………………......... 9
4.2 Selenium Test Tool ……………………………………....... 10
4.3 Apache Jmeter....................................................................... 11
4.4 CMS: Drupal and Joomla …………………………………..14
4.5 Bootstrap ……………………………………………….......17
4.6 Angular JS ………………………………………………….18
4.7 Yii …………………………………………………………..19
4.8 Mercurial …………………………………………………...21
5. Main Project …………………………………………………..23
5.1 Problem Statement …………………………………………23
5.2 Design Document ………………………………………….23
5.3 Use Cases …………………………………………………..25
5.4 Building the database............................................................26
5.5 Module Assignments ……………………………………….27
5.6 Exclusive Tools Used …………………………………........31
6. Analysis ………………………………………………………...35
7. Conclusion ……………………………………………………..35
3 | P a g e
List of Figures
1. Selenium Tool ……………………………………………………….. 11
2. Apache Jmeter ………………………………………………….........12
3. Response Time Graph ...……………………………………………. 13
4. Drupal homepage …………………………………………................ 15
5. Load Time .............................................................................................16
6. Bootstrap............................................................................................... 17
7. Angular JS .,...........................................................................................19
8. MVC-YII ...............................................................................................21
9. Mercury .................................................................................................22
10. -14 Admin Reports ...............................................................................28
4 | P a g e
Abstract
The opportunity to learn and work in corporate made an impact on my imagination and
problem solving, shifted my perspective, and helped me thoroughly see the working of a
corporate company. I was fortunate enough to have got an internship at Stratbeans
Consulting Private Limited in the department of software development and testing.
Stratbeans is situated in sector 56, Gurgaon. Stratbeans is mainly divided into 3
departments - graphics designing, sales and marketing, software development and
testing.
An internship at this place helped me bridge the gap of classroom to corporate and
helped me develop an understanding of how a company works through the challenges to
finally deliver to the clients. I came to know and learn how important verbal
communication and written communication are, as a part of everyday life in a corporate
company. Scalability of programs to build a product, responsibility of the work
assigned, ownership of a given work, getting through the challenges as a team were the
key non – technical aspects I learned. Content management system and MVC design
architecture were the main technical aspects I learned. My goals were to contribute to
my company in every way I could so that there is a mutual benefit and I was able to
achieve my goal with completing on time, every job that was assigned.
5 | P a g e
1. INTRODUCTION
Stratbeans Consulting Private Limited was setup in the year 2008 and due to its
satisfactory services now has 76 happy clients with several big names in it. I had an 8
week internship from May to July. Stratbeans mainly deals in learning managements
systems and graphic designing with the core of the company held in software
development.
It was a great learning experience ranging from software development to software
testing and using content management systems to building up the database. The various
aspects which were some time ago topics in exam were now being implemented and
used. I see internship as an integral part of my learning endeavor which helped me relate
and told how to use, what was learnt. Along with it you develop a sense of approaching
problems and then solve them efficiently.
2. PRE-PROJECT TALKS
It was encouraging and fortunate to have known that my mentor was the Vice President
of technology in the firm and had huge experience in technology. An IIT-Kanpur
graduate, he had a very smart way of approaching problems. Before I was put into the
daily job of the company, there were several points of guidance that were given to me.
Those specifically are:
Non-Technical Aspects:
1. Everyday Notes Diary: As the VP of the company, he had several
responsibilities and less time. Thus, for the few minutes he talked to us he
advised us to jot down whatever important points were discussed so that they
6 | P a g e
could be handy at any time later. Plus, a diary is important to note down the key
points of the day and the work that was done. Moreover, it is a respectful act
towards a senior as a notion that whatever he says is important and worth noting
down.
2. Verbal Communication: Due to shortage of time and to have a quality
communication, I was advised to keep the conversation articulate and sharp so
that we save our time. This was one every important aspect of my internship as I
eventually learnt to convey the whole message in a condensed form with the
actual meaning conveyed.
3. Ownership: Do the work with the same quality, responsibility and importance as
if it was yours. This was the aspect of ownership, which my mentor loved and
was happy to find this quality in me. I took the responsibility and ownership of
what I did.
4. Written Communication: Written Communication was yet another important
part of my internship. I was expected to communicate whenever necessary,
whenever stuck or whenever the status of a task was to be told. Mails were to be
replied within 1 minute delivery which would show our availability for the
company. Written communication is also very necessary when dealing with
clients.
5. Help where the company needs you: As a part of the company I was expected
to work anywhere my company needs me, be it anywhere, sales and marketing,
graphic designing or testing. I was taught not to step back where and whenever
the company needs despite the fact that I might not be adept in the field.
7 | P a g e
These were some important non-technical points that every company would
expect and which I learnt through this internship.
Technical Aspects:
1. Scalability of programs: Developing software is completely different from
the classroom programs. Developing software needs scalability in every
approach because softwares are generally bulky and they need to stand upon
a standard that would help to debug the code pretty easily.
For scalability in PHP we used the YII framework in PHP. Built upon the
design of model-view-controller architecture, this framework was the base of
our application.
2. Guidelines and Coding Standards: Every organization has its coding
standards that are to be followed. By following standards company prevents
a lot of hard work in software maintenance. Standards enhance software
readability.
3. Rigorous Testing: Any code made was to be rigorously tested so that it was
assured that the code would not collapse when moved to production server.
This ensured quality code and built confidence in me as a programmer.
8 | P a g e
4. 33% knowledge rule: Before hacking or coding anything new, I was
supposed to have 33% knowledge of the domain, so that I was not helpless
in my approach.
These were some important technical aspects of pre-project talks.
4. PRE-PROJECT TRAININGS
Software development was mainly in the field of web. So, before I could jump into the
working team of the company I was expected to brush up my basics and learn using new
tools which were an integral part of development and would be handy. Following are
the languages and tools I brushed up and learnt:
4.1 Html, Css, JavaScript
As a 3rd year student I was expected to have gone through these languages. Still, as a
part of their training, I was given regular trainings and assignments in the first week of
my internship. I completed the trainings on time and my assignments were well
approved from my mentor. The trainings were given from w3school.com and the
assignments were already compiled by my mentor.
A note on each of the above:
HTML:
HTML is a markup language for describing web documents (web pages). HTML stands
for Hyper Text Markup Language.Html is the basic for building up the model or the
content of the web page. Web development starts from html and its expertise.HTML5
which is the latest HTML markup with video and audio tags was given training on.
9 | P a g e
CSS:
Styling with html is clumsy and destroys readability. Moreover, styling should be different
component than the model. So, CSS came into picture. CSS is an integral part for styling
the webpage that was to be made. CSS3, the latest cascading style sheets was given training
on.
JavaScript:
As a scripting language which helps to make the webpage dynamic and interactive,
JavaScript training and assignments were given.
4.2 Selenium Test Tool
Selenium is a portable software testing framework for web applications. Selenium
provides a record/playback tool for authoring tests without learning a test scripting
language (Selenium IDE). It also provides a test domain-specific language (to write
tests in a number of popular programming languages, including Java, C#, Groovy, Perl,
PHP, Python and Ruby. The tests can then be run against most modern web browsers.
Selenium deploys on Windows, Linux, and Macintosh platforms. It is open-source
software, released under the Apache 2.0 license, and can be downloaded and used
without charge.
Selenium test tool IDE is downloaded as a web browser extension and is available for
multiple browsers. After the selenium IDE is setup and opened, project is run and the
whole run through is recorder by pressing the red button. Assertion is made and the
10 | P a g e
whole run through is downloaded as python script. Then python script is saved and then
can be later used for testing.
This testing tool was very useful for testing in long run ahead.
Figure 1
4.3 Apache Jmeter
One of the already deployed projects of Stratbeans was a learning management system
for a big data analytics company which was under regression testing. I was given the job
of performance testing of that particular project and analyzing what was causing the
server to be almost dead. For this I was told to take help of Apache Jmeter.
11 | P a g e
The Apache JMeter application is open source software, a 100% pure Java application
designed to load test functional behavior and measure performance. Apache JMeter may
be used to test performance both on static and dynamic resources (Web services
(SOAP/REST), Web dynamic languages - PHP, Java, ASP.NET, Files, etc. -, Java
Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a
heavy load on a server, group of servers, network or object to test its strength or to
analyze overall performance under different load types.
There are many protocols supported in Apache Jmeter and many different
configurations but I learnt the most commonly used HTTP request and response
protocol and pinged the specific url(s) for load testing. After that analytics were done
and reports were generated. I was expected to analyze the reports and deliver the
attribute table.
Apache Jmeter Console
Figure 2
12 | P a g e
Table representing the report generated by me using apache Jmeter.
Table 1
Figure 3
Above is a response time graph which I generated using Apache Jmeter.
13 | P a g e
4.4 CMS: Drupal
It was time to trash the old site of the company and build a new one. It was to be built
using a content management system and Drupal was chosen. There was a team of
interns employed for building up the new website and I was one of them. Training on
the same was given for a day and we were given practice modules to be finished the
same day.
There were two servers: a test server and a production server. Everything was first
checked and developed on test server and then after approval was moved onto the
production server.
Content Management System:
A content management system, or CMS, is a web application designed to make it easy
for non-technical users to add, edit and manage a website.
Not only do content management systems help website users with content editing, they
also take care of a lot of "behind the scenes" work such as:
 Automatically generate navigation elements
 Making content searchable and index able
 Keeping track of users, their permissions and security settings
Drupal:
14 | P a g e
Drupal is a free and open-source content-management framework written in PHP and
distributed under the GNU General Public License. It is used as a back-end framework
for at least 2.1% of all Web sites worldwide ranging from personal blogs to corporate,
political, and government sites. It is also used for knowledge management and
business collaboration.
Work Done:
After I had completed my assignments and learning I was put to designing the
homepage and various other webpages for the website. While the design had been
completed by the designing team, I with a senior had to implement the design to build
the homepage and other webpages.
A screenshot of the homepage of the company’s website.
Figure 4
15 | P a g e
Problem solving:
When I was hired as an intern, I was asked if I could be a problem solver for the
company. In a prompt reply I said yes, and it was time to show the worth of the
answer.
A parallax error occurred on the very homepage of the website, when my senior was
trying to apply a parallax effect. The error kept pending for 4 days, and at last came to
me. It took me one complete day to analyze the problem, but at the end I was able to
solve it. The image slider above the parallax was misconfigured.
Another problem which the company suffered was slow loading of the site.
Company’s competitors had websites with very less loading time and this was yet
another obstacle. At last I was employed to look into the average loading time of the
website and I was able to do it. The average load time had now jumped down from 47
seconds to 8.5 seconds. The site was again looked into and now had an optimum
average load time of 4.5 seconds.
A random screenshot of load time taken from chrome debugger.
Figure 5
Overall it was a great experience which taught me a lot. In this way, I was benefitting
the company while learning simultaneously. Such instances gave me a lot of
confidence.
16 | P a g e
4.5 Bootstrap
After CSS was learnt it was time to learn something that could scale styling. Bootstrap
came into picture. Bootstrap was a major styling tool in the main project i.e. sms based
query engine ahead.
Bootstrap is a powerful front-end framework for faster and easier web development. It
includes HTML and CSS based design templates for common user interface
components like Typography, Forms, Buttons, Tables, Navigations, Dropdowns, Alerts,
Modals, Tabs, Accordion, Carousel and many other as well as optional JavaScript
extensions.
Bootstrap also gives the ability to create responsive layout with much less efforts.
A form using bootstrap
Figure 6
17 | P a g e
4.6 Angular JS
Angular JS is the standard scripting framework in JavaScript which is used by the
company. I was given training on Angular JS and the coding standards in this language
were taught.
Angular JS (commonly referred to as "Angular") is an open-source web application
framework maintained by Google and by a community of individual developers and
corporations to address many of the challenges encountered in developing single-page
applications. It aims to simplify both the development and the testing of such
applications by providing a framework for client-side model–view–controller (MVC)
and model-view-view model (MVVM) architectures, along with components commonly
used in rich Internet applications.
The Angular JS library works by first reading the HTML page, which has embedded
into it additional custom tag attributes. Angular interprets those attributes as directives
to bind input or output parts of the page to a model that is represented by standard
JavaScript variables. The values of those JavaScript variables can be manually set
within the code, or retrieved from static or dynamic JSON resources.
Angular JS is a very widely used framework. It can be added to an HTML page with a
<script> tag. Angular JS extends HTML attributes with Directives, and binds data to
HTML with Expressions.
18 | P a g e
Figure 7
Angular JS with Yii Framework
4.7 Yii – Framework in PHP
This framework forms the nucleus of the application in the project – Sms Based Query
engine. PHP is preferred as server side scripting language but as the programs needed to
be scalable, a framework was needed. Stratbeans had been dealing in this framework for
a long time now and thus it was the best choice.
Before the internship even started I was given a book having documentation in Yii using
which I had to build an application and report. I was to be tested on what I had learnt,
which I passed. Thus, I already had a hand in Yii and I was ready to develop.
19 | P a g e
Model-view-controller (MVC Architecture)
Yii implements the model-view-controller (MVC) design pattern, which is widely
adopted in Web programming. MVC aims to separate business logic from user interface
considerations, so that developers can more easily change each part without affecting
the other. In MVC, the model represents the information (the data) and the business
rules; the view contains elements of the user interface such as text, form inputs; and the
controller manages the communication between the model and the view.
Besides implementing MVC, Yii also introduces a front-controller, called Application,
which encapsulates the execution context for the processing of a request. Application
collects some information about a user request and then dispatches it to an appropriate
controller for further handling.
20 | P a g e
Figure 8
MVC – Architecture Yii Framework
4.8 Mercurial
Development of software normally includes a big team and every member is assigned a
different module. Each member has his own machine and thus the updated code is
needed to be stored at a single place and it needs to be transferred at a single place to be
executed and further used.
This all was single handedly done using Mercurial revision repository. Mercurial is a
cross-platform, distributed revision control tool for software developers. It is mainly
implemented using the Python programming language, but includes a binary diff
implementation written in C. It is supported on MS Windows and Unix-like systems,
such as Mac OS X and Linux. Mercurial is primarily a command line program but
graphical user interface extensions are available. All of Mercurial's operations are
21 | P a g e
invoked as arguments to its driver program hg, a reference to the chemical symbol of
the element mercury.
Mercurial's major design goals include high performance and scalability, decentralized,
fully distributed collaborative development, robust handling of both plain text and
binary files, and advanced branching and merging capabilities, while remaining
conceptually simple. It includes an integrated web interface.
Mercurial also allows version control i.e. any one of the team members who has updated
the code in the main repository has made a different version of the software. Other
members have an option whether to update the code or not and this gives a really good
version control.
Mercurial was a life saver for it saved us from a lot of unnecessary hard work.
Figure 9
Mercury tool running screenshot
22 | P a g e
5. Main Project – Sms Based Query Engine
5.1 Problem Statement
Stratbeans has a very good relationship with a bank which wanted it to build an
application for its employees. As this bank had a lot of cards and further lots of
schemes related to it, their employees had a hard time searching for the right
card and the right scheme.
This was the problem statement. Their employees wanted an easy way in which
they could query about the scheme of the card through a sms, an application to
search through and give the right result and then reply back through an sms. The
searching and sms sending and receiving had to be fast enough to that reply was
received in quick time.
An agreement was fixed with client and only small changes in the future would
be acceptable.
5.2 Design Document
The production of the software had iterative enhancement plus waterfall
model as the software development lifecycle model (SDLC). A technical
design document and a database design document were made which were
centralized Google docs.
Technical Design Document:
This document articulately described the division of software into modules
and what tools, approach and methodology was to be used.
SEND
SMS
PROCESS
INFORMATION
GENERATE
REPLY
AS SMS
23 | P a g e
Below is a typical Use case wireframe:
1. use case ID
2. Description
3. Process Flow Diagram
4. UI Design
5. UI Components
6. Field Details
7. Field Validations
8. Business Rules
9. Database Design
a. Main Table:
b. Reference Tables:
c. Triggers:
d. Stored Procedures:
10. Service Components
11. MVC Design
a. Module :
b. Controller :
c. Model :
d. Views :
Database Design Document:
This document had the ER diagram and all the tables with their attributes. Any change
made in the database was to be reflected in this document. I made my contribution in
24 | P a g e
the ER Designing with a senior database designer. Tables were populated with the
necessary attributes. Database Design is as follows:
5.3 Building the database
As now we had the database built and the tables designed it was time to
build the database. RDBMS used was MySQL and the GUI used was
PHPMyadmin. I built the up the database and the database was successfully
approved by my mentor.
25 | P a g e
5.4 Functional Design
The stage was set; database built and now was the time to finalize the
software functional design for the whole software.
For converting the sms sent by the user into an Http request, help of Unicel
Server Service was taken. The requests were then redirected to our server as
per service. For this purpose a Queue API known as RabbitMQ was used.
This Queue helped us maintain First Come First Serve basis. The request
first received was processed first and replied to first. Then the message was
extracted from the request and pushed into the Python Script using the
Natural Language Processing Library (NLP). Stop words i.e. unnecessary
words were removed and the main words were then fed into the elastic
search. Elastic Search then used the words to index accordingly and find the
26 | P a g e
result. A score is then calculated and if greater than the thresh-hold is ideal
else fuzzy-logic is used to calculate the result.
5.5 Module Assignments
After all the designing was done, it was time now for the modules to be
assigned. Following were the modules assigned to me which I dedicatedly
completed on corresponding deadlines and proved to be a helping hand for
the company.
1. User Bulk Upload/Download:
With due faith in me, my mentor assigned me this module which further
took half a day to finalize the design. This functionality could help the
admin to upload 20K to 30K users at a time and run like a charm. Any
error, be it the smallest in the upload file which was in the CSV format
was caught and reported.
There were 2 parses:
Filter 1: Filtered and reported the errors related to some less important
details.
Filter 2: Filtered and reported the errors related to some very important
details. Any error in uploading at this stage could cause disintegration of
data in the database. This was carefully handled.
After the data was filtered, it was now pure enough to be inserted into the
database. This was the final step.
27 | P a g e
A screenshot of user bulk Upload
Figure 10
2. Indexer Bulk Upload/Download:
This module was necessary for the elastic search. As the elastic search
used indexes to find the desired result, this module helped update the
existing indexes to new ones.
3. Admin Reports:
Admin Reports were necessary for the admin to know how the
system is working and do the data analytics to improve strategy.
a. Location Wise Reports:
28 | P a g e
Location Wise Reports helped the admin to know which area is
more frequent in asking queries and where the hotspot location
lies. This helped them further analyze which type of query was
being asked from which location.
The locations as were divided into zones, states, city and area
thus there were 4 different reports made.
A screenshot of location wise report
Figure 11
b. Time Wise Reports:
This was the time wise report which the let the admin know at
what time of the day was the software more active. This let us
know which was the perfect time to make changes to the server.
29 | P a g e
Figure 12
c. Query Wise Reports:
What types of queries were being asked was specified by this
report.
30 | P a g e
d. Delivered/Undelivered Reports:
The messages which contained the answer to the query were sent
by our program to the unicel server. Whether the sms reached or
not is shown by this report. Unicel server sends the code 0 or 1
acc. To which sms was delivered or not which helped make this
report.
Figure 13
4. Status of the scripts:
There were python scripts running for the elastic search and RabbitMQ.
Whether they were up or running was a question for which a status bar
was developed. I successfully build this status bar using the ping concept
and to know whether the processes were running or not.
RX- receiver.py
TX- transmitter.py
ES- elastic search server
RMQ- RabbitMQ server
IDX- Elastic search indexed or not
31 | P a g e
5.6 Exclusive Tools Used
a) Elastic Search:
Indexing
ElasticSearch is able to achieve fast search responses because, instead of
searching the text directly, it searches an index instead.
This is like retrieving pages in a book related to a keyword by scanning
the index at the back of a book, as opposed to searching every word of
every page of the book.
This type of index is called an inverted index, because it inverts a page-
centric data structure (page->words) to a keyword-centric data structure
(word->pages).
Elastic Search uses Apache Lucene to create and manage this inverted
index.
How Elastic Search represents data
In ElasticSearch, a Document is the unit of search and index.
An index consists of one or more Documents, and a Document
consists of one or more Fields.
In database terminology, a Document corresponds to a table row, and a
Field corresponds to a table column.
Schema
ElasticSearch is schema-free.
Whilst you are not required to specify a schema before indexing
documents, it is necessary to add mapping declarations if you require
anything but the most basic fields and operations.
32 | P a g e
This is no different from specifying a schema!
The schema declares:
o what fields there are
o which field should be used as the unique/primary key
o which fields are required
o how to index and search each field
In Elastic Search, an index may store documents of different "mapping
types". You can associate multiple mapping definitions for each mapping
type. A mapping type is a way of separating the documents in an index
into logical groups.
To create a mapping, you will need the Put Mapping API, or you can add
multiple mappings when you create an index
b) RabbitMQ:
Messaging enables software applications to connect and scale.
Applications can connect to each other, as components of a larger
application, or to user devices and data. Messaging is asynchronous,
decoupling applications by separating sending and receiving data.
You may be thinking of data delivery, non-blocking operations or
push notifications. Or you want to use publish / subscribe,
asynchronous processing, or work queues. All these are patterns, and
they form part of messaging.
RabbitMQ is a messaging broker - an intermediary for messaging. It
gives your applications a common platform to send and receive
messages, and your messages a safe place to live until received.
33 | P a g e
Feature Highlights
Reliability
RabbitMQ offers a variety of features to let you trade off performance
with reliability, including persistence, delivery acknowledgements,
publisher confirms, and high availability.
Flexible Routing
Messages are routed through exchanges before arriving at queues.
RabbitMQ features several built-in exchange types for typical routing
logic. For more complex routing you can bind exchanges
together or even write your own exchange type as a plugin.
Clustering
Several RabbitMQ servers on a local network can
be clustered together, forming a single logical broker.
Federation
For servers that need to be more loosely and unreliably connected
than clustering allows, RabbitMQ offers a federation model.
Highly Available Queues
Queues can be mirrored across several machines in a cluster,
ensuring that even in the event of hardware failure your messages
are safe.
Multi-protocol
RabbitMQ supports messaging over a variety of messaging protocols.
Many Clients
There are RabbitMQ clients for almost any language you can think of.
Management UI
RabbitMQ ships with an easy-to use management UI that allows you
to monitor and control every aspect of your message broker.
Tracing
If your messaging system is misbehaving, RabbitMQ
offers tracing support to let you find out what's going on.
34 | P a g e
6. ANALYSIS
An internship undoubtedly is the most important aspect of any engineering. The type of
experience I have gained could not have been possible in the classroom. This internship
has helped me be confident. I also learnt how to learn and develop in a team. My team
consisted of 12 members out of whom 4 were experienced and 8 including me were
fresher.
Overall it was a wonderful experience and was a golden opportunity to analyze my
strengths and weaknesses. My strengths are keeping up with the challenges and
finishing work on time. I loved my work and thus I was not hesitant to give as much as
time the company needed from me. I worked around 12-13 hours for the company
diligently and efficiently which I consider as my strength. I was sharp in conversation
and there was no instance when my mentor couldn’t get and which he too appreciated.
I would like to improve on my written communication .Plus; I used to get into too much
detail into the topic and unnecessarily deviate, which I would like to improve upon. I
also learned and improved myself over the point that the job given is much more
important than my own learning.
6. CONCLUSION
This internship has been the most rewarding experience in my life. Not only have I
learned corporate ethics but time-management too. Time management and organization
of the day were very important. Summer internship at a good place is an integral part of
35 | P a g e
any educational degree. Having gained an experience of 8 weeks, I am confident
enough that I will now easily fit in the corporate world.
BIBLIOGRAPHY
1. http://www.johnpapa.net/angular-style-guide/: A beautiful article on angular js.
2. http://www.elasticsearchtutorial.com/: Elastic Search tutorial.
3. http://joelabrahamsson.com/elasticsearch-101/ : Elastic Search article.
4. http://www.yiiframework.com/doc/guide/: Definitive guide to Yii.
5. https://www.drupal.org/ :Drupal’s official site.
36 | P a g e
Project Daily Task
Date Day Work
19th may,2015 Monday Linux Installation and LAMP setup
20th may,2015 Tuesday Linux Commands Tutorial
21st may,2015 Wednesday HTML Training and Assignment
22nd may,2015 Thursday CSS Training and Tutorial
23rd may,2015 Friday free
26th may,2015 Monday JavaScript Tutorial
27th may,2015 Tuesday Training in Apache Jmeter
28th may,2015 - 30th may,2015 Wednesday-Friday Making reports in Apache Jmeter
2nd june,2015 Monday Angular Js tutorial and Assignments
3rd june,2015-30june,2015 Tuesday Working on stratbeans’s website on
Drupal, plus, training and learning.
1th july,2015-30july-2015 Wednesday Query Based search Engine
37 | P a g e

More Related Content

What's hot

Digital marketing project
Digital marketing projectDigital marketing project
Digital marketing projectDharmik Bhavsar
 
Summer internship report
Summer internship reportSummer internship report
Summer internship reportKrishna Bhawsar
 
Internship Report
Internship Report Internship Report
Internship Report RK Pandit
 
AbleMoJah's IT Report
AbleMoJah's IT ReportAbleMoJah's IT Report
AbleMoJah's IT ReportAble MoJah
 
Performance appraisal (MBA summer training project) (Report File)
Performance appraisal (MBA summer training project) (Report File)Performance appraisal (MBA summer training project) (Report File)
Performance appraisal (MBA summer training project) (Report File)JASTINDER PAL SINGH
 
MMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFRED
MMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFREDMMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFRED
MMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFREDJaayneWilliam
 
Report Internship
Report InternshipReport Internship
Report Internshipabisek123
 
MBA Project Report On HR (1).pdf
MBA Project Report On HR (1).pdfMBA Project Report On HR (1).pdf
MBA Project Report On HR (1).pdfMayankJain615
 
Digital Marketing - Summer Internship report 2019
Digital Marketing - Summer Internship report 2019Digital Marketing - Summer Internship report 2019
Digital Marketing - Summer Internship report 2019SadiahAhmad
 
An internship report on a Construction Company
An internship report on a Construction CompanyAn internship report on a Construction Company
An internship report on a Construction CompanyOsama Yousaf
 
Ashraf's Internship Report SBL Full
Ashraf's Internship Report SBL FullAshraf's Internship Report SBL Full
Ashraf's Internship Report SBL FullAshraf Mohammad
 
Summer Internship Project report- Customer Satisfaction Analysis: Reliance S...
Summer Internship Project report-  Customer Satisfaction Analysis: Reliance S...Summer Internship Project report-  Customer Satisfaction Analysis: Reliance S...
Summer Internship Project report- Customer Satisfaction Analysis: Reliance S...Shubham Dasgupta
 
Internship Report
Internship Report Internship Report
Internship Report zahurul88
 
Summer Internship Project Report on Digital Marketing for INTERALLAINCE WER...
 Summer Internship Project Report on  Digital Marketing for INTERALLAINCE WER... Summer Internship Project Report on  Digital Marketing for INTERALLAINCE WER...
Summer Internship Project Report on Digital Marketing for INTERALLAINCE WER...anonymous
 
Final Presentation Of Internship
Final Presentation Of InternshipFinal Presentation Of Internship
Final Presentation Of Internshipbecke718
 
Internship Report
Internship ReportInternship Report
Internship Reportzahurul88
 

What's hot (20)

Digital marketing project
Digital marketing projectDigital marketing project
Digital marketing project
 
Summer internship report
Summer internship reportSummer internship report
Summer internship report
 
INTERNSHIP REPORT
INTERNSHIP REPORTINTERNSHIP REPORT
INTERNSHIP REPORT
 
Internship Report
Internship Report Internship Report
Internship Report
 
AbleMoJah's IT Report
AbleMoJah's IT ReportAbleMoJah's IT Report
AbleMoJah's IT Report
 
Performance appraisal (MBA summer training project) (Report File)
Performance appraisal (MBA summer training project) (Report File)Performance appraisal (MBA summer training project) (Report File)
Performance appraisal (MBA summer training project) (Report File)
 
MMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFRED
MMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFREDMMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFRED
MMU INTERNSHIP REPORT JAAYNE JEEVITA A / P RONALD ALFRED
 
Report Internship
Report InternshipReport Internship
Report Internship
 
MBA Project Report On HR (1).pdf
MBA Project Report On HR (1).pdfMBA Project Report On HR (1).pdf
MBA Project Report On HR (1).pdf
 
Digital Marketing - Summer Internship report 2019
Digital Marketing - Summer Internship report 2019Digital Marketing - Summer Internship report 2019
Digital Marketing - Summer Internship report 2019
 
Software Engineering Internship
Software Engineering InternshipSoftware Engineering Internship
Software Engineering Internship
 
An internship report on a Construction Company
An internship report on a Construction CompanyAn internship report on a Construction Company
An internship report on a Construction Company
 
internship Presentation
internship Presentationinternship Presentation
internship Presentation
 
Ashraf's Internship Report SBL Full
Ashraf's Internship Report SBL FullAshraf's Internship Report SBL Full
Ashraf's Internship Report SBL Full
 
Summer Internship Project report- Customer Satisfaction Analysis: Reliance S...
Summer Internship Project report-  Customer Satisfaction Analysis: Reliance S...Summer Internship Project report-  Customer Satisfaction Analysis: Reliance S...
Summer Internship Project report- Customer Satisfaction Analysis: Reliance S...
 
Internship Report
Internship Report Internship Report
Internship Report
 
Summer Internship Project Report on Digital Marketing for INTERALLAINCE WER...
 Summer Internship Project Report on  Digital Marketing for INTERALLAINCE WER... Summer Internship Project Report on  Digital Marketing for INTERALLAINCE WER...
Summer Internship Project Report on Digital Marketing for INTERALLAINCE WER...
 
Final Presentation Of Internship
Final Presentation Of InternshipFinal Presentation Of Internship
Final Presentation Of Internship
 
My report
My reportMy report
My report
 
Internship Report
Internship ReportInternship Report
Internship Report
 

Similar to Summer internship report

What are the latest trends and learning for Software Testers.pdf
What are the latest trends and learning for Software Testers.pdfWhat are the latest trends and learning for Software Testers.pdf
What are the latest trends and learning for Software Testers.pdfAnanthReddy38
 
Developers Nepal Meetup #4 Report
Developers Nepal Meetup #4 ReportDevelopers Nepal Meetup #4 Report
Developers Nepal Meetup #4 ReportPunit Jajodia
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonTharindu Weerasinghe
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developerjeetendra mandal
 
Software Testing & QA
Software Testing & QA Software Testing & QA
Software Testing & QA Careervira
 
Top 5 Software Testing Skills For Testers
Top 5 Software Testing Skills For TestersTop 5 Software Testing Skills For Testers
Top 5 Software Testing Skills For Testers99tests
 
Single Point Continuous Flo1
Single Point Continuous Flo1Single Point Continuous Flo1
Single Point Continuous Flo1Charles Cooper
 
How to outsource Scrum projects guide
How to outsource Scrum projects   guideHow to outsource Scrum projects   guide
How to outsource Scrum projects guideLeszek Leo Baz
 
How to outsource Scrum projects - a guide
How to outsource Scrum projects - a guideHow to outsource Scrum projects - a guide
How to outsource Scrum projects - a guideXSolve
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxADDY50
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
James Sullivan CV 2015
James Sullivan CV 2015James Sullivan CV 2015
James Sullivan CV 2015James Sullivan
 

Similar to Summer internship report (20)

What are the latest trends and learning for Software Testers.pdf
What are the latest trends and learning for Software Testers.pdfWhat are the latest trends and learning for Software Testers.pdf
What are the latest trends and learning for Software Testers.pdf
 
Developers Nepal Meetup #4 Report
Developers Nepal Meetup #4 ReportDevelopers Nepal Meetup #4 Report
Developers Nepal Meetup #4 Report
 
Parinaz Doomasia_CV
Parinaz Doomasia_CVParinaz Doomasia_CV
Parinaz Doomasia_CV
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
 
Why agile?
Why agile?Why agile?
Why agile?
 
Software Testing & QA
Software Testing & QA Software Testing & QA
Software Testing & QA
 
Top 5 Software Testing Skills For Testers
Top 5 Software Testing Skills For TestersTop 5 Software Testing Skills For Testers
Top 5 Software Testing Skills For Testers
 
Consulting
ConsultingConsulting
Consulting
 
Karthik.S_Resume_Exp 4.11 yrs
Karthik.S_Resume_Exp 4.11 yrsKarthik.S_Resume_Exp 4.11 yrs
Karthik.S_Resume_Exp 4.11 yrs
 
Single Point Continuous Flo1
Single Point Continuous Flo1Single Point Continuous Flo1
Single Point Continuous Flo1
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
How to outsource Scrum projects guide
How to outsource Scrum projects   guideHow to outsource Scrum projects   guide
How to outsource Scrum projects guide
 
How to outsource Scrum projects - a guide
How to outsource Scrum projects - a guideHow to outsource Scrum projects - a guide
How to outsource Scrum projects - a guide
 
Introducing techsharp
Introducing techsharpIntroducing techsharp
Introducing techsharp
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docx
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
James Sullivan CV 2015
James Sullivan CV 2015James Sullivan CV 2015
James Sullivan CV 2015
 

Recently uploaded

Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 

Recently uploaded (20)

Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 

Summer internship report

  • 1. 1 | P a g e Summer Internship Report Sms Based Search Engine Mohit Kalra 12CSU066 20 August 2015
  • 2. 2 | P a g e Table of Contents 1. Abstract ……………………………………………………….. 5 2. Introduction …………………………………………………... 6 3. Pre-Project Talks ...…………………………………………… 6 4. Pre Project Trainings ………………………………………… 9 4.1 Html, Css, JavaScript …………………………………......... 9 4.2 Selenium Test Tool ……………………………………....... 10 4.3 Apache Jmeter....................................................................... 11 4.4 CMS: Drupal and Joomla …………………………………..14 4.5 Bootstrap ……………………………………………….......17 4.6 Angular JS ………………………………………………….18 4.7 Yii …………………………………………………………..19 4.8 Mercurial …………………………………………………...21 5. Main Project …………………………………………………..23 5.1 Problem Statement …………………………………………23 5.2 Design Document ………………………………………….23 5.3 Use Cases …………………………………………………..25 5.4 Building the database............................................................26 5.5 Module Assignments ……………………………………….27 5.6 Exclusive Tools Used …………………………………........31 6. Analysis ………………………………………………………...35 7. Conclusion ……………………………………………………..35
  • 3. 3 | P a g e List of Figures 1. Selenium Tool ……………………………………………………….. 11 2. Apache Jmeter ………………………………………………….........12 3. Response Time Graph ...……………………………………………. 13 4. Drupal homepage …………………………………………................ 15 5. Load Time .............................................................................................16 6. Bootstrap............................................................................................... 17 7. Angular JS .,...........................................................................................19 8. MVC-YII ...............................................................................................21 9. Mercury .................................................................................................22 10. -14 Admin Reports ...............................................................................28
  • 4. 4 | P a g e Abstract The opportunity to learn and work in corporate made an impact on my imagination and problem solving, shifted my perspective, and helped me thoroughly see the working of a corporate company. I was fortunate enough to have got an internship at Stratbeans Consulting Private Limited in the department of software development and testing. Stratbeans is situated in sector 56, Gurgaon. Stratbeans is mainly divided into 3 departments - graphics designing, sales and marketing, software development and testing. An internship at this place helped me bridge the gap of classroom to corporate and helped me develop an understanding of how a company works through the challenges to finally deliver to the clients. I came to know and learn how important verbal communication and written communication are, as a part of everyday life in a corporate company. Scalability of programs to build a product, responsibility of the work assigned, ownership of a given work, getting through the challenges as a team were the key non – technical aspects I learned. Content management system and MVC design architecture were the main technical aspects I learned. My goals were to contribute to my company in every way I could so that there is a mutual benefit and I was able to achieve my goal with completing on time, every job that was assigned.
  • 5. 5 | P a g e 1. INTRODUCTION Stratbeans Consulting Private Limited was setup in the year 2008 and due to its satisfactory services now has 76 happy clients with several big names in it. I had an 8 week internship from May to July. Stratbeans mainly deals in learning managements systems and graphic designing with the core of the company held in software development. It was a great learning experience ranging from software development to software testing and using content management systems to building up the database. The various aspects which were some time ago topics in exam were now being implemented and used. I see internship as an integral part of my learning endeavor which helped me relate and told how to use, what was learnt. Along with it you develop a sense of approaching problems and then solve them efficiently. 2. PRE-PROJECT TALKS It was encouraging and fortunate to have known that my mentor was the Vice President of technology in the firm and had huge experience in technology. An IIT-Kanpur graduate, he had a very smart way of approaching problems. Before I was put into the daily job of the company, there were several points of guidance that were given to me. Those specifically are: Non-Technical Aspects: 1. Everyday Notes Diary: As the VP of the company, he had several responsibilities and less time. Thus, for the few minutes he talked to us he advised us to jot down whatever important points were discussed so that they
  • 6. 6 | P a g e could be handy at any time later. Plus, a diary is important to note down the key points of the day and the work that was done. Moreover, it is a respectful act towards a senior as a notion that whatever he says is important and worth noting down. 2. Verbal Communication: Due to shortage of time and to have a quality communication, I was advised to keep the conversation articulate and sharp so that we save our time. This was one every important aspect of my internship as I eventually learnt to convey the whole message in a condensed form with the actual meaning conveyed. 3. Ownership: Do the work with the same quality, responsibility and importance as if it was yours. This was the aspect of ownership, which my mentor loved and was happy to find this quality in me. I took the responsibility and ownership of what I did. 4. Written Communication: Written Communication was yet another important part of my internship. I was expected to communicate whenever necessary, whenever stuck or whenever the status of a task was to be told. Mails were to be replied within 1 minute delivery which would show our availability for the company. Written communication is also very necessary when dealing with clients. 5. Help where the company needs you: As a part of the company I was expected to work anywhere my company needs me, be it anywhere, sales and marketing, graphic designing or testing. I was taught not to step back where and whenever the company needs despite the fact that I might not be adept in the field.
  • 7. 7 | P a g e These were some important non-technical points that every company would expect and which I learnt through this internship. Technical Aspects: 1. Scalability of programs: Developing software is completely different from the classroom programs. Developing software needs scalability in every approach because softwares are generally bulky and they need to stand upon a standard that would help to debug the code pretty easily. For scalability in PHP we used the YII framework in PHP. Built upon the design of model-view-controller architecture, this framework was the base of our application. 2. Guidelines and Coding Standards: Every organization has its coding standards that are to be followed. By following standards company prevents a lot of hard work in software maintenance. Standards enhance software readability. 3. Rigorous Testing: Any code made was to be rigorously tested so that it was assured that the code would not collapse when moved to production server. This ensured quality code and built confidence in me as a programmer.
  • 8. 8 | P a g e 4. 33% knowledge rule: Before hacking or coding anything new, I was supposed to have 33% knowledge of the domain, so that I was not helpless in my approach. These were some important technical aspects of pre-project talks. 4. PRE-PROJECT TRAININGS Software development was mainly in the field of web. So, before I could jump into the working team of the company I was expected to brush up my basics and learn using new tools which were an integral part of development and would be handy. Following are the languages and tools I brushed up and learnt: 4.1 Html, Css, JavaScript As a 3rd year student I was expected to have gone through these languages. Still, as a part of their training, I was given regular trainings and assignments in the first week of my internship. I completed the trainings on time and my assignments were well approved from my mentor. The trainings were given from w3school.com and the assignments were already compiled by my mentor. A note on each of the above: HTML: HTML is a markup language for describing web documents (web pages). HTML stands for Hyper Text Markup Language.Html is the basic for building up the model or the content of the web page. Web development starts from html and its expertise.HTML5 which is the latest HTML markup with video and audio tags was given training on.
  • 9. 9 | P a g e CSS: Styling with html is clumsy and destroys readability. Moreover, styling should be different component than the model. So, CSS came into picture. CSS is an integral part for styling the webpage that was to be made. CSS3, the latest cascading style sheets was given training on. JavaScript: As a scripting language which helps to make the webpage dynamic and interactive, JavaScript training and assignments were given. 4.2 Selenium Test Tool Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language (Selenium IDE). It also provides a test domain-specific language (to write tests in a number of popular programming languages, including Java, C#, Groovy, Perl, PHP, Python and Ruby. The tests can then be run against most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms. It is open-source software, released under the Apache 2.0 license, and can be downloaded and used without charge. Selenium test tool IDE is downloaded as a web browser extension and is available for multiple browsers. After the selenium IDE is setup and opened, project is run and the whole run through is recorder by pressing the red button. Assertion is made and the
  • 10. 10 | P a g e whole run through is downloaded as python script. Then python script is saved and then can be later used for testing. This testing tool was very useful for testing in long run ahead. Figure 1 4.3 Apache Jmeter One of the already deployed projects of Stratbeans was a learning management system for a big data analytics company which was under regression testing. I was given the job of performance testing of that particular project and analyzing what was causing the server to be almost dead. For this I was told to take help of Apache Jmeter.
  • 11. 11 | P a g e The Apache JMeter application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. Apache JMeter may be used to test performance both on static and dynamic resources (Web services (SOAP/REST), Web dynamic languages - PHP, Java, ASP.NET, Files, etc. -, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types. There are many protocols supported in Apache Jmeter and many different configurations but I learnt the most commonly used HTTP request and response protocol and pinged the specific url(s) for load testing. After that analytics were done and reports were generated. I was expected to analyze the reports and deliver the attribute table. Apache Jmeter Console Figure 2
  • 12. 12 | P a g e Table representing the report generated by me using apache Jmeter. Table 1 Figure 3 Above is a response time graph which I generated using Apache Jmeter.
  • 13. 13 | P a g e 4.4 CMS: Drupal It was time to trash the old site of the company and build a new one. It was to be built using a content management system and Drupal was chosen. There was a team of interns employed for building up the new website and I was one of them. Training on the same was given for a day and we were given practice modules to be finished the same day. There were two servers: a test server and a production server. Everything was first checked and developed on test server and then after approval was moved onto the production server. Content Management System: A content management system, or CMS, is a web application designed to make it easy for non-technical users to add, edit and manage a website. Not only do content management systems help website users with content editing, they also take care of a lot of "behind the scenes" work such as:  Automatically generate navigation elements  Making content searchable and index able  Keeping track of users, their permissions and security settings Drupal:
  • 14. 14 | P a g e Drupal is a free and open-source content-management framework written in PHP and distributed under the GNU General Public License. It is used as a back-end framework for at least 2.1% of all Web sites worldwide ranging from personal blogs to corporate, political, and government sites. It is also used for knowledge management and business collaboration. Work Done: After I had completed my assignments and learning I was put to designing the homepage and various other webpages for the website. While the design had been completed by the designing team, I with a senior had to implement the design to build the homepage and other webpages. A screenshot of the homepage of the company’s website. Figure 4
  • 15. 15 | P a g e Problem solving: When I was hired as an intern, I was asked if I could be a problem solver for the company. In a prompt reply I said yes, and it was time to show the worth of the answer. A parallax error occurred on the very homepage of the website, when my senior was trying to apply a parallax effect. The error kept pending for 4 days, and at last came to me. It took me one complete day to analyze the problem, but at the end I was able to solve it. The image slider above the parallax was misconfigured. Another problem which the company suffered was slow loading of the site. Company’s competitors had websites with very less loading time and this was yet another obstacle. At last I was employed to look into the average loading time of the website and I was able to do it. The average load time had now jumped down from 47 seconds to 8.5 seconds. The site was again looked into and now had an optimum average load time of 4.5 seconds. A random screenshot of load time taken from chrome debugger. Figure 5 Overall it was a great experience which taught me a lot. In this way, I was benefitting the company while learning simultaneously. Such instances gave me a lot of confidence.
  • 16. 16 | P a g e 4.5 Bootstrap After CSS was learnt it was time to learn something that could scale styling. Bootstrap came into picture. Bootstrap was a major styling tool in the main project i.e. sms based query engine ahead. Bootstrap is a powerful front-end framework for faster and easier web development. It includes HTML and CSS based design templates for common user interface components like Typography, Forms, Buttons, Tables, Navigations, Dropdowns, Alerts, Modals, Tabs, Accordion, Carousel and many other as well as optional JavaScript extensions. Bootstrap also gives the ability to create responsive layout with much less efforts. A form using bootstrap Figure 6
  • 17. 17 | P a g e 4.6 Angular JS Angular JS is the standard scripting framework in JavaScript which is used by the company. I was given training on Angular JS and the coding standards in this language were taught. Angular JS (commonly referred to as "Angular") is an open-source web application framework maintained by Google and by a community of individual developers and corporations to address many of the challenges encountered in developing single-page applications. It aims to simplify both the development and the testing of such applications by providing a framework for client-side model–view–controller (MVC) and model-view-view model (MVVM) architectures, along with components commonly used in rich Internet applications. The Angular JS library works by first reading the HTML page, which has embedded into it additional custom tag attributes. Angular interprets those attributes as directives to bind input or output parts of the page to a model that is represented by standard JavaScript variables. The values of those JavaScript variables can be manually set within the code, or retrieved from static or dynamic JSON resources. Angular JS is a very widely used framework. It can be added to an HTML page with a <script> tag. Angular JS extends HTML attributes with Directives, and binds data to HTML with Expressions.
  • 18. 18 | P a g e Figure 7 Angular JS with Yii Framework 4.7 Yii – Framework in PHP This framework forms the nucleus of the application in the project – Sms Based Query engine. PHP is preferred as server side scripting language but as the programs needed to be scalable, a framework was needed. Stratbeans had been dealing in this framework for a long time now and thus it was the best choice. Before the internship even started I was given a book having documentation in Yii using which I had to build an application and report. I was to be tested on what I had learnt, which I passed. Thus, I already had a hand in Yii and I was ready to develop.
  • 19. 19 | P a g e Model-view-controller (MVC Architecture) Yii implements the model-view-controller (MVC) design pattern, which is widely adopted in Web programming. MVC aims to separate business logic from user interface considerations, so that developers can more easily change each part without affecting the other. In MVC, the model represents the information (the data) and the business rules; the view contains elements of the user interface such as text, form inputs; and the controller manages the communication between the model and the view. Besides implementing MVC, Yii also introduces a front-controller, called Application, which encapsulates the execution context for the processing of a request. Application collects some information about a user request and then dispatches it to an appropriate controller for further handling.
  • 20. 20 | P a g e Figure 8 MVC – Architecture Yii Framework 4.8 Mercurial Development of software normally includes a big team and every member is assigned a different module. Each member has his own machine and thus the updated code is needed to be stored at a single place and it needs to be transferred at a single place to be executed and further used. This all was single handedly done using Mercurial revision repository. Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on MS Windows and Unix-like systems, such as Mac OS X and Linux. Mercurial is primarily a command line program but graphical user interface extensions are available. All of Mercurial's operations are
  • 21. 21 | P a g e invoked as arguments to its driver program hg, a reference to the chemical symbol of the element mercury. Mercurial's major design goals include high performance and scalability, decentralized, fully distributed collaborative development, robust handling of both plain text and binary files, and advanced branching and merging capabilities, while remaining conceptually simple. It includes an integrated web interface. Mercurial also allows version control i.e. any one of the team members who has updated the code in the main repository has made a different version of the software. Other members have an option whether to update the code or not and this gives a really good version control. Mercurial was a life saver for it saved us from a lot of unnecessary hard work. Figure 9 Mercury tool running screenshot
  • 22. 22 | P a g e 5. Main Project – Sms Based Query Engine 5.1 Problem Statement Stratbeans has a very good relationship with a bank which wanted it to build an application for its employees. As this bank had a lot of cards and further lots of schemes related to it, their employees had a hard time searching for the right card and the right scheme. This was the problem statement. Their employees wanted an easy way in which they could query about the scheme of the card through a sms, an application to search through and give the right result and then reply back through an sms. The searching and sms sending and receiving had to be fast enough to that reply was received in quick time. An agreement was fixed with client and only small changes in the future would be acceptable. 5.2 Design Document The production of the software had iterative enhancement plus waterfall model as the software development lifecycle model (SDLC). A technical design document and a database design document were made which were centralized Google docs. Technical Design Document: This document articulately described the division of software into modules and what tools, approach and methodology was to be used. SEND SMS PROCESS INFORMATION GENERATE REPLY AS SMS
  • 23. 23 | P a g e Below is a typical Use case wireframe: 1. use case ID 2. Description 3. Process Flow Diagram 4. UI Design 5. UI Components 6. Field Details 7. Field Validations 8. Business Rules 9. Database Design a. Main Table: b. Reference Tables: c. Triggers: d. Stored Procedures: 10. Service Components 11. MVC Design a. Module : b. Controller : c. Model : d. Views : Database Design Document: This document had the ER diagram and all the tables with their attributes. Any change made in the database was to be reflected in this document. I made my contribution in
  • 24. 24 | P a g e the ER Designing with a senior database designer. Tables were populated with the necessary attributes. Database Design is as follows: 5.3 Building the database As now we had the database built and the tables designed it was time to build the database. RDBMS used was MySQL and the GUI used was PHPMyadmin. I built the up the database and the database was successfully approved by my mentor.
  • 25. 25 | P a g e 5.4 Functional Design The stage was set; database built and now was the time to finalize the software functional design for the whole software. For converting the sms sent by the user into an Http request, help of Unicel Server Service was taken. The requests were then redirected to our server as per service. For this purpose a Queue API known as RabbitMQ was used. This Queue helped us maintain First Come First Serve basis. The request first received was processed first and replied to first. Then the message was extracted from the request and pushed into the Python Script using the Natural Language Processing Library (NLP). Stop words i.e. unnecessary words were removed and the main words were then fed into the elastic search. Elastic Search then used the words to index accordingly and find the
  • 26. 26 | P a g e result. A score is then calculated and if greater than the thresh-hold is ideal else fuzzy-logic is used to calculate the result. 5.5 Module Assignments After all the designing was done, it was time now for the modules to be assigned. Following were the modules assigned to me which I dedicatedly completed on corresponding deadlines and proved to be a helping hand for the company. 1. User Bulk Upload/Download: With due faith in me, my mentor assigned me this module which further took half a day to finalize the design. This functionality could help the admin to upload 20K to 30K users at a time and run like a charm. Any error, be it the smallest in the upload file which was in the CSV format was caught and reported. There were 2 parses: Filter 1: Filtered and reported the errors related to some less important details. Filter 2: Filtered and reported the errors related to some very important details. Any error in uploading at this stage could cause disintegration of data in the database. This was carefully handled. After the data was filtered, it was now pure enough to be inserted into the database. This was the final step.
  • 27. 27 | P a g e A screenshot of user bulk Upload Figure 10 2. Indexer Bulk Upload/Download: This module was necessary for the elastic search. As the elastic search used indexes to find the desired result, this module helped update the existing indexes to new ones. 3. Admin Reports: Admin Reports were necessary for the admin to know how the system is working and do the data analytics to improve strategy. a. Location Wise Reports:
  • 28. 28 | P a g e Location Wise Reports helped the admin to know which area is more frequent in asking queries and where the hotspot location lies. This helped them further analyze which type of query was being asked from which location. The locations as were divided into zones, states, city and area thus there were 4 different reports made. A screenshot of location wise report Figure 11 b. Time Wise Reports: This was the time wise report which the let the admin know at what time of the day was the software more active. This let us know which was the perfect time to make changes to the server.
  • 29. 29 | P a g e Figure 12 c. Query Wise Reports: What types of queries were being asked was specified by this report.
  • 30. 30 | P a g e d. Delivered/Undelivered Reports: The messages which contained the answer to the query were sent by our program to the unicel server. Whether the sms reached or not is shown by this report. Unicel server sends the code 0 or 1 acc. To which sms was delivered or not which helped make this report. Figure 13 4. Status of the scripts: There were python scripts running for the elastic search and RabbitMQ. Whether they were up or running was a question for which a status bar was developed. I successfully build this status bar using the ping concept and to know whether the processes were running or not. RX- receiver.py TX- transmitter.py ES- elastic search server RMQ- RabbitMQ server IDX- Elastic search indexed or not
  • 31. 31 | P a g e 5.6 Exclusive Tools Used a) Elastic Search: Indexing ElasticSearch is able to achieve fast search responses because, instead of searching the text directly, it searches an index instead. This is like retrieving pages in a book related to a keyword by scanning the index at the back of a book, as opposed to searching every word of every page of the book. This type of index is called an inverted index, because it inverts a page- centric data structure (page->words) to a keyword-centric data structure (word->pages). Elastic Search uses Apache Lucene to create and manage this inverted index. How Elastic Search represents data In ElasticSearch, a Document is the unit of search and index. An index consists of one or more Documents, and a Document consists of one or more Fields. In database terminology, a Document corresponds to a table row, and a Field corresponds to a table column. Schema ElasticSearch is schema-free. Whilst you are not required to specify a schema before indexing documents, it is necessary to add mapping declarations if you require anything but the most basic fields and operations.
  • 32. 32 | P a g e This is no different from specifying a schema! The schema declares: o what fields there are o which field should be used as the unique/primary key o which fields are required o how to index and search each field In Elastic Search, an index may store documents of different "mapping types". You can associate multiple mapping definitions for each mapping type. A mapping type is a way of separating the documents in an index into logical groups. To create a mapping, you will need the Put Mapping API, or you can add multiple mappings when you create an index b) RabbitMQ: Messaging enables software applications to connect and scale. Applications can connect to each other, as components of a larger application, or to user devices and data. Messaging is asynchronous, decoupling applications by separating sending and receiving data. You may be thinking of data delivery, non-blocking operations or push notifications. Or you want to use publish / subscribe, asynchronous processing, or work queues. All these are patterns, and they form part of messaging. RabbitMQ is a messaging broker - an intermediary for messaging. It gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
  • 33. 33 | P a g e Feature Highlights Reliability RabbitMQ offers a variety of features to let you trade off performance with reliability, including persistence, delivery acknowledgements, publisher confirms, and high availability. Flexible Routing Messages are routed through exchanges before arriving at queues. RabbitMQ features several built-in exchange types for typical routing logic. For more complex routing you can bind exchanges together or even write your own exchange type as a plugin. Clustering Several RabbitMQ servers on a local network can be clustered together, forming a single logical broker. Federation For servers that need to be more loosely and unreliably connected than clustering allows, RabbitMQ offers a federation model. Highly Available Queues Queues can be mirrored across several machines in a cluster, ensuring that even in the event of hardware failure your messages are safe. Multi-protocol RabbitMQ supports messaging over a variety of messaging protocols. Many Clients There are RabbitMQ clients for almost any language you can think of. Management UI RabbitMQ ships with an easy-to use management UI that allows you to monitor and control every aspect of your message broker. Tracing If your messaging system is misbehaving, RabbitMQ offers tracing support to let you find out what's going on.
  • 34. 34 | P a g e 6. ANALYSIS An internship undoubtedly is the most important aspect of any engineering. The type of experience I have gained could not have been possible in the classroom. This internship has helped me be confident. I also learnt how to learn and develop in a team. My team consisted of 12 members out of whom 4 were experienced and 8 including me were fresher. Overall it was a wonderful experience and was a golden opportunity to analyze my strengths and weaknesses. My strengths are keeping up with the challenges and finishing work on time. I loved my work and thus I was not hesitant to give as much as time the company needed from me. I worked around 12-13 hours for the company diligently and efficiently which I consider as my strength. I was sharp in conversation and there was no instance when my mentor couldn’t get and which he too appreciated. I would like to improve on my written communication .Plus; I used to get into too much detail into the topic and unnecessarily deviate, which I would like to improve upon. I also learned and improved myself over the point that the job given is much more important than my own learning. 6. CONCLUSION This internship has been the most rewarding experience in my life. Not only have I learned corporate ethics but time-management too. Time management and organization of the day were very important. Summer internship at a good place is an integral part of
  • 35. 35 | P a g e any educational degree. Having gained an experience of 8 weeks, I am confident enough that I will now easily fit in the corporate world. BIBLIOGRAPHY 1. http://www.johnpapa.net/angular-style-guide/: A beautiful article on angular js. 2. http://www.elasticsearchtutorial.com/: Elastic Search tutorial. 3. http://joelabrahamsson.com/elasticsearch-101/ : Elastic Search article. 4. http://www.yiiframework.com/doc/guide/: Definitive guide to Yii. 5. https://www.drupal.org/ :Drupal’s official site.
  • 36. 36 | P a g e Project Daily Task Date Day Work 19th may,2015 Monday Linux Installation and LAMP setup 20th may,2015 Tuesday Linux Commands Tutorial 21st may,2015 Wednesday HTML Training and Assignment 22nd may,2015 Thursday CSS Training and Tutorial 23rd may,2015 Friday free 26th may,2015 Monday JavaScript Tutorial 27th may,2015 Tuesday Training in Apache Jmeter 28th may,2015 - 30th may,2015 Wednesday-Friday Making reports in Apache Jmeter 2nd june,2015 Monday Angular Js tutorial and Assignments 3rd june,2015-30june,2015 Tuesday Working on stratbeans’s website on Drupal, plus, training and learning. 1th july,2015-30july-2015 Wednesday Query Based search Engine
  • 37. 37 | P a g e