Internship Report Data Analysis PMGDISHA
Internship Report Data Analysis PMGDISHA
At
MINISTRY OF ELECTRONICS
AND INFORMATION
TECHNOLOGY, GOVERNMENT
OF INDIA, NEW DELHI.
Acknowledgement
Words do not reflect the gratitude and appreciation I feel for those who have supported me
during the process. I take immense pleasure in conveying my gratitude to Ministry of
Electronics and Information Technology (MEITY) for giving me this opportunity under
Digital India Internship Scheme; and would also like to extend this gratitude to the Joint
Secretatry- Shri Jaideep Kumar Mishra.
This report would not have been possible without the constant support, motivation and
guidance of Shri Sanjay Kumar Vyas and Shri Shankar Das, my mentors for the duration of
my internship at MEITY. I thank them for their kind co-operation and expert guidance in
the completion of my report.
In addition, I would like to thank my family and friends for their encouragement
and support in this effort.
The technical guidance and support received from Shri Rishikesh Patnakar was immense
and I am grateful to him in providing me all the data that was necessary for my work.
PAGE 1
ABOUT DIGITAL INDIA INTERNSHIP SCHEME
An internship is an opportunity for a student to secure first hand and practical work
experience under the guidance of a qualified and experienced Supervisor/Mentor. It also
aims at active participation in the learning process through experimentation and putting
into practice the knowledge acquired in the classrooms. The Ministry of Electronics and
Information Technology is engaged in electronic development through e-Infrastructure
creation to facilitate and promote (1) e-governance (2) Promotion of electronics hardware
manufacturing and Information Technology & IT Enabled Services (IT-ITeS) Industry (3)
Providing Support for creation of Innovation Infrastructure in emerging areas of technology
(4) Providing support for development of e-Skills and Knowledge network and (5) Securing
India's cyber space.
For the larger benefit of the student community and with a view to enrich the
management/implementation of its various schemes/programmes, the Ministry of
Electronics and Information Technology has decided to notify these “Internship
Guidelines”, to provide a framework for engagement of Interns for a limited period.
The Skill Development activities of the Ministry are primarily being taken up by its two
autonomous societies viz. National Institute of Electronics and Information Technology
(NIELIT previously known as DOEACC) and Centre for Development of Advanced
Computing (C-DAC). In addition, the various organizations / attached offices under the
Ministry viz. ERNET India, Media Lab Asia, CSC E-Governance Services India Limited,
STQC, NIC etc. also engaged in training of various stakeholders in small numbers.
PAGE 2
Special focus of the said Scheme is on training the beneficiaries on use of Electronic
Payment System. The outcome measurement criteria would include undertaking at least 5
electronic payments transactions by each beneficiary using UPI (including BHIM app),
USSD, PoS, AEPS, Cards, Internet Banking.
The total outlay of the above Scheme is Rs. 2,351.38 Crore (approx.). It is being implemented
as a Central Sector Scheme by the Ministry of Electronics & Information Technology
through an implementing agency namely CSC e-Governance Services India Limited, with
active collaboration of all the State Governments and UT Administrations.
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical
tests, time-series analysis, classification, clustering, …) and graphical techniques, and is
highly extensible.
One of R’s strengths is the ease with which well-designed publication-quality plots can be
produced, including mathematical symbols and formulae where needed. Great care has
been taken over the defaults for the minor design choices in graphics, but the user retains
full control.
Source: Internet
THE R ENVIRONMENT
R is an integrated suite of software facilities for data manipulation, calculation and
graphical display. It includes
PAGE 3
a well-developed, simple and effective programming language which includes
conditionals, loops, user-defined recursive functions and input and output
facilities.
Source: Internet
2.
PHP code may be embedded into HTML code, or it can be used in combination with various
web template systems, web content management systems, and web frameworks. PHP code
is usually processed by a PHP interpreter implemented as a module in the web server or as
a Common Gateway Interface (CGI) executable. The web server combines the results of the
interpreted and executed PHP code, which may be any type of data, including images, with
the generated web page. PHP code may also be executed with a command-line interface
(CLI) and can be used to implement standalone graphical applications.
Source: Internet
PAGE 4
3.
HTML, HyperText Markup Language, gives content structure and meaning by defining
that content as, for example, headings, paragraphs, or images. CSS, or Cascading Style
Sheets, is a presentation language created to style the appearance of content—using, for
example, fonts or colors.
The two languages—HTML and CSS—are independent of one another and should remain
that way. CSS should not be written inside of an HTML document and vice versa. As a
rule, HTML will always represent content, and CSS will always represent the appearance
of that content.
Source: Internet
PAGE 5
TASKS ASSIGNED DURING INTERNSHIP:
TASK 1
OBJECTIVE:
• Capturing and analyzing the data in respect of States/Districts under the
PMGDISHA Scheme, so that a triggered approach could be explored for achieving
the targets envisaged across the states.
APPROACH:
• Analysis of data on Uttar Pradesh was given in the format excel file having
following coloumns of State Name, District Name, Panchayat Name, Tehsil Name,
Registered Candidates, Trained Candidates, Exam Completed and Certified
Candidates. Total entries in the data were 60,303. This excel was then converted to
.csv file (Comma Seperated Values) and was imported in R studio so that an
analysis can be started.
• 1st approach:- Data was cleaned using dplyr package, duplicate entries were
removed on the basis of StateName, DistrictName, TehsilName, PanchayatName.
categorize<-function(reg,cert){
if(reg==0){
return("None")
}
val<-(cert/reg)*100
if(val <= 25){
return("Poor")
}else if(val<=50 & val>25){
return("Below average")
}else if(val<=75 & val>50){
return("Above average")
}else{
PAGE 6
return("Excellent")
}
}
category<-NULL
for(i in 1:nrow(dis1.pmgdisha)){
category<-
c(category,categorize(dis1.pmgdisha[i,"Registered.candidates"],dis1.pmgdisha[i,"Ce
rtified.Candidates"]))
}
dis1.pmgdisha$category<-as.factor(category)
derive_percentage<-function(reg,cert){
if(reg==0){
return(reg)
}
val<-(cert/reg)*100
if(val <= 25){
return(val)
}else if(val<=50 & val>25){
return(val)
}else if(val<=75 & val>50){
return(val)
}else{
return(val)
}
}
Result_Percent<-NULL
for(i in 1:nrow(dis1.pmgdisha)){
Result_Percent<-
c(Result_Percent,derive_percentage(dis1.pmgdisha[i,"Registered.candidates"],dis1.
pmgdisha[i,"Certified.Candidates"]))
}
dis1.pmgdisha$Result_Percent<-as.numeric(Result_Percent)
▫ FORMULA :- (certified/registered)*100
▫ Excellent (75<)%
PAGE 7
• #ROWS having best performance on Certified candidates
bestcertified.pmgdisha<-filter(dis1.pmgdisha,category=="Excellent")
▫ Poor (0-25)%
PAGE 8
Disclaimer : Based on the sample data, the image is for symbolic representation
only.
WRAP UP:
• To display the categorized panchayats in a better view geocoding is done using R
in order to get latitude and longitude of every panchayat.
#Data visualization
library(ggplot2)
library(ggmap)
visualize<-function(sheet){
for (i in 1:nrow(sheet)){
latlon = geocode(sheet[i,"Address"])
sheet$lon[i] = as.numeric(latlon[1])
sheet$lat[i] = as.numeric(latlon[2])
}
• Geocoding of each categorical data was done and the rows with non-NA entries
were kept in different data-frame in R with name as (category)Map.pmgdisha.
PAGE 9
ZeroRegMap.pmgdisha<-ZeroReg.pmgdisha[complete.cases(ZeroReg.pmgdisha),]
poorMap.pmgdisha<-poor.pmgdisha[complete.cases(poor.pmgdisha),]
belowAverageMap.pmgdisha<-
belowAverage.pmgdisha[complete.cases(belowAverage.pmgdisha),]
aboveAverageMap.pmgdisha<-
aboveAverage.pmgdisha[complete.cases(aboveAverage.pmgdisha),]
bestcertifiedMap.pmgdisha<-
bestcertified.pmgdisha[complete.cases(bestcertified.pmgdisha),]
• Now in order to plot the panchayats district wise on the map, the above data
frames were combined together and then segregated in the 75 districts of Uttar
Pradesh.
Disclaimer : Based on the sample data, the image is for symbolic representation
only.
PAGE 10
• Now a makeMap function is made which when called plots the panchayats of each
district on the basis of their category with different colors and then it is linked
with the PMGDISHA Dashboard.
makeMap<- function(test1){
getColor <- function (test1) {
sapply(test1$category, function(category) {
if(category=="Excellent") {
"black"
} else if(category=="Above average") {
"pink"
}else if(category=="Below average") {
"darkblue"
}else if(category=="Poor") {
"orange"
} else {
"red"
}})
}
PAGE 11
"<strong>","Exam completed:","</strong>",
test1$Exam.Completed, "<br>",
"<strong>","Certified candisates:","</strong>",
test1$Certified.Candidates, "<br>",
"<strong>","Result Percent:","</strong>",
test1$Result_Percent, "<br>",
"<strong>","Category:","</strong>",
test1$category))%>%
addLegend(position = "topright",colors =
c("black","pink","blue","orange","red"),labels =
c("Excellent","AboveAverage","BelowAverage","Poor","Zero Registration"),title =
"Color Grades")%>%
setView(cntr_crds[1], cntr_crds[2], zoom = 11)
makeMap(X[["AGRA"]])
Disclaimer : Based on the sample data, the image is for symbolic representation
only.
PAGE 12
makeMap(X[["ALIGARH"]])
Disclaimer : Based on the sample data, the image is for symbolic representation only.
makeMap(X[["ALLAHABAD"]])
Disclaimer : Based on the sample data, the image is for symbolic representation only.
PAGE 13
• Download button is there download the distrct wise sheet to give it to directly to
the District coordinator in order to have a triggered approach on those
panchayats.
-----------------------TASK 1 FINISHED---------------------
PAGE 14
TASK 2
OBJECTIVE:
• Capturing/analyzing the data regarding Digital lockers opened for the beneficiaries
certified under the PMGDISHA and digital certificates pushed into their respective
lockers.
APPROACH:
• State: Assam
▫ 1st and 2nd approach are applied same as Task 1 on the data of Assam.
▫ Registered = 1,65,125
▫ Trained = 1,46,628
▫ Certified = 30,713
Disclaimer : Based on the sample data, the image is for symbolic representation only.
PAGE 15
Digital lockers can only be made after the 10 days of training is completed of the
beneficiaries and that in the case of Assam is 64,166 out of total trained candidates
of 1,46,628.
District wise data was prepared with the same R code used in Task 1.
Disclaimer : Based on the sample data, the image is for symbolic representation only.
WRAP UP:
• Distrcit wise view and Training centres Map is made so that direct and precise
contact can be made using code same as task 1.
• Every map was exported as a web page in order to link it to the Dashboard so that
a proper visual view can be seen.
PAGE 16
Baksa District
Disclaimer : Based on the sample data, the image is for symbolic representation only.
• Barpeta District
Disclaimer : Based on the sample data, the image is for symbolic representation only.
PAGE 17
• Bongaigaon District
Disclaimer : Based on the sample data, the image is for symbolic representation only.
• No training centres
Disclaimer : Based on the sample data, the image is for symbolic representation only.
PAGE 18
• Zero Registered Trainig Centres.
Disclaimer : Based on the sample data, the image is for symbolic representation only
-----------------------TASK 2 FINISHED---------------------
PAGE 19
FINAL OUTCOME OF TASK 1 & TASK 2:-
A proper website containing Registration page, login page and a Dashboard is made so
that all the analysis on sample states of Uttar Pradesh and Assam can be viewed properly
at one place.
REGISTRATION PAGE
LOGIN PAGE
PAGE 20
DASHBOARD
PAGE 21
TASK 3
OBJECTIVES:
• Data analysis of digital financial transactions made by the PMGDISHA beneficiaries
and amount transferred/refunded to the beneficiaries or to the CSC operators
implementing PMGDISHA Scheme by CSC-SPV.
APPROACH:
Currently there is no proper way implemented in refunding the money of the
beneficiaries which they transfer in CSC-SPV accounts.
Each beneficiary transfer Rs.5 in 5 transactions but there is no proper algorithm or
system developed to transfer that amount to the respective beneficiary.
At present CSC-SPV is facing the problem in refunding the money because
transaction ID’s come from different banks.
WRAP-UP:
But CSC-SPV is working on an algorithm and a software that can identify the
transaction ID properly and can refund the money back.
-----------------------TASK 3 FINISHED---------------------
PAGE 22
TASK 4
OBJECTIVES:
• Study on backend IT technological components undertaken towards
implementation of PMGDISHA Scheme by CSC-SPV.
APPROACH:
THE PMGDISHA PORTAL IS DEVELOPED ON MVC
ARCHITECTURE
Source: Internet
PAGE 23
To make this a little more clear, let's imagine a shopping app. All we want is a list of the
name, quantity and price of each item we need to buy this week. Below we'll describe how
we could implement some of this functionality using MVC.
The Model
The model defines what data the app should contain. If the state of this data changes, then
the model will usually notify the view (so the display can change as needed) and
sometimes the controller (if different logic is needed to control the updated view).
Going back to our shopping list app, the model would specify what data the list items
should contain — item, price, etc. — and what list items are already present.
The View
The view defines how the app's data should be displayed.
In our shopping list app, the view would define how the list is presented to the user, and
receive the data to display from the model.
The Controller
The controller contains logic that updates the model and/or view in response to input
from the users of the app.
So for example, our shopping list could have input forms and buttons that allow us to add
or delete items. These actions require the model to be updated, so the input is sent to the
controller, which then manipulates the model as appropriate, which then sends updated
data to the view.
You might however also want to just update the view to display the data in a different
format, e.g., change the item order to alphabetical, or lowest to highest price. In this case
the controller could handle this directly without needing to update the model.
AWS announced that Amazon Internet Services Private Limited (AISPL), an Indian
subsidiary of the Amazon Group, which undertakes the resale and marketing of AWS
Cloud services in India, has achieved full Cloud Service Provider (CSP) empanelment, and
successfully completed the STQC (Standardization Testing and Quality Certification)
audit from the Indian Ministry of Electronics and Information Technology (MeitY) for
cloud services delivered from the AWS Asia Pacific (Mumbai) Region.
Government organizations can take advantage of the best-in-class technology from AWS
Cloud to drive transformation, and to deliver highly innovative citizen-centric services at
lower cost through programs such as Digital India, Skill India, and Smart Cities. AWS
offers fully featured services for compute, storage, databases, IoT, networking, machine
PAGE 24
learning and artificial intelligence (AI), and more, from 46 Availability Zones across 17
geographic regions globally.
AWS public sector customers in India include Andhra Pradesh State Skill Development
Corporation (APSSDC), Centre for Science and Environment (CSE), CSC e-Governance
Services (set up by the Ministry of Electronics & IT), Gujarat Technical University, Indian
Institute of Science (IISc), and Indian Institute of Technology, Guwahati.
Source: Internet
PAGE 25
Trade capital expense for variable expense
Instead of having to invest heavily in data centers and servers before you know how you’re
going to use them, you can only pay when you consume computing resources, and only
pay for how much you consume.
Source: Internet
Source: Internet
Source: Internet
PAGE 26
Increase speed and agility
In a cloud computing environment, new IT resources are only ever a click away, which
means you reduce the time it takes to make those resources available to your developers
from weeks to just minutes. This results in a dramatic increase in agility for the
organization, since the cost and time it takes to experiment and develop is significantly
lower.
Source: Internet
Source: Internet
Go global in minutes
Easily deploy your application in multiple regions around the world with just a few clicks.
This means you can provide a lower latency and better experience for your customers
simply and at minimal cost.
PAGE 27
JAVA/OPEN SOURCE SOFTWARE IS USED
DWR
DWR is a Java open source library which allows you to write Ajax web sites. It allows code
in a browser to use Java functions running on a web server just as if it was in the browser.
DWR works by dynamically generating Javascript based on Java classes. The code does
some Ajax magic to make it feel like the execution is happening on the browser, but in
reality the server is executing the code and DWR is marshalling the data back and
forwards.
Google Web Toolkit (GWT) is an open source Java software development framework that
makes writing AJAX applications like Google Maps and Gmail easy for developers who
don't speak browser quirks as a second language. Writing dynamic web applications
today is a tedious and error-prone process; you spend 90% of your time working around
subtle incompatibilities between web browsers and platforms, and JavaScript's lack of
modularity makes sharing, testing, and reusing AJAX components difficult and fragile.
GWT lets you avoid many of these headaches while offering your users the same
dynamic, standards-compliant experience. You write your front end in the Java
programming language, and the GWT compiler converts your Java classes to browser-
compliant JavaScript and HTML.
Echo2
Echo2 is the next-generation of the Echo Web Framework, a platform for developing
web-based applications that approach the capabilities of rich clients. The 2.0 version
holds true to the core concepts of Echo while providing dramatic performance,
capability, and user-experience enhancements made possible by its new Ajax-based
rendering engine.
ICEfaces
PAGE 28
application development skills apply directly and Java developers are isolated from doing
any JavaScript related development.
SweetDEV RIA
SweetDEV RIA is a complete set of world-class Ajax tags in Java/J2EE. It helps you to
design Rich GUI in a thin client. SweetDEV RIA provides you Out-Of-The-Box Ajax tags.
Continue to develop your application with frameworks like Struts or JSF. SweetDEV RIA
tags can be plugged into your JSP pages.
ItsNat is an open source (dual licensed GNU Affero General Public License
v3/commercial license for closed source projects) Java AJAX Component based Web
Framework. It offers a natural approach to the modern Web 2.0 development. ItsNat
simulates a Universal W3C Java Browser in the server. The server mimics the behavior of
a web browser, containing a W3C DOM Level 2 node tree and receiving W3C DOM
Events using AJAX. Every DOM server change is automatically sent to the client and
updated the client DOM accordingly. Consequences: pure (X)HTML templates and pure
Java W3C DOM for the view logic. No JSP, no custom tags, no XML meta-programming,
no expression languages, no black boxed components where the developer has absolute
control of the view. ItsNat provides an, optional, event based (AJAX) Component System,
inspired in Swing and reusing Swing as far as possible such as data and selection models,
where every DOM element or element group can be easily a component.
ThinWire
ThinWire is an development framework that allows you to easily build applications for
the web that have responsive, expressive and interactive user interfaces without the
complexity of the alternatives. While virtually any web application can be built with
ThinWire, when it comes to enterprise applications, the framework excels with its highly
interactive and rich user interface components.
Source: Internet
-----------------------TASK 4 FINISHED---------------------
------------------------------------REPORT COMPLETED----------------------------
PAGE 29
PAGE 30