Académique Documents
Professionnel Documents
Culture Documents
at
By
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.
Summer Internship | Amandeep Sachan | MyPerfectice
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.
Summer Internship | Amandeep Sachan | MyPerfectice
9
adapting both the difficulty and quantity of items seen by each
examinee.
● Difficulty
● 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.
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
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.
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
Summer Internship | Amandeep Sachan | MyPerfectice
16
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
Summer Internship | Amandeep Sachan | MyPerfectice
18
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.
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