Vous êtes sur la page 1sur 69

Table of Contents

1 Company Introduction 1

1.1 Mission: 1

1.2 Vision: 1

1.3 Aim: 1

1.4 Few of the CFE’s clients 1

2. Project Explanation 1

2.1 Introduction 1

2.2 Problem with existing system 1

2.3 Solution 1

2.4 Objective of CFEX 2

2.5 Benefits of CFEX 2

3. Requirements Of Project 1

3.1Hardware Requirements 1

3.2 Software Requirements 1

4. Technology Used 2

4.1 Why Mean Stack ? 2

4.2 What is mean Stack ? 3

4.2.1 MongoDb 3

4.2.2 Express 4

4.2.3 Angular JS 5

4.2.4 Node.js 7

4.3 Front End Technology 8

1
4.3.1 HTML 8

4.3.2 CSS 10

4.3.3 BootStrap 11

4.3.4 JavaScript 13

4.3.5 JQuery 15

4.4.1 Node.js 16

4.4.2 Express 19

4.4.3 Passport.js 21

5 Literature Survey 24

5.1 Existing System 24

5.2 Proposed System 24

5.3 Feasibility Study 24

5.3.1 Technical Feasibility 25

5.3.2 Operational Feasibility 25

5.3.3 Economical Feasibility 25

6 System Analysis and Design 26

6.1 Analysis of proposed System 26

6.2 Functional Specifications 27

6.3 Performance Requirement 28

7. Structure of Project 29

7.1 System Design : 29

7.2 Data Flow Diagram(DFDs) :


36

2
8 Methodology Used 39

8.1 Problems with traditional approach 39

8.2 Agile Methodology 39


Fig 2. Agile methodology flow chart 40

9 Testing 41

9.1 Testing:- 41

9.2Testing in strategies:- 41

9.2.2 Integration Testing 42

9.3 Test Approach:- 42

9.4 Validation:- 43

9.5 Evaluation:- 43

9.6 MAINTENANCE:- 44

10 Future Scope 45

11 Screenshots of CFEX 46

11.1 Registration page of CFEX 46


Fig 11.1 registration page of candidate 46

11.2 Login page 47


Fig 11.2 Login Page 47

11.3 Instructions Page 48


Fig 11.3 Instructions Page 48

11.4 Test View 49


Fig 11.4 Test View 49

11.5 Dashboard view 50


Fig 11.5 Dashboard view 50

11.6 Login page of admin 51

3
Fig 11.6 login Page of Admin 51

11.7 Dashboard of Admin 52


Fig 11.7 Dashboard of Admin 52

11.8 Test view of Admin 53


Fig 11.8 Test View of Admin 53

11.9 Delete Test 54


Fig 11.9 Delete test 54

11.9 Candidate view of Admin 55


Fig 11.9 candidate view of Admin 55

11. 10 Create test Admin 56

Fig 11.10 Test Details 56


Fig 11.11 create test 57
Fig 11.12 Publish test 57

12. References 58

12.1 website references 58

12.2 Book Reference 58

13. Appendix 59

13.1 Glossary 59

13.2 Abbreviations 60

4
1 Company Introduction
Center for Endeavors (CFE) India is an IT company dedicated to build quality softwares and
application. CFE was stablished in 2011 by a IITians.

CFE India is a leading software provider of solutions for Web Development, Mobile App
Development, Web Designing, Digital Marketing, and Product Development. Based in Noida
and Gurugram has operations worldwide in USA, UK, UAE, and Canada. CFE India is
focused on Software Development solutions with many experienced Software engineers.
CFE India working continuously to develop new software and web application that make life
easy and meet the customer need and expectations.

CFE India provide a full range of web services with expertise in Business Website Design,
Website Development, Website Maintenance, Website Redesign, Offshore Outsourcing, E-
commerce Web Development, CMS Web Development, Mobile Application Development,
Web Promotion etc.

1.1 Mission: CFE’s mission is to enhancing the business growth of our customers with
creative Design and Development to deliver market-defining high-quality solutions that
create value and reliable competitive advantage for our clients around the world.

1.2 Vision: CFE’s Vision is to provide top quality services in the fields of Application
Development, Open Source Customization, Business Consulting and Online Marketing
Consultation everything under one-roof.

1.3 Aim: Company aims towards building a team of people with exceptional record in
fields of academia, professional skills and industrial experience. We strive to take
forward the emerging trends and innovations in fields of Information Technologies to
keep a nerve on the latest and the upcoming in this industry.

1
1.4 Few of the CFE’s clients

1
2. Project Explanation
2.1 Introduction
CFEX is examination portal for companies , organizations and institutes to take test.
Companies , Organizations and Institutes can design their own test and assign test to
candidates to judge the true potential of candidates.

CFEX reduce the headache of take test and generate results for individual student. By the
use CFEX the cost in selection and recruitment reduced.

2.2 Problem with existing system


• Complex and Time Consuming : In general hiring process is a complex and
tedious task. It include several steps like inviting candidates for test, preparing
test, provide environment for candidates to give test, checking each test manually
to generate results, recruit or train employees to take test.
• Large Money Investment : Large amount of money spend on examination every
year to provide basic resources like sheet, pen and to avoid cheating . Company or
Organization may have to arrange separate infrastructure to take test.
• Not Accurate : Generally traditional approach of hiring doesn’t measure the true
capability of candidate as different companies have different requirements like
one company may look for employees having excellent literature skills while
other may look for employee having excellent technical skills.
• Not Economical : In current scenario test are taken on pages, which is not a
good choice in 21th century.
A system is required that does not require page and save energy and resources of
both candidate and organization.

2.3 Solution
CFEX is an initiative to ease the way of recruitment procedure. It is a web based
application that allow companies and organizations to take test in an affordable and
secure way.

1
CFEX provide an easy and worthy way to conduct examination by providing an secure
environment and easy to manage tools. Organizations or companies can setup their test as
per their requirement and allow competitors to give test according to their comfort. CFEX
can determine the level of difficulty of questions to determine the true potential of user.

Level of difficulty of questions increase with each correct answer and decrease with each
wrong answer.

CFEX has many advance features to restrict the user from cheating.

2.4 Objective of CFEX


