0% found this document useful (0 votes)
191 views23 pages

Application Development at Myperfectice: Perfectice Eduventure Private Limited

This project is a product based work based on real time data collection and analysis from online traffic through log data. The project has immense potential to capture information in various fields, such as current server traffic, network busy time, or malicious IP addresses trying to consume resources through DDOS attacks. In real-time, a security operations center (SOC) could detect an attack in a matter of minutes. Using RTA, the corporation can have a 360 degree view of their customer’s inte

Uploaded by

Vikas Parmar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
191 views23 pages

Application Development at Myperfectice: Perfectice Eduventure Private Limited

This project is a product based work based on real time data collection and analysis from online traffic through log data. The project has immense potential to capture information in various fields, such as current server traffic, network busy time, or malicious IP addresses trying to consume resources through DDOS attacks. In real-time, a security operations center (SOC) could detect an attack in a matter of minutes. Using RTA, the corporation can have a 360 degree view of their customer’s inte

Uploaded by

Vikas Parmar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Web​ ​Application​ ​Development​ ​at​ ​MyPerfectice

A​ ​project​ ​report​ ​submitted​ ​in​ ​partial​ ​fulfillment​ ​of​ ​the​ ​requirements

summer​ ​internship​ ​project

at

Perfectice​ ​Eduventure​ ​Private​ ​Limited

By

Amandeep​ ​Sachan​ ​(2013IPG-012)

ABV​ ​INDIAN​ ​INSTITUTE​ ​OF​ ​INFORMATION

TECHNOLOGY​ ​AND​ ​MANAGEMENT

GWALIOR-474010

2017
2

Declaration

I,​ ​Amandeep​ ​Sachan​ ​hereby​ ​declare​ ​that​ ​the​ ​presented​ ​report​ ​of​ ​Summer​ ​Internship
titled​ ​“Web​ ​Application​ ​Development​ ​at​ ​MyPerfectice”​ ​is​ ​uniquely​ ​prepared​ ​by​ ​me
after​ ​the​ ​completion​ ​of​ ​60​ ​Days​ ​of​ ​Internship​ ​Study​ ​and​ ​Work​ ​at​ ​Perfectice
Eduventure​ ​Private​ ​Limited.
I​ ​also​ ​confirm​ ​that,​ ​the​ ​report​ ​is​ ​only​ ​prepared​ ​for​ ​my​ ​academic​ ​requirement​ ​not​ ​for
any​ ​other​ ​purpose.​ ​It​ ​might​ ​not​ ​be​ ​used​ ​with​ ​the​ ​interest​ ​of​ ​opposite​ ​party​ ​of​ ​the
corporation.

Amandeep​ ​Sachan
Summer​ ​Intern,
MyPerfectice​ ​-​ ​Bengaluru
Perfectice​ ​Eduventure​ ​Private​ ​Limited.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
3

Acknowledgement

I​ ​would​ ​like​ ​to​ ​take​ ​the​ ​opportunity​ ​to​ ​thank​ ​Mr.​ ​Yashvant​ ​Singh,​ ​CTO​ ​(Perfectice
Eduventure​ ​Private​ ​Limited)​ ​for​ ​providing​ ​me​ ​the​ ​opportunity​ ​to​ ​work​ ​on​ ​this
project​ ​and​ ​Mr.​ ​Priytam​ ​Singh​ ​(Technical​ ​lead)​ ​for​ ​making​ ​me​ ​understand​ ​the
basic​ ​and​ ​initial​ ​stages​ ​of​ ​various
technologies​ ​like​ ​JavaScript,​ ​Full​ ​Stack​ ​Development,​ ​NodeJS,​ ​MongoDB​ ​and
Angular​ ​JS​ ​and​ ​providing​ ​me​ ​with​ ​an​ ​opportunity​ ​to​ ​implement​ ​and​ ​further​ ​work
on​ ​my​ ​skills​ ​during​ ​the​ ​internship​ ​period.​ ​Also​ ​I​ ​would​ ​like​ ​to​ ​thank​ ​my​ ​intern
colleagues​ ​for​ ​always​ ​keeping​ ​me​ ​on​ ​right​ ​track​ ​by​ ​correcting​ ​my​ ​mistakes​ ​at
various​ ​steps​ ​and​ ​providing​ ​with​ ​all​ ​the​ ​necessary​ ​resources​ ​as​ ​and​ ​when​ ​needed
by​ ​me.​ ​Without​ ​their​ ​help,​ ​support​ ​and​ ​guidance,​ ​this​ ​project​ ​would​ ​have​ ​been​ ​a
distant​ ​reality.

Amandeep​ ​Sachan
(2013IPG-012)

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
4

Abstract

