Professional Documents
Culture Documents
1 Company Introduction 1
1.1 Mission: 1
1.2 Vision: 1
1.3 Aim: 1
2. Project Explanation 1
2.1 Introduction 1
2.3 Solution 1
3. Requirements Of Project 1
3.1Hardware Requirements 1
4. Technology Used 2
4.2.1 MongoDb 3
4.2.2 Express 4
4.2.3 Angular JS 5
4.2.4 Node.js 7
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
7. Structure of Project 29
2
8 Methodology Used 39
9 Testing 41
9.1 Testing:- 41
9.2Testing in strategies:- 41
9.4 Validation:- 43
9.5 Evaluation:- 43
9.6 MAINTENANCE:- 44
10 Future Scope 45
11 Screenshots of CFEX 46
3
Fig 11.6 login Page of Admin 51
12. References 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.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
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
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.
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.
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.
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 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.
4
Initial release: November 16, 2010; 7 years ago
Platform: Node.js
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.
5
Platform: Cross-platform, see Legacy browser support
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.
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.
License: MIT
Stable release: 10.0.0 & 8.11.1 (LTS) / April 24, 2018; 1 day ago & March 29, 2018; 27
days ago
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.
Standards: ISO/IEC 15445; W3C HTML latest recommendation; HTML Living Standard
8
Extended to: XHTML
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
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.
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.
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.
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 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.
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.1 Node.js
Node.js is javaScript framework for backend server technology.
Node.js is free
16
development around a single programming language, rather than different languages for
server side and client side scripts.
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
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.
Following are the areas where Node.js is proving itself as a perfect technology partner.
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.
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;
19
2) Express.js - The default web applications framework
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 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.
Authenticate:
sample code :
app.post('/login',
passport.authenticate('local'),
function(req, res) {
});
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 :
sample code :
app.post('/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.
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.
• 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:
Are there technical guarantees of accuracy, reliability, ease of access and data security?
25
6 System Analysis and Design
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.
• 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 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
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.
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
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 :
Admin.
After Login Super Admin goes to Account Dashboard from where it can perform
following operations :
1. Manage Billing
2. Generate Offers
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
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
View Assigned Tests : It shows all tests which are assigned to candidate by
Organizational admin to complete.
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’.
• 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).
• 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:
Unit Testing is done on individual modules as they are completed and become
executable. It is confined only to the designer's requirements.
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:
In this testing only the output is checked for correctness. The logical flow of the data is
not checked.
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:
➢ 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
• Bottom up approach
• Top down 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.
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.
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.
45
11 Screenshots of CFEX
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
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
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
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
50
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
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
53
11.9 Delete Test
54
11.9 Candidate view of Admin
55
11. 10 Create test Admin
Test details
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
57
12. References
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