• To develop an app that could be used for assessment across platforms ensuring safe
and proctored way of conducting examination.
• It will reduce the hectic job of manually assessing the answers given by the
candidates instead, the system will review the responses in no time.
• The results could be shown immediately to the candidates reducing their anxiety.
• It could generate various reports and graphs for evaluation purpose almost instantly
when and where required

2.5 Benefits of CFEX


1. It saves paper: You never have to print an exam for your students and hand them
out. Saves paper. Saves trees. Everybody happy.
2. It saves time: One can setup an exam in such a way that it will auto-grade itself. If
you only use multiple choice questions you never have to check an exam again. The
online exam system will take care of that hassle.
3. Saves Money: You don't need to buy any paper. On top of that you save on the
logistics: your students don't have to assemble in classroom to take the exam. They
can do it within a given time frame from their own device. You don't have to rent a
classroom. You don't have to hire someone to check the students taking the exam.
4. Secure: You can make a big question bank with a lot of questions. Every student gets
a random selection from that question bank. So it's of little use to share the questions
among the exam takers to give them a head start.

2
5. Statistical Analysis: It is easy to judge the performance by using graphs and charts.
CFEX can generate graphs and charts of based on different data and statistics

3
3. Requirements Of Project
3.1Hardware Requirements
➢ Client
o Processor : Intel Core to Duo or advance
o Ram : 2 GB
o Hard disk : 10 GB
➢ Developer
o Processor : Intel i3 processor or advance
o Ram : 4 GB
o Hard disk : 100 GB

3.2 Software Requirements


➢ Client
o Web Browser : Chrome , Mozilla Firefox etc.
o Operating System: any
➢ Developer
o Web Browser: Chrome , Mozilla Firefox etc.
o IDE : Visual Studio Code
o Testing Tools : Postman
o Database : MongoDb
o Programming : Node.js , Angular
o Operating System: any

1
4. Technology Used
CFEX is developed using mean Stack. The term MEAN stack refers to a collection of JavaScript
based technologies used to develop web applications. MEAN is an acronym for MongoDB,
ExpressJS , AngularJS and Node.js. From client to server to database, MEAN is full stack
JavaScript.

MEAN.JS will help you getting started and avoid useless grunt work and common pitfalls, while
keeping your application organized. Our goal is to create and maintain a simple and readable
open-source solution that you can use and trust in your projects.

4.1 Why Mean Stack ?


The main reason for choosing the MEAN stack over others is because of the use of a
common language for both client-side and server-side. Since, all these technologies are
written in JavaScript, your web development process becomes neat. Node.js is a platform
that brought JavaScript implementation on the server-side. With Angular.js, using
JavaScript on the front-end, it becomes easier to reuse code from back-end to front-end.

2
MEAN stack offers a modern approach to web development. It also makes use of the
power of modern SPAs (single-page applications), which does not require entirely
refreshing a web page for every server request like most traditional web applications do.
Today there is a trend to develop multiple frameworks that correspond to a single
programming language and form a full-stack solution. But, as of now, using MEAN stack
is a very effective approach to web development.

4.2 What is mean Stack ?


MEAN.JS is a full-stack JavaScript solution that helps you build fast, robust, and
maintainable production web applications using MongoDB, Express, AngularJS, and
Node.js .

MEAN is an acronym for

M MongoDb (database)
E Express (backend web framework)
A Angular (frontend framework )
N Node.js (backend runtime environment )

4.2.1 MongoDb
MongoDB is a schemaless NoSQL database system. MongoDB saves data in binary
JSON format which makes it easier to pass data between client and server.

MongoDB is a free and open-source cross-platform document-oriented database program.


Classified as a NoSQL database program, MongoDB uses JSON-like documents with
schemas.

License: Various; see § Licensing

Stable release: 3.6.4 / 13 April 2018; 6 days ago

Preview release: 3.5.12 / 22 August 2017; 7 months ago

Operating system: Windows Vista and later, Linux, OS X 10.7 and later, Solaris,
FreeBSD

3
Initial release date: 2009

• MongoDB stores data in flexible, JSON-like documents, meaning fields can vary
from document to document and data structure can be changed over time

• The document model maps to the objects in your application code, making data easy
to work with

• Ad hoc queries, indexing, and real time aggregation provide powerful ways to access
and analyze your data

• MongoDB is a distributed database at its core, so high availability, horizontal scaling,


and geographic distribution are built in and easy to use6

• MongoDB is free and open-source, published under the GNU Affero General Public
License

4.2.2 Express
Express is lightweight framework used to build web applications in Node. It provides a
number of robust features for building single and multi page web application. Express is
inspired by the popular Ruby framework, Sinatra.

Developer(s): TJ Holowaychuk, StrongLoop and others

License: MIT License

Stable release: 4.16.1

4
Initial release: November 16, 2010; 7 years ago

Written in: JavaScript

Platform: Node.js

• Express provides a minimal interface to build our applications. It provides us the


tools that are required to build our app. It is flexible as there are numerous
modules available on npm , which can be directly plugged into Express.
• Express is very flexible and pluggable. It produces HTML , create dynamic code ,
support reusability.

4.2.3 Angular JS
Angular JS is an open source JavaScript framework that is used to build web
applications. It can be freely used, changed and shared by anyone.

Angular Js is developed by Google.It is an excellent framework for building single phase


applications and line of business applications.

Stable release: 1.6.9 / February 3, 2018; 2 months ago

Developed by: Google

Initial release: October 20, 2010; 7 years ago

License: MIT License

Written in: JavaScript

5
Platform: Cross-platform, see Legacy browser support

• Dependency Injection in Angular.js specifies a design pattern in which


components are given their dependencies instead of hard coding them within the
component.
• AngularJS creates a two way data-binding between the select element and the
orderProp(Order data model shows the relationship between database tables that
contain information about orders) model. orderProp is then used as the input for
the orderBy filter.
• Angular JS is designed in a way that we can test right from the start. So, it is very
easy to test any of its components through unit testing and end-to-end testing.
• In Angular JS, it is very easy to develop application in a clean MVC way. You
just have to split your application code into MVC components i.e. Model, View
and the Controller.

The AngularJS framework works by first reading the HTML page, which has additional
custom tag attributes embedded into it. 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.

According to JavaScript analytics service Libscore, AngularJS is used on the websites of


Wolfram Alpha, NBC, Walgreens, Intel, Sprint, ABC News, and about 12,000 other sites
out of 1 million tested in October 2016. AngularJS is currently in the top 100 of the most
starred projects on GitHub.