Perfectice​ ​is​ ​a​ ​Global​ ​open​ ​platform​ ​for​ ​assessment​ ​(test​ ​preparation).​ ​A​ ​true
platform​ ​to​ ​enable,​ ​independent​ ​teachers,​ ​schools,​ ​learning​ ​centers,​ ​coaching
institutes,​ ​corporate​ ​(business),​ ​online​ ​learning​ ​platform​ ​and​ ​publisher​ ​to​ ​create
assessment​ ​and​ ​students​ ​to​ ​take​ ​those​ ​test​ ​anytime-anywhere.​ ​The​ ​core​ ​of
Perfectice​ ​is​ ​the​ ​analytics​ ​engine​ ​build​ ​behind​ ​the​ ​platform​ ​to​ ​help​ ​students​ ​better
understand​ ​-​ ​insight,​ ​into​ ​their​ ​learning​ ​needs.​ ​Students​ ​can​ ​see​ ​their​ ​strength​ ​and
weakness​ ​by​ ​subject​ ​and​ ​topics,​ ​compare​ ​themselves​ ​at​ ​national​ ​and​ ​international
level,​ ​understand​ ​their​ ​improvement​ ​over​ ​a​ ​period​ ​of​ ​time,​ ​find​ ​test​ ​taking​ ​pattern,
access​ ​wide​ ​variety​ ​of​ ​practice​ ​tests​ ​and​ ​get​ ​a​ ​clear​ ​picture​ ​on​ ​speed​ ​as​ ​well​ ​as
accuracy.
MyPerfectice​ ​web​ ​application​ ​is​ ​build​ ​on​ ​MEAN​ ​Stack​ ​and​ ​mobile​ ​app​ ​is​ ​build
using​ ​Ionic​ ​Framework.​ ​MEAN​ ​is​ ​acronym​ ​for​ ​MongoDB,​ ​Express.js,​ ​AngularJS
and​ ​Node.js,​ ​where​ ​MongoDB​ ​is​ ​database,​ ​AngularJS​ ​is​ ​client​ ​side​ ​framework,
Node.js​ ​is​ ​server​ ​side​ ​framework​ ​and​ ​Express.js​ ​is​ ​a​ ​web​ ​application​ ​framework
for​ ​Node.js,​ ​released​ ​as​ ​free​ ​and​ ​open-source​ ​software​ ​under​ ​the​ ​MIT​ ​License.​ ​It​ ​is
designed​ ​for​ ​building​ ​web​ ​applications​ ​and​ ​APIs.
This​ ​whole​ ​project​ ​results​ ​in​ ​a​ ​fully​ ​functional,​ ​faster​ ​and​ ​efficient​ ​process​ ​for​ ​the
user.

Keywords:​ ​Assessment,​ ​Node.js,​ ​Express.js,​ ​AngularJS​ ​,​ ​MongoDB

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
5

TABLE​ ​OF​ ​CONTENTS

TABLE​ ​OF​ ​CONTENTS 5

COMPANY​ ​PROFILE 6
Vision 6
Mission 6
Functionality 6

PROBLEM​ ​STATEMENTS 8
Integration​ ​with​ ​NIIT​ ​Technologies 8
Content​ ​management​ ​Module​ ​for​ ​platform 8
Computerized​ ​Adaptive​ ​Tests 9

LITERATURE​ ​REVIEW 10
Application​ ​Programming​ ​Interface 10
Token​ ​Based​ ​Authentication 10
MVC​ ​Framework 11
MVC​ ​Components 11
NoSQL​ ​Database 12

SOLUTION​ ​APPROACH 13
Tools​ ​and​ ​Web​ ​Technologies​ ​Used 13
Solution​ ​Methodology 15

RESULT 21

CONCLUSION 22

REFERENCES 23

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
6

1. COMPANY​ ​PROFILE
Perfectice​ ​is​ ​a​ ​platform​ ​to​ ​enable,​ ​independent​ ​teachers,​ ​schools,​ ​learning
centers,​ ​coaching​ ​institutes,​ ​corporate​ ​(business),​ ​online​ ​learning​ ​platform
and​ ​publisher​ ​to​ ​create​ ​assessment​ ​and​ ​students​ ​to​ ​take​ ​those​ ​test​ ​anytime​ ​-
anywhere.​ ​It​ ​is​ ​a​ ​marketplace​ ​for​ ​teachers​ ​and​ ​publishers​ ​to​ ​market​ ​&​ ​sell
their​ ​practice​ ​tests.​ ​They​ ​can​ ​sell,​ ​give​ ​free​ ​or​ ​share​ ​in​ ​private​ ​mode​ ​with
certain​ ​students.​ ​Teachers​ ​can​ ​also​ ​precisely​ ​monitor​ ​the​ ​performance​ ​of
their​ ​students​ ​and​ ​personalize​ ​teaching​ ​style/material​ ​accordingly.​ ​Perfectice
also​ ​connects​ ​to​ ​parents​ ​who​ ​can​ ​peek​ ​into​ ​the​ ​child's​ ​performance​ ​and​ ​help
him/her​ ​effectively.

1.1. Vision
The​ ​Perfectice​ ​vision​ ​is​ ​to​ ​Inspire​ ​and​ ​Develop​ ​the​ ​Leaders​ ​of
Tomorrow​​ ​by​ ​providing​ ​a​ ​new​ ​way​ ​for​ ​students​ ​to​ ​compete​ ​for
examinations​ ​and​ ​college​ ​admissions​ ​that​ ​is​ ​more​ ​effective,​ ​engaging
and​ ​motivating.

1.2. Mission
The​ ​Perfectice​ ​mission​ ​is​ ​to​ ​Transform​ ​How​ ​Students​ ​Prepare​ ​for
Competitive​ ​Exams.

1.3. Functionality

1.3.1. It​ ​is​ ​an​ ​online​ ​platform​ ​for​ ​students​ ​to​ ​take​ ​the​ ​tests​ ​and
teachers​ ​to​ ​create​ ​those​ ​tests​ ​-​ ​all​ ​examinations​ ​covered.
Perfectice​ ​provides​ ​students​ ​insight​ ​into​ ​their​ ​preparation​ ​and
performance​ ​using​ ​advanced​ ​data​ ​analysis.
1.3.2. Students​ ​can​ ​see​ ​their​ ​strength​ ​and​ ​weakness​ ​by​ ​subject​ ​and
topics,​ ​compare​ ​themselves​ ​at​ ​national​ ​and​ ​international​ ​level,
 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
7