AngularJS is the frontend part of the MEAN stack, consisting of MongoDB database,
Express.js web application server framework, Angular.js itself, and Node.js server
runtime environment.

6
4.2.4 Node.js
Node.js is a server side JavaScript execution environment. It’s a platform built on Google
Chrome’s V8 JavaScript runtime. It helps in building highly scalable and concurrent
applications rapidly.

Developer(s): Node.js Developers, Joyent, contributors

License: MIT

Development status: Active (complete release list)

Original author: Ryan Dahl

Stable release: 10.0.0 & 8.11.1 (LTS) / April 24, 2018; 1 day ago & March 29, 2018; 27
days ago

Written in: C, C++, JavaScript

Following is a list of some important features of Node.js that makes it the first choice of
software architects.

Extremely fast: Node.js is built on Google Chrome's V8 JavaScript Engine, so its library
is very fast in code execution.

I/O is Asynchronous and Event Driven: All APIs of Node.js library are asynchronous
i.e. non-blocking. So a Node.js based server never waits for an API to return data. The
server moves to the next API after calling it and a notification mechanism of Events of
Node.js helps the server to get a response from the previous API call. It is also a reason
that it is very fast.

Single threaded: Node.js follows a single threaded model with event looping.

7
Highly Scalable: Node.js is highly scalable because event mechanism helps the server to
respond in a non-blocking way.

No buffering: Node.js cuts down the overall processing time while uploading audio and
video files. Node.js applications never buffer any data. These applications simply output
the data in chunks.

Open source: Node.js has an open source community which has produced many
excellent modules to add additional capabilities to Node.js applications.

License: Node.js is released under the MIT license.

4.3 Front End Technology


4.3.1 HTML
Hypertext Markup Language is the standard markup language for creating web pages and
web applications. With Cascading Style Sheets and JavaScript, it forms a triad of
cornerstone technologies for the World Wide Web. Wikipedia

Developed by: W3C & WHATWG

Type of format: Document file format

Standards: ISO/IEC 15445; W3C HTML latest recommendation; HTML Living Standard

Extended from: SGML

8
Extended to: XHTML

Latest release: HTML5

• HTML is the standard markup language for creating Web pages.


• HTML stands for Hyper Text Markup Language
• HTML describes the structure of Web pages using markup
• HTML elements are the building blocks of HTML pages
• HTML elements are represented by tags
• It is used to create the basic structure of website. It is the building base of all the
front end technologies.

HTML elements are the building blocks of HTML pages. With HTML constructs, images
and other objects such as interactive forms may be embedded into the rendered page.
HTML provides a means to create structured documents by denoting structural semantics
for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements
are delineated by tags, written using angle brackets. Tags such as <img /> and <input />
directly introduce content into the page. Other tags such as <p> surround and provide
information about document text and may include other tags as sub-elements. Browsers
do not display the HTML tags, but use them to interpret the content of the page.

HTML can embed programs written in a scripting language such as JavaScript, which
affects the behavior and content of web pages. Inclusion of CSS defines the look and
layout of content. The World Wide Web Consortium (W3C), maintainer of both the
HTML and the CSS standards, has encouraged the use of CSS over explicit
presentational HTML since 1997.

9
4.3.2 CSS
Cascading Style Sheets is a style sheet language used for describing the presentation of a
document written in a markup language like HTML. CSS is a cornerstone technology of
the World Wide Web, alongside HTML and JavaScript.

Developed by: Håkon Wium Lie; Bert Bos; World Wide Web Consortium

Type of format: Style sheet language

Initial release: December 17, 1996; 21 years ago

CSS is designed to enable the separation of presentation and content, including layout,
colors, and fonts. This separation can improve content accessibility, provide more
flexibility and control in the specification of presentation characteristics, enable multiple
web pages to share formatting by specifying the relevant CSS in a separate .css file, and
reduce complexity and repetition in the structural content.

Separation of formatting and content also makes it feasible to present the same markup
page in different styles for different rendering methods, such as on-screen, in print, by
voice (via speech-based browser or screen reader), and on Braille-based tactile devices.
CSS also has rules for alternate formatting if the content is accessed on a mobile device.

10
The name cascading comes from the specified priority scheme to determine which style
rule applies if more than one rule matches a particular element. This cascading priority
scheme is predictable.

The CSS specifications are maintained by the World Wide Web Consortium (W3C).
Internet media type (MIME type) text/css is registered for use with CSS by RFC 2318
(March 1998). The W3C operates a free CSS validation service for CSS documents.

• CSS stands for Cascading Style Sheets


• CSS describes how HTML elements are to be displayed on screen, paper, or in
other media
• CSS saves a lot of work. It can control the layout of multiple web pages all at
once
• CSS is used to make interactive websites

4.3.3 BootStrap
Bootstrap is a free front-end framework for faster and easier web development

Bootstrap includes HTML and CSS based design templates for typography, forms,
buttons, tables, navigation, modals, image carousels and many other, as well as optional
JavaScript plugins

Bootstrap also gives you the ability to easily create responsive designs

11
Bootstrap is an open source toolkit for developing with HTML, CSS, and JS. Quickly
prototype your ideas or build your entire app with our Sass variables and mixins,
responsive grid system, extensive prebuilt components, and powerful plugins built on
jQuery.

Original author(s): Mark Otto, Jacob Thornton

License: MIT License (Apache License 2.0 prior to 3.1.0)

Stable release: 4.1.0 / April 9, 2018; 14 days ago

Initial release date: August 2011

Platform: Web browser engine

Written in: HTML, Cascading Style Sheets, Less (v3), Sass (v4), JavaScript

Advantages of Bootstrap:

• Easy to use: Anybody with just basic knowledge of HTML and CSS can start
using Bootstrap
• Responsive features: Bootstrap's responsive CSS adjusts to phones, tablets, and
desktops
• Mobile-first approach: In Bootstrap 3, mobile-first styles are part of the core
framework
• Browser compatibility: Bootstrap is compatible with all modern browsers
(Chrome, Firefox, Internet Explorer, Safari, and Opera)

12
4.3.4 JavaScript
JavaScript ("JS" for short) is a full-fledged dynamic programming language that, when
applied to an HTML document, can provide dynamic interactivity on websites. It was
invented by Brendan Eich, co-founder of the Mozilla project, the Mozilla Foundation,
and the Mozilla Corporation.

First appeared: December 4, 1995; 22 years ago

Stable release: ECMAScript 2017 / June 2017; 10 months ago

Typing discipline: Dynamic, duck

Developer: Netscape Communications Corporation, Mozilla Foundation, Ecma


International

Designed by: Brendan Eich

Paradigm: Multi-paradigm: object-oriented (prototype-based), imperative, functional,


event-driven

JavaScript is incredibly versatile. You can start small, with carousels, image galleries,
fluctuating layouts, and responses to button clicks. With more experience, you'll be able

13
to create games, animated 2D and 3D graphics, comprehensive database-driven apps, and
much more!

JavaScript itself is fairly compact yet very flexible. Developers have written a large
variety of tools on top of the core JavaScript language, unlocking a vast amount of extra
functionality with minimum effort. These include:

Browser Application Programming Interfaces (APIs) — APIs built into web browsers,
providing functionality like dynamically creating HTML and setting CSS styles,
collecting and manipulating a video stream from the user's webcam, or generating 3D
graphics and audio samples.

Third-party APIs to allow developers to incorporate functionality in their sites from other
content providers, such as Twitter or Facebook.

Third-party frameworks and libraries you can apply to your HTML to allow you to
rapidly build up sites and applications.

JavaScript (JS) is a programming language mostly used to dynamically script webpages


on the client side.

JavaScript provide inbuilt functions that make client side programming very easy.

It is used for client side verification, which help to reduce the load on server.

14
4.3.5 JQuery
jQuery is a lightweight, "write less, do more", JavaScript library.

The purpose of jQuery is to make it much easier to use JavaScript on your website.

jQuery takes a lot of common tasks that require many lines of JavaScript code to
accomplish, and wraps them into methods that you can call with a single line of code.

jQuery also simplifies a lot of the complicated things from JavaScript, like AJAX calls
and DOM manipulation.

The jQuery library contains the following features:

HTML/DOM manipulation

• CSS manipulation
• HTML event methods
• Effects and animations
• AJAX

Features of JQuery

• DOM manipulation
The JQuery made it easy to select DOM elements, traverse them and modifying their
content by using cross-browser open source selector engine called Sizzle.
• Event handling
The JQuery offers an elegant way to capture a wide variety of events, such as a user
clicking on a link, without the need to clutter the HTML code itself with event
handlers.
• AJAX Support
The Jquery helps you a lot to develop a responsive and feature-rich site using AJAX
technology.
• Animations
The JQuery comes with plenty of built-in animation effects which you can use in your
websites.
• Lightweight
15
The JQuery is very lightweight library - about 19KB in size ( Minified and gzipped ).
• Cross Browser Support
The JQuery has cross-browser support, and works well in IE 6.0+, FF 2.0+, Safari
3.0+, Chrome and Opera 9.0+.
• Latest Technology
The JQuery supports CSS3 selectors and basic XPath syntax.

4.4 Back End Technology

4.4.1 Node.js
Node.js is javaScript framework for backend server technology.

Node.js is an open source server environment

Node.js is free

Node.js runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.)

Node.js uses JavaScript on the server

Node.js is an open-source, cross-platform JavaScript run-time environment that executes


JavaScript code server-side. Historically, JavaScript was used primarily for client-side
scripting, in which scripts written in JavaScript are embedded in a webpage's HTML and
run client-side by a JavaScript engine in the user's web browser. Node.js lets developers
use JavaScript for server-side scripting—running scripts server-side to produce dynamic
web page content before the page is sent to the user's web browser. Consequently,
Node.js represents a "JavaScript everywhere" paradigm, unifying web application

16
development around a single programming language, rather than different languages for
server side and client side scripts.

Node.js = Runtime Environment + JavaScript Library

Original author(s) : Ryan Dahl

Developer(s) : Node.js Developers, Joyent, contributors

Initial release : May 27, 2009; 8 years ago

Stable release : 10.0.0 & 8.11.1 (LTS) / April 24, 2018; 5 days ago & March 29, 2018; 31
days ago

Repository : https://github.com/nodejs/node

Development status : Active (complete release list)

Written in : C, C++, JavaScript

Operating system : Linux, macOS, Solaris, FreeBSD, OpenBSD, Microsoft Windows


(older versions require Cygwin), webOS, NonStop OS

Type : Event-driven networking

License : MIT

Website : nodejs.org

Features of Node.js

Following are some of the important features that make Node.js the first choice of
software architects.

Asynchronous and Event Driven − All APIs of Node.js library are asynchronous, that
is, non-blocking. It essentially means a Node.js based server never waits for an API to
return data. The server moves to the next API after calling it and a notification

17
mechanism of Events of Node.js helps the server to get a response from the previous API
call.

Very Fast − Being built on Google Chrome's V8 JavaScript Engine, Node.js library is
very fast in code execution

Single Threaded but Highly Scalable − Node.js uses a single threaded model with
event looping. Event mechanism helps the server to respond in a non-blocking way and
makes the server highly scalable as opposed to traditional servers which create limited
threads to handle requests. Node.js uses a single threaded program and the same program
can provide service to a much larger number of requests than traditional servers like
Apache HTTP Server.

No Buffering − Node.js applications never buffer any data. These applications simply
output the data in chunks.

License − Node.js is released under the MIT license

Where to Use Node.js?

Following are the areas where Node.js is proving itself as a perfect technology partner.

I/O bound Applications

Data Streaming Applications

Data Intensive Real-time Applications (DIRT)

JSON APIs based Applications

Single Page Applications

Where Not to Use Node.js?

It is not advisable to use Node.js for CPU intensive applications.

18
4.4.2 Express
Express.js, or simply Express, is a web application framework for Node.js, released as
free and open-source software under the MIT License.which is specifically designed for
building single-page, multi-page, and hybrid web applications. It has become the standard
server framework for node.js. Express is the backend part of something known as the
MEAN stack.

Developer(s): TJ Holowaychuk, StrongLoop and others

License: MIT License

Stable release: 4.16.1

Initial release: November 16, 2010; 7 years ago

Written in: JavaScript

Platform: Node.js

It has become the standard server framework for node.js. Express is the backend part of
something known as the MEAN stack.