understand​ ​their​ ​improvement​ ​over​ ​a​ ​period​ ​of​ ​time,​ ​find​ ​test
taking​ ​pattern,​ ​access​ ​wide​ ​variety​ ​of​ ​practice​ ​tests​ ​and​ ​get​ ​a
clear​ ​picture​ ​on​ ​speed​ ​as​ ​well​ ​as​ ​accuracy.
1.3.3. The​ ​more​ ​you​ ​practice,​ ​more​ ​you​ ​will​ ​know​ ​about​ ​yourself​ ​and
better​ ​you​ ​will​ ​become​ ​-​ ​that's​ ​how​ ​Perfectice​ ​helps​ ​you.
1.3.4. It​ ​is​ ​a​ ​marketplace​ ​for​ ​teachers​ ​and​ ​publishers​ ​to​ ​market​ ​&​ ​sell
their​ ​practice​ ​tests.​ ​They​ ​can​ ​sell,​ ​give​ ​free​ ​or​ ​share​ ​in​ ​private
mode​ ​with​ ​certain​ ​students.
1.3.5. Teachers​ ​can​ ​also​ ​precisely​ ​monitor​ ​the​ ​performance​ ​of​ ​their
students​ ​and​ ​personalize​ ​teaching​ ​style/material​ ​accordingly.
1.3.6. Perfectice​ ​also​ ​connects​ ​to​ ​parents​ ​who​ ​can​ ​peek​ ​into​ ​the​ ​child's
performance​ ​and​ ​help​ ​him/her​ ​effectively.​ ​Parents​ ​can​ ​have
more​ ​meaningful​ ​and​ ​effective​ ​discussion​ ​with​ ​the​ ​child​ ​and
their​ ​teachers​ ​-​ ​seek​ ​personalized​ ​coaching​ ​for​ ​the​ ​child.
1.3.7. Any​ ​school,​ ​coaching​ ​institute,​ ​students,​ ​parents,​ ​independent
teachers​ ​and​ ​mentors​ ​can​ ​benefit​ ​from​ ​this​ ​application​ ​from​ ​day
one.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
8

2. PROBLEM​ ​STATEMENTS
Perfectice​ ​provides​ ​students​ ​insight​ ​into​ ​their​ ​preparation​ ​and​ ​performance
using​ ​advanced​ ​data​ ​analysis.​ ​Students​ ​can​ ​see​ ​their​ ​strength​ ​and​ ​weakness
by​ ​subject​ ​and​ ​topics,​ ​compare​ ​themselves​ ​at​ ​national​ ​and​ ​international
level,​ ​understand​ ​their​ ​improvement​ ​over​ ​a​ ​period​ ​of​ ​time,​ ​find​ ​test​ ​taking
pattern,​ ​access​ ​wide​ ​variety​ ​of​ ​practice​ ​tests​ ​and​ ​get​ ​a​ ​clear​ ​picture​ ​on​ ​speed
as​ ​well​ ​as​ ​accuracy.

2.1. Integration​ ​with​ ​NIIT​ ​Technologies


NIIT​ ​Limited​​ ​is​ ​an​ ​Indian​ ​Multinational​ ​company​ ​that​ ​offers​ ​learning
management​ ​and​ ​training​ ​delivery​​ ​solutions​​ ​to​ ​corporations,
institutions​ ​and​ ​individuals.​ ​NIIT​ ​also​ ​provide​ ​online​ ​video​ ​tutorial
courses.​ ​Our​ ​task​ ​was​ ​to​ ​integrate​ ​with​ ​their​ ​platform​ ​so​ ​that​ ​after
watching​ ​the​ ​video​ ​tutorials​ ​from​ ​their​ ​platform,​ ​list​ ​of​ ​relevant
practice​ ​sets​ ​should​ ​be​ ​displayed​ ​and​ ​user​ ​can​ ​be​ ​redirected​ ​to​ ​our
platform​ ​without​ ​any​ ​need​ ​of​ ​ ​login.

2.2. Content​ ​management​ ​Module​ ​for​ ​platform


The​ ​task​ ​was​ ​to​ ​design​ ​and​ ​develop​ ​one​ ​module​ ​for​ ​teacher​ ​account​ ​so
that​ ​teacher​ ​can​ ​add​ ​video​ ​or​ ​ebook​ ​content​ ​for​ ​students​ ​on​ ​some
particular​ ​subject​ ​or​ ​topic.​ ​This​ ​will​ ​be​ ​helpful​ ​for​ ​students​ ​to
understand​ ​the​ ​topics.

2.3. Computerized​ ​Adaptive​ ​Tests


Computerized​ ​adaptive​ ​tests​ ​(CATs)​ ​are​ ​a​ ​sophisticated​ ​method​ ​of​ ​test
delivery​ ​based​ ​on​ ​item​ ​response​ ​theory​ ​(IRT).​ ​They​ ​operate​ ​by

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
9

adapting​ ​both​ ​the​ ​difficulty​​ ​and​ ​quantity​​ ​of​ ​items​ ​seen​ ​by​ ​each
examinee.

● Difficulty

Most​ ​characterizations​ ​of​ ​adaptive​ ​testing​ ​focus​ ​on​ ​how​ ​item


difficulty​ ​is​ ​matched​ ​to​ ​examinee​ ​ability.​ ​High​ ​ability
examinees​ ​receive​ ​more​ ​difficult​ ​items,​ ​while​ ​low​ ​ability
examinees​ ​receive​ ​easier​ ​items,​ ​which​ ​has​ ​important​ ​benefits​ ​to
the​ ​student​ ​and​ ​the​ ​organization.

● Quantity
A​ ​less​ ​publicized​ ​facet​ ​of​ ​adaptation​ ​is​ ​the​ ​number​ ​of​ ​items.
Adaptive​ ​tests​ ​can​ ​be​ ​designed​ ​to​ ​stop​ ​when​ ​certain
psychometric​ ​criteria​ ​are​ ​reached,​ ​such​ ​as​ ​a​ ​specific​ ​level​ ​of
score​ ​precision.

Our​ ​objective​ ​was​ ​to​ ​make​ ​our​ ​assessment​ ​platform​ ​more​ ​intelligent.
Instead​ ​of​ ​way​ ​of​ ​presenting​ ​questions​ ​to​ ​students,​ ​this​ ​method
presents​ ​next​ ​question​ ​on​ ​the​ ​basis​ ​of​ ​response​ ​and​ ​difficulty​ ​of
previous​ ​questions​ ​shown​ ​to​ ​user.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
10