The MEAN is a free and open-source JavaScript software stack for building dynamic
web sites and web applications which has the following components;

1) MongoDB - The standard NoSQL database

19
2) Express.js - The default web applications framework

3) Angular.js - The JavaScript MVC framework used for web applications

4) Node.js - Framework used for scalable server-side and networking applications.

The Express.js framework makes it very easy to develop an application which can be
used to handle multiple types of requests like the GET, PUT, and POST and DELETE
requests.It provides a robust set of features which help to build several web and mobile
applications. It enables the rapid development of any Node based Web applications. The
following are some of the core features which are offered by the Express framework.

• It permits to set up middlewares in order to respond to the HTTP Requests.

• It defines a routing table, which can be used to achieve different actions based on the
HTTP Method and URL.

• It permits to dynamically render the HTML Pages which is completely based on passing
arguments to the templates.

20
4.4.3 Passport.js
Passport is authentication middleware for Node. It is designed to serve a singular purpose:
authenticate requests. When writing modules, encapsulation is a virtue, so Passport delegates all
other functionality to the application. This separation of concerns keeps code clean and
maintainable, and makes Passport extremely easy to integrate into an application.

In modern web applications, authentication can take a variety of forms. Traditionally, users log
in by providing a username and password. With the rise of social networking, single sign-on
using an OAuth provider such as Facebook or Twitter has become a popular authentication
method. Services that expose an API often require token-based credentials to protect access.

Passport recognizes that each application has unique authentication requirements. Authentication
mechanisms, known as strategies, are packaged as individual modules. Applications can choose
which strategies to employ, without creating unnecessary dependencies.

Despite the complexities involved in authentication, code does not have to be complicated.

app.post('/login', passport.authenticate('local', { successRedirect: '/',

failureRedirect: '/login' }));

Installation command : $ npm install passport

Authenticate:

Authenticating requests is as simple as calling passport.authenticate() and specifying which


strategy to employ. authenticate()'s function signature is standard Connect middleware, which
makes it convenient to use as route middleware in Express applications.

sample code :

app.post('/login',

passport.authenticate('local'),

function(req, res) {

// If this function gets called, authentication was successful.

// `req.user` contains the authenticated user.


21
res.redirect('/users/' + req.user.username);

});

By default, if authentication fails, Passport will respond with a 401 Unauthorized status, and any
additional route handlers will not be invoked. If authentication succeeds, the next handler will be
invoked and the req.user property will be set to the authenticated user.

Redirects :

A redirect is commonly issued after authenticating a request.

sample code :

app.post('/login',

passport.authenticate('local', { successRedirect: '/',

failureRedirect: '/login' }));

this case, the redirect options override the default behavior. Upon successful authentication, the
user will be redirected to the home page. If authentication fails, the user will be redirected back
to the login page for another attempt.

Strategies

Passport uses what are termed strategies to authenticate requests. Strategies range from verifying
a username and password, delegated authentication using OAuth or federated authentication
using OpenID.

Before asking Passport to authenticate a request, the strategy (or strategies) used by an
application must be configured.

Strategy used in CFEX Project :

JWT :

Introduction

Almost every web and mobile app nowadays has authentication. Most of them offer different
login methods like Facebook, Google or email/password at once.

22
Passport is a Node.js middleware that offers a variety of different request authentication
strategies that are easy to implement. By default, it stores the user object in session.

JSON Web Tokens is an authentication standard that works by assigning and passing around an
encrypted token in requests that helps to identify the logged in user, instead of storing the user in
a session on the server and creating a cookie. It has different integrations including a Node.js
module.

Below is a tutorial about using this two modules together and setting up an authentication on an
express based backend. Luckily, Passport allows an option to store the user object in request
instead of the session.

• When the user logs in, the backend creates a signed token and returns it in response
• The client saves the token locally (typically in localStorage) and sends it back in
every subsequent request that needs authentication

• All requests needing authentication pass through a middleware that checks the
provided token and allows the request only if the token is verified

23
5 Literature Survey
5.1 Existing System
Current System has lot of problems and constrains.

• Current System require a lot of manual efforts.


• Require a lot of time and money to gather resource.
• May require recruitment and hiring of special person or team to take test.
• Require a lot of planning.
• Current System is not capable to judge the true potential of candidate.
• With current System it takes a lot of time to generate results.
• Managing test and providing suitable environment is a great headache.

5.2 Proposed System


A system is required which can handle the following things.

• Can generate test and take test automatically.


• Provide a readymade and suitable environment to take test.
• A system which is cheap and easy to maintain.
• No special training or efforts are required to generate , manage and take test.
• A system which is time efficient and secure.
• A system which provides efficient ways to judge the true potential of candidate.

5.3 Feasibility Study


Preliminary investigation examines project feasibility; the likelihood the system will be
useful to the organization. The main objective of the feasibility study is to test the
Technical, Operational and Economical feasibility for adding new modules and
debugging old running system. All systems are feasible if they are given unlimited
resources and infinite time. There are aspects in the feasibility study portion of the
preliminary investigation:

• Technical Feasibility
• Operation Feasibility
• Economical Feasibility

24
5.3.1 Technical Feasibility
The technical issue usually raised during the feasibility stage of the investigation includes
the following:

• Does the necessary technology exist to do what is suggested?


• Do the proposed equipments have the technical capacity to hold the data required
to use the new system?
• Will the proposed system provide adequate response to inquiries, regardless of the
number or location of users?
• Can the system be upgraded if developed?

Are there technical guarantees of accuracy, reliability, ease of access and data security?

5.3.2 Operational Feasibility


• User-friendly : Both the admin and candidate feel comfortable and confident
while using the software. He should be able to find all the related data and details
and not be able to see unrelated data.
• Reliability: Project should be able to handle all the errors and exceptions like
network failure.
• Security : The web server and database server should be protected from hacking,
virus etc.
• Portability : Web potable should be able to work in all browsers and operating
systems. And should to able to shift to other server if anything goes wrong.
• Maintenance : Finish project should be easy to maintain and cost of maintenance
should be less.

5.3.3 Economical Feasibility


The computerized system takes care of the present existing system’s data flow and
procedures completely and should generate all the reports of the manual system besides a
host of other management reports. It should be built as a web based application with
separate web server and database server. This is required as the activities are spread
throughout the organization customer wants a centralized database. Further some of the
linked transactions take place in different locations.