3. LITERATURE​ ​REVIEW
3.1. Application​ ​Programming​ ​Interface
3.1.1. Application​ ​program​ ​interface​ ​(API)​ ​is​ ​a​ ​set​ ​of​​ ​routines​,
protocols​,​ ​and​ ​tools​ ​for​ ​building​​ ​software​ ​applications​.​ ​An​ ​API
specifies​ ​how​ ​software​ ​components​ ​should​ ​interact.
3.1.2. APIs​ ​are​ ​used​ ​when​ ​programming​ ​graphical​ ​user​ ​interface
(​GUI​)​ ​components.​ ​A​ ​good​ ​API​ ​makes​ ​it​ ​easier​ ​to​ ​develop​ ​a
program​​ ​by​ ​providing​ ​all​ ​the​ ​building​ ​blocks.​ ​A​ ​programmer
then​ ​puts​ ​the​ ​blocks​ ​together.
3.1.3. There​ ​are​ ​many​ ​different​ ​types​ ​of​ ​APIs​ ​for​ ​operating​ ​systems,
applications​ ​or​ ​websites.​ ​Windows,​ ​for​ ​example,​ ​has​ ​many​​ ​API
sets​​ ​that​ ​are​ ​used​ ​by​ ​system​ ​hardware​ ​and​ ​applications​ ​—​ ​when
you​ ​copy​ ​and​ ​paste​ ​text​ ​from​ ​one​ ​application​ ​to​ ​another,​ ​it​ ​is
the​ ​API​ ​that​ ​allows​ ​that​ ​to​ ​work.
3.1.4. Popular​ ​Web​ ​APIs​ ​are​ ​Google​ ​APIs,​ ​YouTube​ ​APIs,​ ​Flickr
API,​ ​Twitter​ ​APIs​ ​and​ ​many​ ​more.

3.2. Token​ ​Based​ ​Authentication


3.2.1. The​ ​general​ ​concept​ ​behind​ ​a​ ​token-based​ ​authentication
system​ ​is​ ​simple.​ ​Allow​ ​users​ ​to​ ​enter​ ​their​ ​username​ ​and
password​ ​in​ ​order​ ​to​ ​obtain​ ​a​ ​token​ ​which​ ​allows​ ​them​ ​to​ ​fetch
a​ ​specific​ ​resource​ ​without​ ​using​ ​their​ ​username​ ​and​ ​password.
Once​ ​their​ ​token​ ​has​ ​been​ ​obtained,​ ​the​ ​user​ ​can​ ​offer​ ​the​ ​token
which​ ​offers​ ​access​ ​to​ ​a​ ​specific​ ​resource​ ​for​ ​a​ ​time​ ​period​ ​to
the​ ​remote​ ​site.
3.2.2. Token​ ​based​ ​authentication​ ​is​ ​prominent​ ​everywhere​ ​on​ ​the
web​ ​nowadays.​ ​With​ ​most​ ​every​ ​web​ ​company​ ​using​ ​an​ ​API,

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
11

tokens​ ​are​ ​the​ ​best​ ​way​ ​to​ ​handle​ ​authentication​ ​for​ ​multiple
users.
3.2.3. JSON​ ​Web​ ​Token​ ​is​ ​a​ ​JSON​-based​​ ​open​ ​standard​​ ​for​ ​creating
access​ ​tokens​​ ​that​ ​assert​ ​some​ ​number​ ​of​ ​claims.​ ​For​ ​example,
a​ ​server​ ​could​ ​generate​ ​a​ ​token​ ​that​ ​has​ ​the​ ​claim​ ​"logged​ ​in​ ​as
admin"​ ​and​ ​provide​ ​that​ ​to​ ​a​ ​client.​ ​The​ ​client​ ​could​ ​then​ ​use
that​ ​token​ ​to​ ​prove​ ​that​ ​it​ ​is​ ​logged​ ​in​ ​as​ ​admin.
3.2.4. There​ ​are​ ​some​ ​very​ ​important​ ​factors​ ​when​ ​choosing​ ​token
based​ ​authentication​ ​for​ ​your​ ​application.​ ​The​ ​main​ ​reasons​ ​for
tokens​ ​are:
● Stateless​ ​and​ ​scalable​ ​servers
● Mobile​ ​application​ ​ready
● Pass​ ​authentication​ ​to​ ​other​ ​applications
● Extra​ ​security

3.3. MVC​ ​Framework


The​ ​Model-View-Controller​ ​(MVC)​ ​is​ ​an​ ​architectural​ ​pattern​ ​that
separates​ ​an​ ​application​ ​into​ ​three​ ​main​ ​logical​ ​components:​ ​the
model,​ ​the​ ​view,​ ​and​ ​the​ ​controller.​ ​Each​ ​of​ ​these​ ​components​ ​are
built​ ​to​ ​handle​ ​specific​ ​development​ ​aspects​ ​of​ ​an​ ​application.​ ​MVC
is​ ​one​ ​of​ ​the​ ​most​ ​frequently​ ​used​ ​industry-standard​ ​web​ ​development
framework​ ​to​ ​create​ ​scalable​ ​and​ ​extensible​ ​projects.

3.3.1. MVC​ ​Components


Model​:The​ ​Model​ ​component​ ​corresponds​ ​to​ ​all​ ​the​ ​data
related​ ​logic​ ​that​ ​the​ ​user​ ​works​ ​with.​ ​This​ ​can​ ​represent​ ​either
the​ ​data​ ​that​ ​is​ ​being​ ​transferred​ ​between​ ​the​ ​View​ ​and
Controller​ ​components​ ​or​ ​any​ ​other​ ​business​ ​logic​ ​related​ ​data.
For​ ​example,​ ​a​ ​Customer​ ​object​ ​will​ ​retrieve​ ​the​ ​customer
information​ ​from​ ​the​ ​database,​ ​manipulate​ ​it​ ​and​ ​update​ ​it​ ​data
back​ ​to​ ​the​ ​database​ ​or​ ​use​ ​it​ ​to​ ​render​ ​data.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
12

View​:​ ​The​ ​View​ ​component​ ​is​ ​used​ ​for​ ​all​ ​the​ ​UI​ ​logic​ ​of​ ​the
application.​ ​For​ ​example,​ ​the​ ​Customer​ ​view​ ​would​ ​include​ ​all
the​ ​UI​ ​components​ ​such​ ​as​ ​text​ ​boxes,​ ​dropdowns,​ ​etc.​ ​that​ ​the
final​ ​user​ ​interacts​ ​with.
Controller​:Controllers​ ​act​ ​as​ ​an​ ​interface​ ​between​ ​Model​ ​and
View​ ​components​ ​to​ ​process​ ​all​ ​the​ ​business​ ​logic​ ​and
incoming​ ​requests,​ ​manipulate​ ​data​ ​using​ ​the​ ​Model​ ​component
and​ ​interact​ ​with​ ​the​ ​Views​ ​to​ ​render​ ​the​ ​final​ ​output.

3.4. NoSQL​ ​Database


3.4.1. A​ ​NoSQL​ ​database​ ​provides​ ​a​ ​mechanism​ ​for​​ ​storage​​ ​and
retrieval​​ ​of​ ​data​ ​that​ ​is​ ​modeled​ ​in​ ​means​ ​other​ ​than​ ​the​ ​tabular
relations​ ​used​ ​in​​ ​relational​ ​databases​.​ ​Such​ ​databases​ ​have
existed​ ​since​ ​the​ ​late​ ​1960s,​ ​but​ ​did​ ​not​ ​obtain​ ​the​ ​"NoSQL"
moniker​ ​until​ ​a​ ​surge​ ​of​ ​popularity​ ​in​ ​the​ ​early​ ​twenty-first
century,​ ​triggered​ ​by​ ​the​ ​needs​ ​of​​ ​Web​ ​2.0​​ ​companies​ ​such​ ​as
Facebook​,​ ​Google​,​ ​and​​ ​Amazon.com​.
3.4.2. NoSQL​ ​databases​ ​are​ ​increasingly​ ​used​ ​in​​ ​big​ ​data​​ ​and
real-time​ ​web​​ ​applications.​ ​NoSQL​ ​systems​ ​are​ ​also​ ​sometimes
called​ ​"Not​ ​only​ ​SQL"​ ​to​ ​emphasize​ ​that​ ​they​ ​may​ ​support
SQL​-like​ ​query​ ​languages.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
13

4. SOLUTION​ ​APPROACH
4.1. Tools​ ​and​ ​Web​ ​Technologies​ ​Used
4.1.1. Javascript
JavaScript​ ​(JS)​ ​is​ ​a​ ​lightweight,​ ​interpreted,​ ​programming
language​ ​with​ ​first-class​ ​functions.​ ​While​ ​it​ ​is​ ​most​ ​well-known
as​ ​the​ ​scripting​ ​language​ ​for​ ​Web​ ​pages,​ ​many​ ​non-browser
environments​ ​also​ ​use​ ​it,​ ​such​ ​as​ ​node.js​ ​and​ ​Apache​ ​CouchDB.
JS​ ​is​ ​a​ ​prototype​ ​based,​ ​multi-paradigm,​ ​dynamic​ ​scripting
language,​ ​supporting​ ​object-oriented,​ ​imperative,​ ​and
declarative​ ​(e.g.​ ​functional​ ​programming)​ ​styles.

4.1.2. Node.js
As​ ​an​ ​asynchronous​ ​event​ ​driven​ ​JavaScript​ ​runtime,​ ​Node​ ​is
designed​ ​to​ ​build​ ​scalable​ ​network​ ​applications.​ ​In​ ​the
following​ ​"hello​ ​world"​ ​example,​ ​many​ ​connections​ ​can​ ​be
handled​ ​concurrently.​ ​Upon​ ​each​ ​connection​ ​the​ ​callback​ ​is
fired,​ ​but​ ​if​ ​there​ ​is​ ​no​ ​work​ ​to​ ​be​ ​done​ ​Node​ ​is​ ​sleeping.
Node​ ​is​ ​similar​ ​in​ ​design​ ​to,​ ​and​ ​influenced​ ​by,​ ​systems​ ​like
Ruby’s​ ​Eventmachine​ ​or​ ​Python’s​ ​Twisted.​ ​Node​ ​takes​ ​the
event​ ​model​ ​a​ ​bit​ ​further,​ ​it​ ​presents​ ​an​ ​event​ ​loop​ ​as​ ​a​ ​runtime
construct​ ​instead​ ​of​ ​as​ ​a​ ​library.​ ​In​ ​other​ ​systems​ ​there​ ​is
always​ ​a​ ​blocking​ ​call​ ​to​ ​start​ ​the​ ​event-loop.​ ​Typically
behavior​ ​is​ ​defined​ ​through​ ​callbacks​ ​at​ ​the​ ​beginning​ ​of​ ​a
script​ ​and​ ​at​ ​the​ ​end​ ​starts​ ​a​ ​server​ ​through​ ​a​ ​blocking​ ​call​ ​like
EventMachine::run().​ ​In​ ​Node​ ​there​ ​is​ ​no​ ​such
start-the-event-loop​ ​call.​ ​Node​ ​simply​ ​enters​ ​the​ ​event​ ​loop
after​ ​executing​ ​the​ ​input​ ​script.​ ​Node​ ​exits​ ​the​ ​event​ ​loop​ ​when
there​ ​are​ ​no​ ​more​ ​callbacks​ ​to​ ​perform.​ ​This​ ​behavior​ ​is​ ​like
browser​ ​JavaScript​ ​at​ ​the​ ​event​ ​loop​ ​is​ ​hidden​ ​from​ ​the​ ​user.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
14

HTTP​ ​is​ ​a​ ​first​ ​class​ ​citizen​ ​in​ ​Node,​ ​designed​ ​with​ ​streaming
and​ ​low​ ​latency​ ​in​ ​mind.​ ​This​ ​makes​ ​Node​ ​well​ ​suited​ ​for​ ​the
foundation​ ​of​ ​a​ ​web​ ​library​ ​or​ ​framework.