25
6 System Analysis and Design

6. 1 Analysis of proposed System


CFEX is distributed project. A distributed system is a network that consists of
autonomous computers that are connected using a distribution middleware. They help in
sharing different resources and capabilities to provide users with a single and integrated
coherent network.

6.1.1. OBJECTIVE: The system analyst must be aware of exactly what the user requires
room a specific system. That is management goals or objectives must be fully
understood.

6.1.2. CONSTRAINTS: The analyst and the user must both recognize any limitations or
constraints that may be imposed when the analyst is designing a computerized system.
Some types are:

• Legal
• Budgetary Constraints
• Equipment Constraints

26
6.1.3. CONTROLS: The user must familiarize the analyst with the ways in which errors
are minimized under the current system.

6.1.4. INPUT: All input data that server as their basis for, desired output must be studied
where all data used for processing originates. How often is each type of input generate? If
there are code or abbreviations used for input does the analyst have complete list of these.
What happens to input documents after has been processed?

6.1.5. PROCESSING: The analyst must then analyze the processing or type of
operations that are currently performed in order to achieve the desired results.

6.2 Functional Specifications


CFEX will be a generalized Online Examination portal. The entire project is divided into
3 major modules.

• Candidate side: This section will focus on the candidate experience of taking
examination. Functionalities include sign-up, login, available tests, completed tests,
proctoring setup by admin, test portal and result view.
• Organization Admin side: This section is responsible for managing tests, managing
candidates, setup proctoring conditions, assigning tests, generating results and
assigning roles and permissions to different users and check billing cycle and pay bill.
• Super-Admin side: Super-Admin can manage organization admin plus has all the
permissions of an admin. Manage billings of different organizations, setup different
schemes and offers, manage proctoring support based on schemes.

Apart from the three major modules, the project is also depended on 4 services namely:

• User Service: This service is responsible for the user information which includes
all the admins and super-admin.
• Result Service: This service contains candidates response for a test and handles
result generation.
• Test Service: This service has all the information about the tests and assignation
tests to candidates.
• Billing Service: This service contains billing information about the organizations.

27
6.3 Performance Requirement
Performance is measured in terms of the output provided by the application. Requirement
specification plays an important part in the analysis of a system. Only when the
requirement specifications are properly given, it is possible to design a system, which
will fit into required environment. It rests largely with the users of the existing system to
give the requirement specifications because they are the people who finally use the
system. This is because the requirements have to be known during the initial stages so
that the system can be designed according to those requirements. It is very difficult to
change the system once it has been designed and on the other hand designing a system,
which does not cater to the requirements of the user, is of no use.

The requirement specification for any system can be broadly stated as given below:

• The system should be able to interface with the existing system


• The system should be accurate
• The system should be better than the existing system

The existing system is completely dependent on the user to perform all the duties.

28
7. Structure of Project
7.1 System Design :
Systems design is the process or art of defining the architecture, components, modules,
interfaces, and data for a system to satisfy specified requirements. One could see it as the
application of systems theory to product development. There is some overlap and synergy with
the disciplines of systems analysis, systems architecture and systems engineering

7.2 Data Flow Diagram(DFDs) :


A data flow diagram (DFD) maps out the flow of information for any process or system. It uses
defined symbols like rectangles, circles and arrows, plus short text labels, to show data inputs,
outputs, storage points and the routes between each destination. Data flowcharts can range from
simple, even hand-drawn process overviews, to in-depth, multi-level DFDs that dig progressively
deeper into how the data is handled.

7.2.1 DFD Notations :

29
7.2.2 Usecase Diagram:

A use case diagram at its simplest is a representation of a user's interaction with the system that
shows the relationship between the user and the different Usecases in which the user is involved.
A use case diagram can identify the different types of users of a system and the different use
cases and will often be accompanied by other types of diagrams as well.

7.2.3 Usecase Notations :

7.2.1 CFEX Data Flow Diagrams :

a. Level 1 (Super Admin) :

30
Explaination :

Entity :
Candidate : It may be a student of 11th standard or 3rd year student of B.tech Course or
an engineer appearing in a job interview for Software Developer.
Processes :
Login : Candidate logins to it’s account using credentials such as Username and
password .
Register : If candidate has not yet registered itself then it register with CFEX by giving a
set of details and redirects to Logins process.
Guest Login : It is temporary login which allows only to appear for a test but other
feature remain unavailable for this type of login. Candidate Logins with it’s email id and
full name.
Notifications : This process contains all notifications related to test timings, upcoming
tests and results.

View Practice Tests: It shows practice tests available for candidate so that it can check

31
it’s preparation and it’s calliber.
View Assigned Tests : It shows all tests which are assigned to candidate by
Organizational admin to complete.
Test Given : It shows all tests which are completed by candidate.
Profile Edit : This process enables candidate to edit it’s profile details.
View Result : It shows result of each test in which candidate has appeared.
Explaination :
This usecase defines working and responsiblities of Super Admin.
After Login Super Admin goes to Account Dashboard from where it can
perform following operations :
1. Manage Billling
2. Generate Offers
3. Manage Organisational Admins
4. Update CFEX Website Content

b. LEVEL 2 (Organisational Admin) :

Explanation :

32
Entity :
Admin : This is an Organizational Admin at Organization level such as School, College
or a Company and manages all organization level activities.
Processes :
Login : Admin logins first using assigned credentials to access it’s account. It manages
basically two main activities such as “Manage Tests” and “Manage
Candidate Groups”.

Manage Tests : This Process contains all test related activities which makes all tests
effective and suitable for candidates. It contains creation, updation and deletion of tests.

Manage Candidate Groups : This process handles all Candidate Groups which contains
candidate relating to a specific category such as Standard
wise say High School students or 5th semester College Students or Candidates for Job of
Software Developer. It contains creation and deletion of Groups.
Assign Tests to Groups : In this process a test is assigned to all candidates of specific
Group of Candidates.
View Test Results : This process shows result of a Test that is given by a group of
candidates.

c. LEVEL 3 (Candidate )

33
Here Candidate has two options to login one as normal login and other as guest login.
Guest Login : With this type of Login Candidate is only able to give test. It can’t access
other available features. This type of login is suitable for Job Candidates appearing in
Interview.
Normal Login : This login gives access to all available features for Candidate. First
Candidate goes to Dashboard then it has different features to avail.
Notifications : This process contains all notifications related to test timings,
upcoming tests and results.
View Practice Tests: It shows practice tests available for candidate so that it
can check it’s preparation and it’s caliber.
View Assigned Tests : It shows all tests which are assigned to candidate by
Organizational admin to complete.
Test Given : It shows all tests which are completed by candidate.
Profile Edit : This process enables candidate to edit it’s profile details.
View Result : It shows result of each test in which candidate has appeared.

34
7.3 Use Case Diagram for CFEX :

Super Admin :

Explanation :

This usecase defines working and responsibilities of Super

Admin.

After Login Super Admin goes to Account Dashboard from where it can perform
following operations :

1. Manage Billing

2. Generate Offers

3. Manage Organizational Admins

35
4. Update CFEX Website Content

Organizational Admin :

Explanation :

After Login Organizational Admin goes to Account Dashboard from where it can go to three
different sections :

1. Overview

2. Manage Group Candidates

3. Manage Tests

Overview : This case is special because admin can check overall information at organization
level.

View all tests: Admin can check all tests that are created by it for candidates.

36
All Candidates : Admin can check a list of all registered candidate aspiring to give tests.

Average Score : This case gives overall average scoring of all candidate as a single value. Say
80 % means average passing score of all candidate is 80%.

Ongoing tests : This case shows all the tests which are intended to be hold in coming days.

Recent Active Tests : This case show all tests which are active means candidates are appearing
for test at present.

Candidate

Here Candidate has two options to login one as normal login and other as guest login.

37
Guest Login : With this type of Login Candidate is only able to give test. It can’t access
other available features. This type of login is suitable for Job Candidates appearing in
Interview.

Normal Login : This login gives access to all available features for Candidate. First
Candidate goes to Dashboard then it has different features to avail.

Notifications : This process contains all notifications related to test timings, upcoming
tests and results.

View Practice Tests: It shows practice tests available for candidate so that it

can check it’s preparation and it’s caliber.

View Assigned Tests : It shows all tests which are assigned to candidate by
Organizational admin to complete.

Test Given : It shows all tests which are completed by candidate.

Profile Edit : This process enables candidate to edit it’s profile details.

View Result : It shows result of each test in which candidate has appeared.

38
8 Methodology Used
8.1 Problems with traditional approach
In traditional software development methodologies like Waterfall model, a project can
take several months or years to complete and the customer may not get to see the end
product until the completion of the project.

To overcome this Agile methodology was introduced. In this methodology each project
is broken up into several ‘Iterations’.

8.2 Agile Methodology


• In this methodology each project is broken up into several ‘Iterations’.

• All Iterations should be of the same time duration (between 2 to 8 weeks).

• At the end of each iteration, a working product should be delivered.

• In simple terms, in the Agile approach the project will be broken up into 10 releases
(assuming each iteration is set to last 4 weeks).

• Rather than spending 1.5 months on requirements gathering, in Agile software


development, the team will decide the basic core features that are required in the
product and decide which of these features can be developed in the first iteration.

• Any remaining features that cannot be delivered in the first iteration will be taken up
in the next iteration or subsequent iterations, based on priority.

• At the end of the first iterations, the team will deliver a working software with the
features that were finalized for that iteration.

• There will be 10 iterations and at the end of each iteration the customer is delivered a
working software that is incrementally enhanced and updated with the features that
were shortlisted for that iteration.

39
Fig 2. Agile methodology flow chart

40
9 Testing
9.1 Testing:-
Testing is a process, which reveals errors in the program. It is the major quality measure
employed during software development during software development. During testing, the
program is executed with a set of test cases and the output of the program for the test cases is
evaluated to determine if the program is performing as it is expected to perform.

9.2Testing in strategies:-
In order to make sure that the system does not have errors, the different levels of testing
strategies that are applied at differing phases of software development are:

9.2.1 Unit testing:-

Unit Testing is done on individual modules as they are completed and become
executable. It is confined only to the designer's requirements.

Each module can be tested using the following two Strategies

➢ Black Box Testing:

In this strategy some test cases are generated as input conditions that fully execute all
functional requirements for the program. This testing has been uses to find errors in the
following categories:

• Incorrect or missing functions


• Interface errors
• Errors in data structure or external database access
• Performance errors
• Initialization and termination errors.

In this testing only the output is checked for correctness. The logical flow of the data is
not checked.

➢ White Box Testing

41
In this the test cases are generated on the logic of each module by drawing flow graphs of
that module and logical decisions are tested on all the cases. It has been uses to generate
the test cases in the following cases:

• Guarantee that all independent paths have been executed.


• Execute all logical decisions on their true and false Sides.
• Execute all loops at their boundaries and within their operational bounds
• Execute internal data structures to ensure their validity.

9.2.2 Integration Testing


Integration testing ensures that software and subsystems work together a whole. It tests
the interface of all the modules to make sure that the modules behave properly when
integrated together.

➢ System Testing:-

Involves in-house testing of the entire system before delivery to the user. It's aim is to
satisfy the user the system meets all requirements of the client's specifications.

➢ Acceptance Testing:-

It is a pre-delivery testing in which entire system is tested at client's site on real world
Data to find errors

9.3 Test Approach:-


Testing can be done in two ways:-

• Bottom up approach
• Top down approach

9.3.1 Bottom up Approach:-

Testing can be performed starting from smallest and lowest level modules and proceeding
one at a time. For each module in bottom up testing a short program executes the module
and provides the needed data so that the module is asked to perform the way it will when

42
embedded within the larger system. When bottom level modules are tested attention turns
to those on the next level that use the lower level ones they are tested individually and
then linked with the previously examined lower level modules.

9.3.2 Top down approach:-

This type of testing starts from upper level modules. Since the detailed activities usually
performed in the lower level routines are not provided stubs are written. A stub is a
module shell called by upper level module and that when reached properly will return a
message to the calling module indicating that proper interaction occurred. No attempt is
made to verify the correctness of the lower level module.

9.4 Validation:-
The system has been tested and implemented successfully and thus ensured that all the
requirements as listed in the software requirements specification are completely fulfilled.
In case of erroneous input corresponding error messages are displayed.