4.1.3. AngularJS
HTML​ ​is​ ​great​ ​for​ ​declaring​ ​static​ ​documents,​ ​but​ ​it​ ​falters
when​ ​we​ ​try​ ​to​ ​use​ ​it​ ​for​ ​declaring​ ​dynamic​ ​views​ ​in
web-applications.
AngularJS​ ​lets​ ​you​ ​extend​ ​HTML​ ​vocabulary​ ​for​ ​your
application.​ ​The​ ​resulting​ ​environment​ ​is​ ​extraordinarily
expressive,​ ​readable,​ ​and​ ​quick​ ​to​ ​develop.
AngularJS​ ​is​ ​a​ ​toolset​ ​for​ ​building​ ​the​ ​framework​ ​most​ ​suited​ ​to
your​ ​application​ ​development.​ ​It​ ​is​ ​fully​ ​extensible​ ​and​ ​works
well​ ​with​ ​other​ ​libraries.​ ​Every​ ​feature​ ​can​ ​be​ ​modified​ ​or
replaced​ ​to​ ​suit​ ​your​ ​unique​ ​development​ ​workflow​ ​and​ ​feature
needs.

4.1.4. Express.js
Express​ ​is​ ​a​ ​minimal​ ​and​ ​flexible​ ​Node.js​ ​web​ ​application
framework​ ​that​ ​provides​ ​a​ ​robust​ ​set​ ​of​ ​features​ ​for​ ​web​ ​and
mobile​ ​applications.With​ ​a​ ​myriad​ ​of​ ​HTTP​ ​utility​ ​methods​ ​and
middleware​ ​at​ ​your​ ​disposal,​ ​creating​ ​a​ ​robust​ ​API​ ​is​ ​quick​ ​and
easy.​ ​Express​ ​provides​ ​a​ ​thin​ ​layer​ ​of​ ​fundamental​ ​web
application​ ​features,​ ​without​ ​obscuring​ ​Node.js​ ​features​ ​that
you​ ​know​ ​and​ ​love.

4.1.5. XMLHTTPREQUEST
XMLHttpRequest​ ​is​ ​an​ ​API​ ​that​ ​provides​ ​client​ ​functionality
for​ ​transferring​ ​data​ ​between​ ​a​ ​client​ ​and​ ​a​ ​server.​ ​It​ ​provides
an​ ​easy​ ​way​ ​to​ ​retrieve​ ​data​ ​from​ ​a​ ​URL​ ​without​ ​having​ ​to​ ​do​ ​a
full​ ​page​ ​refresh.​ ​This​ ​enables​ ​a​ ​Web​ ​page​ ​to​ ​update​ ​just​ ​a​ ​part
of​ ​the​ ​page​ ​without​ ​disrupting​ ​what​ ​the​ ​user​ ​is​ ​doing.
XMLHttpRequest​ ​is​ ​used​ ​heavily​ ​in​ ​AJAX​ ​programming.
 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
15

XMLHttpRequest​ ​was​ ​originally​ ​designed​ ​by​ ​Microsoft​ ​and


adopted​ ​by​ ​Mozilla,​ ​Apple,​ ​and​ ​Google.​ ​It’s​ ​now​ ​being
standardized​ ​at​ ​the​ ​WHATWG.​ ​Despite​ ​its​ ​name,
XMLHttpRequest​ ​can​ ​be​ ​used​ ​to​ ​retrieve​ ​any​ ​type​ ​of​ ​data,​ ​not
just​ ​XML,​ ​and​ ​it​ ​supports​ ​protocols​ ​other​ ​than​ ​HTTP​ ​(including
file​ ​and​ ​ftp).

4.1.6. Database​:​ ​MongoDB

4.1.7. version​ ​Control​:​ ​Bitbucket(Git)

4.1.8. JavaScript​ ​IDE​:​ ​Visual​ ​Studio​ ​Code

4.2. Solution​ ​Methodology


4.2.1. Integration​ ​with​ ​NIIT​ ​Technologies
In​ ​order​ ​to​ ​complete​ ​this​ ​task,​ ​I​ ​first​ ​designed​ ​working​ ​model​ ​of
how​ ​things​ ​will​ ​work​ ​so​ ​that​ ​it​ ​become​ ​easy​ ​to​ ​integrate​ ​with
their​ ​platform.
Step​ ​1:​ ​Scope​ ​of​ ​work
We​ ​firstly​ ​explored​ ​the​ ​scope​ ​of​ ​work​ ​that​ ​can​ ​be​ ​done​ ​to
accomplish​ ​this​ ​task.​ ​We​ ​decided​ ​the​ ​scope​ ​of​ ​the
integration​ ​effort​ ​–​ ​efforts​ ​can​ ​be​ ​carried​ ​out​ ​in​ ​phases
based​ ​on​ ​understanding​ ​and​ ​agreement​ ​between​ ​both
companies.​ ​Priority​ ​on​ ​the​ ​tasks​ ​was​ ​defined​ ​based​ ​on
business​ ​value,​ ​availability​ ​of​ ​resources,​ ​timeline​ ​etc.​ ​and
will​ ​be​ ​decided​ ​by​ ​both​ ​teams.

Step​ ​2:​ ​Functional​ ​Overview


Then​ ​we​ ​created​ ​the​ ​functional​ ​overview​ ​for​ ​this​ ​whole
process​ ​which​ ​can​ ​be​ ​used.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
16

Figure​ ​4.1:​ ​Functional​ ​overview​ ​for​ ​integration

Step​ ​3:​ ​Technical​ ​Overview


This​ ​was​ ​one​ ​of​ ​the​ ​most​ ​important​ ​step​ ​for​ ​me​ ​as​ ​I​ ​had
to​ ​design​ ​the​ ​schema​ ​and​ ​workflow​ ​of​ ​backend.​ ​It
contains​ ​the​ ​information​ ​about​ ​the​ ​existing​ ​APIs​ ​in​ ​both
the​ ​platforms​ ​and​ ​the​ ​new​ ​APIs​ ​that​ ​needs​ ​to​ ​be​ ​added​ ​to
make​ ​this​ ​integration​ ​successful.