9.5 Evaluation:-
In evaluation we prepare the team to evaluate the system. The review team prepares a
formal review plan around the objectives of the review, the type of evaluation to be
carried out and the time schedule required. An overall plan covers the following areas:

Administrative plan:-

Review area objectives, operating costs, actual operating performance and benefits.

Personnel requirements plan:-

Review performance objectives and training performance to data.

Hardware Plan:-

Review performance specifications. All plans have been done by taken proper care and
seriousness and each module is evaluated using simulated data. This review not only
evaluated how well the current system is designed and implemented, but also is a
valuable source of information that can be applied to the next system project.

43
9.6 MAINTENANCE:-
Maintenance is the last part of the System Development Life Cycle that is actually the
implementation of the post-implementation review plan. When this system is installed it
is used for long period. The average life of a system is 4 to 6 years and maximum used
for 10 years. However, this period of use brings with it the need to continually maintain
the system, but this system can be modified and new technologies can be used which are
prevalent in market at that period of time.

44
10 Future Scope
CFEX with its features and capabilities looks very promising following fields.

• CFEX can be used by companies and organization to recruit new employees as it is a


better way to judge the capabilities of an employee
• CFEX can be used by colleges and schools for the practice of students, as teacher doesn’t
have to check the answers manually. CFEX can generate the result itself.
• CFEX can be used by students to measure their performance. CFEX can generate graphs
and charts to show their performance.
• It can be replaced by any offline examination system to minimize the use of paper and
other resources.
• With the introduction of features of video calling and biometric it can be used in exams
like SSC and military selections.

45
11 Screenshots of CFEX

11.1 Registration page of CFEX

Fig 11.1 registration page of candidate

By the above page Candidate can register to CFEX by providing the required details like name ,
branch , email id , phone number etc.

46
11.2 Login page

Fig 11.2 Login Page


If the user is already registered then he can provide the necessary credentials i.e.. username and
password.

If user forgot his password then he can click on the “forgot your password” link to retrieve the
password. Password reset link will be send to the registered email id.

47
11.3 Instructions Page

Fig 11.3 Instructions Page

Before starting the test candidate will be provided by the color codes , instructions and rules to
be followed by the candidates

48
11.4 Test View

Fig 11.4 Test View

This is the Test view of CFEX , user can click on the answer and click on next to submit ,
Candidate can view all the question and his response to the question i.e.. answered , not
answered or under review.

49
11.5 Dashboard view

Fig 11.5 Dashboard view


This is the dashboard of candidate, here candidate can view his profile and check all the test
assigned to him or given by him.

50
11.6 Login page of admin

Fig 11.6 login Page of Admin

By using this page organizational admin can login to his dashboard by providing his username
and password.

51
11.7 Dashboard of Admin

Fig 11.7 Dashboard of Admin

This is the dashboard of admin , here admin can all the necessary details like number of
candidates registered , Number of test available , social activity etc.

52
11.8 Test view of Admin

Fig 11.8 Test View of Admin


This is the page through which Admin can manage test

• Admin can publish test


• Delete test
• Modify test
• Assign test

53
11.9 Delete Test

Fig 11.9 Delete test


This the view when test is deleted by the Admin, If the test is deleted then the test is archived in
database, So that if necessary it can be retrieved.

54
11.9 Candidate view of Admin

Fig 11.9 candidate view of Admin


This is the page where admin can view all the candidates and activate and deactivate candidates.

55
11. 10 Create test Admin

Test details

Fig 11.10 Test Details


Admin have to fill the test details like name of test , test category , level of test etc. in this page

Create Test

56
Fig 11.11 create test
Admin have to upload a .csv file or can manually type questions to create the test.

Publish test

Fig 11.12 Publish test


Once the test is created , Admin can choose the candidate to assign test

57
12. References

12.1 website references


• https://nodejs.org/en/
• https://getbootstrap.com/docs/4.0/getting-started/introduction/
• https://www.w3schools.com/jquery/default.asp
• https://www.javatpoint.com/css-tutorial
• https://docs.angularjs.org/guide
• https://medium.com/@jeremyvsjeremy/what-is-the-mean-stack-9d11ae2cd384

12.2 Book Reference


• Mastering HTML, CSS & Javascript Web Publishing - Lemay Colburn
Kyrnin
• Pro Node.Js for Developers - Andy Ihrig Colin J Ihrig Ihrig

58
13. Appendix
13.1 Glossary
1. Node.js : Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and
efficient. It is javaScript framework for backend.
2. Boilerplate: In computer programming, boilerplate code or boilerplate refers to
sections of code that have to be included in many places with little or no alteration. It
is often used when referring to languages that are considered verbose, i.e. the
programmer must write a lot of code to do minimal jobs.
3. Framework: In general, a framework is a real or conceptual structure intended to
serve as a support or guide for the building of something that expands the structure
into something useful.
4. BootStrap : Its is css frame work , that help to develop quick responsive websites.
5. CDN: A content delivery network (CDN) is a system of distributed servers (network)
that deliver pages and other Web content to a user, based on the geographic locations
of the user, the origin of the webpage and the content delivery server.
6. BootStrapCDN : BootstrapCDN is a free and public content delivery network. Users
of BootstrapCDN can load CSS, JavaScript and images remotely, from its servers.
7. Angular.js : AngularJS is a JavaScript framework. It is a library written in
JavaScript.
8. Distributes System: A distributed system is a network that consists of autonomous
computers that are connected using a distribution middleware. They help in sharing
different resources and capabilities to provide users with a single and integrated
coherent network.
9. NoSql : NoSQL is an approach to database design that can accomodate a wide
variety of data models, including key-value, document, columnar and graph formats.
NoSQL, which stand for "not only SQL," is an alternative to traditional relational
databases in which data is placed in tables and data schema is carefully designed
before the database is built.
10. Web Stack : It is the set of technologies that a company or a person use to develop
website.
59
11. MongoDb : It is NoSql database.

13.2 Abbreviations
1 CDN : Content Driven Network
2 CSS : Cascading Style Sheet
3 HTML: Hypertext Markup Language
4 JQUERY: Java Query (java script library)
5 JSCRIPT: Java Script
6 LINQ: Language Integrated Query
7 MVC: Model View Controller
8 SQL SERVER: Structured Query Language
9 JS: JavaScript
10 XML: Extensible Markup language

60

Vous aimerez peut-être aussi