Figure​ ​4.2:​ ​Technical​ ​overview​ ​for​ ​integration

Step​ ​4:​ ​Development​ ​of​ ​Application​ ​Programming​ ​Interface


Then​ ​we​ ​started​ ​identifying​ ​existing​ ​APIs​ ​and​ ​creating​ ​new
APIs​ ​using​ ​Express.js​ ​(Node.js​ ​framework).​ ​I​ ​used​ ​JSON​ ​Web
token​ ​for​ ​authentication​ ​purpose.
Some​ ​of​ ​the​ ​APIs​ ​were:

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
17

http://www.myperfectice.com/api/AttemptSummary
http://www.myperfectice.com/​api/gradesSubjectsTopics
http://www.myperfectice.com/​api/practiceSet
http://www.myperfectice.com/api/AttemptSummary
http://www.myperfectice.com/api/tokenInfo
http://www.myperfectice.com/api/niitUser
http://www.myperfectice.com/api/checkNiitUser

Step​ ​5:​ ​Testing


After​ ​this,​ ​testing​ ​team​ ​tested​ ​this​ ​task​ ​regressively​ ​so​ ​that​ ​it
would​ ​not​ ​create​ ​any​ ​problem​ ​in​ ​Production.

4.2.2. Content​ ​management​ ​Module​ ​for​ ​platform


Step​ ​1:​ S
​ cope​ ​of​ ​work
Objective​ ​was​ ​to​ ​provide​ ​tutorials​ ​of​ ​topics​ ​of​ ​which
student​ ​has​ ​attempted​ ​the​ ​questions,​ ​so​ ​that​ ​they​ ​can
learn​ ​from​ ​their​ ​mistakes.​ ​Finally​ ​it​ ​was​ ​decided​ ​that,
teacher​ ​will​ ​add​ ​content​ ​for​ ​the​ ​various​ ​topics​ ​and​ ​it​ ​will
be​ ​shown​ ​to​ ​the​ ​student​ ​after​ ​he/she​ ​has​ ​attempted​ ​the
test.

Step​ ​2​ ​:​ ​Technical​ ​Design


Firstly​ ​I​ ​designed​ ​the​ ​schema​ ​to​ ​store​ ​this​ ​feature​ ​in​ ​the
database.​ ​Then​ ​I​ ​came​ ​up​ ​with​ ​the​ ​following​ ​schema:

var​ ​ContentSchema​ ​=​ ​new​ ​Schema({ 


​ ​ ​ ​user:​ ​{​ ​type:​ ​Schema.Types.ObjectId,​ ​ref: 
'User',​ ​required:​ ​true​ ​}, 
​ ​ ​ ​grade:​ ​{​ ​type:​ ​Schema.Types.ObjectId,​ ​ref: 
'Grade',​ ​required:​ ​true​ ​}, 
​ ​ ​ ​subject:​ ​{​ ​type:​ ​Schema.Types.ObjectId,​ ​ref: 
'Subject',​ ​required:​ ​true​ ​}, 

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
18

​ ​ ​ ​topic:​ ​{​ ​type:​ ​Schema.Types.ObjectId,​ ​ref: 


'Topic',​ ​required:​ ​true​ ​}, 
​ ​ ​ ​description:​ ​{​ ​type:​ ​String,​ ​default:​ ​''​ ​}, 
​ ​ ​ ​link:​ ​{​ ​type:​ ​String,​ ​default:​ ​''​ ​}, 
​ ​ ​ ​pathDir:​ ​{​ ​type:​ ​String​ ​}, 
​ ​ ​ ​filePath:​ ​{​ ​type:​ ​String​ ​}, 
​ ​ ​ ​contentType:​ ​{ 
​ ​ ​ ​ ​ ​ ​ ​type:​ ​String, 
​ ​ ​ ​ ​ ​ ​ ​enum:​ ​['video',​ ​'ebook',​ ​'other'], 
​ ​ ​ ​ ​ ​ ​ ​default:​ ​'other' 
​ ​ ​ ​}, 
​ ​ ​ ​createdAt:​ ​{​ ​type:​ ​Date,​ ​default:​ ​Date.now​ ​}, 
​ ​ ​ ​updatedAt:​ ​{​ ​type:​ ​Date,​ ​default:​ ​Date.now​ ​} 
},​ ​{​ ​timestamps:​ ​true​ ​}); 

Step​ ​3:​ ​Visual​ ​Design


It​ ​comprises​ ​of​ ​how​ ​content​ ​management​ ​part​ ​will​ ​look
like.​ ​Following​ ​design​ ​was​ ​finalized.

​ ​Figure​ ​4.3:​ ​Visual​ ​Design​ ​for​ ​Content​ ​Management​ ​Module

4.2.3. Computerized​ ​Adaptive​ ​Tests

Step​ ​1:​ ​Scope​ ​of​ ​work


 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
19

In​ ​this​ ​task,​ ​objective​ ​was​ ​to​ ​create​ ​the​ ​adaptive​ ​practice
set​ ​for​ ​student.​ ​Adaptive​ ​test​ ​should​ ​be​ ​created​ ​on​ ​the
basis​ ​of​ ​weak​ ​topics​ ​of​ ​student.​ ​The​ ​display​ ​of​ ​questions
should​ ​not​ ​be​ ​sequential​ ​unlike​ ​regular​ ​practice​ ​test.
Difficulty​ ​level​ ​of​ ​next​ ​question​ ​should​ ​be​ ​displayed​ ​on
the​ ​basis​ ​of​ ​the​ ​response​ ​and​ ​difficulty​ ​of​ ​previous
question.​ ​This​ ​way​ ​practice​ ​set​ ​will​ ​adapt​ ​itself​ ​as​ ​per
consistency​ ​level​ ​of​ ​student.

Step​ ​2:​ ​Technical​ ​Work


Firstly​ ​I​ ​wrote​ ​MongoDB​ ​queries​ ​to​ ​figure​ ​out​ ​the​ ​topics
on​ ​which​ ​student​ ​is​ ​performing​ ​poor.
Then​ ​I​ ​developed​ ​API​ ​to​ ​generate​ ​adaptive​ ​test​ ​and​ ​store
it​ ​in​ ​the​ ​database.
Next​ ​I​ ​wrote​ ​logical​ ​part​ ​of​ ​the​ ​code,​ ​so​ ​that​ ​the​ ​question
should​ ​be​ ​displayed​ ​as​ ​per​ ​our​ ​requirement.

Step​ ​3:​ ​Visual​ ​Design


Following​ ​designs​ ​were​ ​adopted​ ​to​ ​convert​ ​it​ ​into​ ​a
working​ ​application:

Figure​ ​4.4:​ ​Test​ ​instructions​ ​for​ ​Adaptive​ ​test​ ​module


 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
20

Figure​ ​4.5:​ ​Screen​ ​displaying​ ​question​ ​for​ ​Adaptive​ ​test​ ​module

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
21

5. RESULT
I​ ​have​ ​successfully​ ​completed​ ​the​ ​projects​ ​fulfilling​ ​the​ ​specifications,​ ​provided​ ​by
the​ ​company​ ​and​ ​the​ ​completed​ ​project​ ​was​ ​under​ ​the​ ​guidance​ ​of​ ​Perfectice.
The​ ​integration​ ​done​ ​with​ ​the​ ​NIIT​ ​was​ ​tested​ ​thoroughly​ ​for​ ​consistency​ ​and
rigidity.​ ​It​ ​would​ ​definitely​ ​fulfill​ ​the​ ​requirements​ ​and​ ​objectives​ ​that​ ​it​ ​was​ ​meant
to​ ​and​ ​will​ ​helpful​ ​the​ ​students​ ​to​ ​smoothly​ ​switch​ ​between​ ​both​ ​the​ ​platforms.
The​ ​Content​ ​Management​ ​module​ ​was​ ​also​ ​successfully​ ​integrated​ ​into​ ​the​ ​main
code​ ​base​ ​so​ ​that​ ​it​ ​helps​ ​student​ ​to​ ​learn​ ​the​ ​contents​ ​provided​ ​by​ ​their​ ​teachers.
Computerized​ ​Adaptive​ ​Testing​ ​was​ ​also​ ​implemented​ ​successfully​ ​in​ ​the​ ​platform
so​ ​that​ ​the​ ​user​ ​can​ ​practice​ ​on​ ​the​ ​basis​ ​of​ ​his/her​ ​weak​ ​areas​ ​and​ ​questions​ ​should
be​ ​displayed​ ​on​ ​the​ ​basis​ ​of​ ​correctness​ ​of​ ​previous​ ​questions.
All​ ​the​ ​given​ ​tasks​ ​were​ ​successfully​ ​deployed​ ​into​ ​the​ ​main​ ​code​ ​of​ ​MyPerfectice.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
22

6. CONCLUSION
The​ ​knowledge​ ​acquired​ ​through​ ​continuous​ ​learning​ ​at​ ​the​ ​institute
definitely​ ​helped​ ​in​ ​implementing​ ​the​ ​required​ ​tasks​ ​easily.​ ​The​ ​experience
gained​ ​led​ ​the​ ​mind​ ​to​ ​curiously​ ​investigate​ ​the​ ​know-hows​ ​of​ ​different
software,​ ​aiming​ ​at​ ​finding​ ​the​ ​most​ ​optimal​ ​solution.​ ​The​ ​skills
demonstrated​ ​throughout​ ​were​ ​commended​ ​by​ ​the​ ​team​ ​and​ ​the​ ​project​ ​head
as​ ​the​ ​result​ ​produced​ ​were​ ​on​ ​time.​ ​As​ ​it​ ​was​ ​a​ ​project​ ​that​ ​was​ ​independent
of​ ​the​ ​other​ ​task​ ​in​ ​the​ ​company​ ​it​ ​helped​ ​me​ ​grow​ ​in​ ​this​ ​field,The​ ​main
objectives​ ​of​ ​the​ ​internship​ ​task​ ​to​ ​met​ ​through​ ​and​ ​all​ ​the​ ​given​ ​problems
were​ ​solved​ ​increasing​ ​the​ ​productivity​ ​of​ ​the​ ​academic​ ​department​ ​and​ ​task
completion​ ​in​ ​much​ ​less​ ​time.​ ​I​ ​also​ ​learned​ ​many​ ​new​ ​different
technologies​ ​and​ ​tools​ ​which​ ​helped​ ​in​ ​making​ ​the​ ​modules​ ​more​ ​efficient.
Also​ ​the​ ​workload​ ​on​ ​the​ ​server​ ​was​ ​reduced​ ​by​ ​making​ ​more​ ​optimization
in​ ​the​ ​algorithms​ ​used.

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 
23

7. REFERENCES
7.1. https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
7.2. https://developer.chrome.com/extensions/overview
7.3. https://developer.chrome.com/extensions/api-index
7.4. http://www.html5rocks.com/en/tutorials/security/content-security-poli
cy
7.5. https://en.wikipedia.org/wiki/Cross-site-scripting
7.6. https://www.owasp.org/index.php/Cross-site-Scripting(XSS)
7.7. https://developer.chrome.com/apps/app-external
7.8. http://expressjs.com/
7.9. http://extensionizr.com
7.10. https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/
Sending-and-Receiving-Binary-Data
7.11. https://scotch.io/tag/angular-js
7.12. http://www.stackoverflow.com/
7.13. http://www.assess.com/adaptive-testing/
7.14. https://en.wikipedia.org/wiki/Computerized_adaptive_testing
7.15. http://edglossary.org/computer-adaptive-test/
7.16. https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-
4

 
Summer​ ​Internship​ ​|​ ​Amandeep​ ​Sachan​ ​|​ ​MyPerfectice 

You might also like