Typing Speed Test Project Report
Typing Speed Test Project Report
Bachelor of Technology
in
OR
Raghvendra Yadav
Saurabh Kumar Gupta
Pal Kalpesh
Ritesh Sharma
Vijayshankar Sudha Gautam
Assistant Professor
OR
NH-24, Sitapur Rd, near Sahara Art and Management, Bakshi Ka Talab, Lucknow, Uttar Pradesh
226201
Session- 2022-2023
1
DECLARATION
We hereby certify that the work which is being presented in B.Tech Project Report entitled “ Typing
Speed Test ”, as partial fulfilment of the requirement for the degree of Bachelor of Technology in
Technology, submitted to the Department of Computer Science and Engineering of B.N. College of
Engineering and Technology, NH-24, Sitapur Rd, near Sahara Art And Management, Bakshi Ka
Talab, Lucknow, Uttar Pradesh 226201, is an authentic record of my own work carried out during my
academic period of 5th semester under the supervision of Ms.Sudha Gautam Assistant Professor in the
The matter presented in this project report is full or part, has not been submitted by me for the award
RaghvendraYadav
Ritesh Sharma
Saurabh Kumar Gupta
Pal Kalpesh
Vijayshankar Gautam
2
CERTIFICATE
Mr. Raghvendra Yadav, Mr. Saurabh Kumar Gupta, Mr.Ritesh Sharma, Mr. Pal Kalpesh Mr.
Vijayshankar has worked on. This project is a part of a partial fulfilment of requirement for the degree
To the best of my knowledge and belief, this is the original work and has not been submitted for any
Date-
CSE, AssistantProfessor
Signature
Prof.(Dr.) Mohit Gangwar CSE,
HOD
3
ACKNOWLEDGEMENTS
First of all, we offer up our sincere thanks to the Almighty, for providing me the tremendous strength
and courage to undertake this project work successfully. I express my humble sentiments and
gratitude to my worthy HOD sir, my Supervisor and all the Computer Science and Engineering
Faculties. Their encouragements, personal and professional guidance, help and immense support
throughout this work has led to the successful completion of this project work.
We are also thankful to my team members for having faith in me and for cheering me on and also
4
TABLE OF CONTENT
2.1. CSS
3.1. JAVASCRIPT
3.3. Trademark
5
3.4. Website client-side usage
4.2. Browsers
4.4. Software
8. CONCLUSION 43
9. REFERENCES 43
6
1. INTRODUCTION TO HYPER TEXT MARKUP LANGUAGE
1.1 HTML
This language provides the format for specifying simple logical structure and links in a hypertext
document. As a markup language, special formatting commands are placed in the text describing how
the final version should appear. These formatted documents are interpreted by a Web browser which
uses the HTML code to format the page being displayed. Although most professionals use special
authoring tools to write HTML documents and to manage sites, developers of e-commerce sites and
applications need to know the nitty-gritty detail of HTML, and this is what you will study. HTML has
had several versions over the years. "HTML 2.0" was the first standard HTML specification which
was published in 1995. HTML 4.01 was a major version of HTML and it was published in late 1999.
Though HTML 4.01 version is widely used but currently we are having HTML 5 version which is an
extension to HTML 4.01, and this version was published in 2012. This course will take you through
website creation using HTML5.
HTML pages are created by tagging textual information with HTML markup. HTML markup consists
of tags, which appear inside angled brackets < and > . An example of an HTML tag is, which causes
text to appear in bold. only notes where text should begin to appear in bold, while the tag marks the
end of the emboldening. Most HTML tags have a corresponding end tag, which is specified by the
name of the tag preceded by the / character.
7
Text may be both bold and italicized. This is done by using both the and tags. When doing so, it is
important to remember not to overlap HTML tags Overlapping tags is a common mistake. Although
Web browsers are usually smart enough to work out what is meant, it can lead to problems.
Furthermore, for an HTML page to be considered valid HTML, it must contain no overlapping tags.
This section covers the creation of an HTML page. You will need a Web browser and a text editor.
Use HTML: Basics 3 any text editor you wish to, but the following Activity descriptions will use
Notepad++. Notepad++ is a free Windows editor that also supports several programming languages.
For example, you will notice that HTML keywords are highlighted in different colours.
1. Open your Web browser. This sections' goal is to create a Web document that can be opened with
your browser.
2. Open Notepad++. It can be found by selecting Start, then All Programs, then Notepad++.
3. Type the following text into Notepad++: your name and the module number. Save this file as
start.txt.
4. Now load start.txt into the browser by dragging start.txt onto your browser.
5. The browser should now display the text contained in start.txt. (If it does not, make sure that you
have saved start.txt and that this is the file you are opening).
6. Once you have displayed start.txt, return to Notepad. Add the text "Typing Speed Test", and save
the file again.
7. Return to the Web browser and reload the document (by using either by using the Refresh or
Reload toolbar buttons, or by selecting File/Open once again).
8. If you are able to see the new piece of text, you have successfully used Notepad to create your first
Web page.
Although forms could simply be used to display information, HTML provides them in order to supply
a way for the user to interact with a Web server. The most widely used
8
method to process the data submitted through a form is to send it to server-side software typically
written in a scripting language, although any programming language can be used. The figure below
outlines the kind of processing that takes place.
2. The user reads the Web page and interacts with the form it contains.
3. Submitting the form sends the form data to the server for processing.
5. The CGI software may use database information or store data in a server-side database. HTML
Forms
6. The CGI software may generate a new Web page for the server to return to the user.
7. The user reads the new Web document and may interact with it.
<!DOCTYPE>
<html>
<title>
Defines a title for the document <body> Defines the document's body
<h1> to <h6>
<br>
Inserts a single line break <hr> Defines a thematic change in the content
<!--...-->
9
<address>
Defines contact information for the author/owner of a document/article <b> Defines bold text
<bdi>
Isolates a part of text that might be formatted in a different direction from other text outside it <bdo>
Overrides the current text direction
<big>
Not supported in HTML5. Use CSS instead. Defines big text <blockquote> Defines a section that is
quoted from another source
<center>
Not supported in HTML5. Use CSS instead. Defines centered text <cite> Defines the title of a work
<code>
Defines a piece of computer code <del> Defines text that has been deleted from a document
<dfn>
<font>
Not supported in HTML5. Use CSS instead. Defines font, color, and size for text <i> Defines a part of
text in an alternate voice or mood
<ins>
Defines a text that has been inserted into a document <kbd> Defines keyboard input
<mark>
Defines marked/highlighted text <meter> Defines a scalar measurement within a known range (a
gauge)
<pre>
10
Defines preformatted text
<q>
Defines a short quotation <rp> Defines what to show in browsers that do not support ruby annotations
<rt>
<s>
Defines text that is no longer correct <samp> Defines sample output from a computer program
<small>
Defines smaller text <strike> Not supported in HTML5. Use <del> or <s> instead. Defines
strikethrough text
<strong>
<sup>
<time>
Defines a date/time <tt> Not supported in HTML5. Use CSS instead. Defines teletype text
<u>
Defines text that should be stylistically different from normal text <var> Defines a variable
<wbr>
11
<form>
Defines an HTML form for user input <input> Defines an input control
<textarea>
Defines a multiline input control (text area) <button> Defines a clickable button
<select>
Defines a drop-down list <optgroup> Defines a group of related options in a drop- down list
<option>
Defines an option in a drop-down list <label> Defines a label for an <input> element
<fieldset>
Groups related elements in a form <legend> Defines a caption for a <fieldset> element
<datalist>
Specifies a list of pre-defined options for input controls <output> Defines the result of a calculation
Frames
<frameset>
Defines a set of frames <noframes> Not supported in HTML5. Defines an alternate content for users that
do not support frames
<iframe>
<img>
<area>
Defines an area inside an image-map <canvas> Used to draw graphics, on the fly, via scripting
(usually JavaScript)
12
<figcaption>
<picture>
Defines a container for multiple image resources <svg> Defines a container for SVG graphics
Audio/Video
<source>
Defines multiple media resources for media elements (<video>, <audio> and
<picture>) <track> Defines text tracks for media elements (<video> and <audio>)
<video>
<a>
Defines a hyperlink <link> Defines the relationship between a document and an external resource
(most used to link to style sheets)
<nav>
<ul>
<li>
Defines a list item <dir> Not supported in HTML5. Use <ul> instead. Defines a directory list
<dl>
<dd>
13
Defines a description of a term/name in a description list <menu> Defines a list/menu of commands
<menuitem>
Defines a command/menu item that the user can invoke from a popup menu Styles and Semantic
<style>
<span>
<footer>
Defines a footer for a document or section <main> Specifies the main content of a document
<section>
<aside>
Defines content aside from the page content <details> Defines additional details that the user can view or
hide
<dialog>
Defines a dialog box or window <summary> Defines a visible heading for a <details> element
<data>
<head>
Defines information about the document <meta> Defines metadata about an HTML document
<base>
14
Specifies the base URL/target for all relative URLs in a document <basefont> Not supported in
HTML5. Use CSS instead. Specifies a default color, size, and font for all text in a document
15
2. INTRODUCTION TO CASCADING STYLE SHEETS
2.1. CSS
There is no format to follow for teaching the aesthetics of style - most people, though, can recognize
something that follows a classical design. But some things can be said about the style of a website. For
instance, when Web pages belong to the same website, each page should have a consistent look in
order to provide familiarity for the user. Style sheets (sometimes referred to as templates) are used in
desktop publishing to provide consistency when formatting text. The format applied by the stylesheet
could be to indent every first line of a paragraph by 2cm, insert a page break at the end of every
chapter, and so on. Naturally, due to multimedia, Web pages not only have to consider text formatting,
but also visual and sound presentation, and various multimedia formats in general. Before we
continue, let us briefly discuss the advantages and disadvantages of using style sheets.
1. Multiple Styles –
A single document can be presented in multiple styles by using multiple style sheets.
2. Re-styling –
The use of style sheets (which are separate to the HTML files) allows the quick re- styling of any
document, without modifying the original HTML.
3.Document maintenance –
16
The ability to re-style many documents allow us to easily make changes to the appearance of many
Web pages without separately editing each one.
4. Consistency –
Style sheets guarantee consistency throughout website.
17
3. INTRODUCTION TO JAVASCRIPT
3.1. JAVASCRIPT
JavaScript, often abbreviated as JS, is a programming language that is one of the core technologies of
the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the
client side for webpage behaviour, often incorporating third-party libraries. All major web browsers
have a dedicated JavaScript engine to execute the code on users' devices.
JavaScript is a high-level, often just-in-time compiled language that conforms to the ECMAScript
standard. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is
multi-paradigm, supporting event-driven, functional, and imperative programming styles. It has
application programming interfaces (APIs) for working with text, dates, regular expressions, standard
data structures, and the Document Object Model (DOM).
The ECMAScript standard does not include any input/output (I/O), such as networking, storage, or
graphics facilities. In practice, the web browser or other runtime system provides JavaScript APIs for
I/O.
JavaScript engines were originally used only in web browsers, but are now core components of some
servers and a variety of applications. The most popular runtime system for this usage is Node.js.
18
Although Java and JavaScript are similar in name, syntax, and respective standard libraries, the two
languages are distinct and differ greatly in design.
The first popular web browser with a graphical user interface, Mosaic, was released in 1993.
Accessible to non-technical people, it played a prominent role in the rapid growth of the nascent
World Wide Web. The lead developers of Mosaic then founded the Netscape corporation, which
released a more polished browser, Netscape Navigator, in 1994. This quickly became the most-used.
During these formative years of the Web, web pages could only be static, lacking the capability for
dynamic behaviour after the page was loaded in the browser. There was a desire in the flourishing web
development scene to remove this limitation, so in 1995, Netscape decided to add a scripting language
to Navigator. They pursued two routes to achieve this: collaborating with Sun Microsystems to embed
the Java programming language, while also hiring Brendan Eich to embed the Scheme language.
Netscape management soon decided that the best option was for Eich to devise a new language, with
syntax similar to Java and less like Scheme or other extant scripting languages. Although the new
language and its interpreter implementation were called LiveScript when first shipped as part of a
Navigator beta in September 1995, the name was changed to JavaScript for the official release in
December.
The choice of the JavaScript name has caused confusion, implying that it is directly related to Java. At
the time, the dot-com boom had begun and Java was the hot new language, so Eich considered the
JavaScript name a marketing ploy by Netscape.
19
Microsoft debuted Internet Explorer in 1995, leading to a browser war with Netscape. On the
JavaScript front, Microsoft reverse-engineered the Navigator interpreter to create its own, called
JScript.[16]
JScript was first released in 1996, alongside initial support for CSS and extensions to HTML. Each of
these implementations was noticeably different from their counterparts in Navigator. These
differences made it difficult for developers to make their websites work well in both browsers, leading
to widespread use of "best viewed in Netscape" and "best viewed in Internet Explorer" logos for
several years.
In November 1996, Netscape submitted JavaScript to Ecma International, as the starting point for a
standard specification that all browser vendors could conform to. This led to the official release of the
first ECMAScript language specification in June 1997.
The standards process continued for a few years, with the release of ECMAScript 2 in June 1998 and
ECMAScript 3 in December 1999. Work on ECMAScript 4 began in 2000.
Meanwhile, Microsoft gained an increasingly dominant position in the browser market. By the early
2000s, Internet Explorer's market share reached 95%.[20] This meant that JScript became the de facto
standard for client-side scripting on the Web.
Microsoft initially participated in the standards process and implemented some proposals in its JScript
language, but eventually it stopped collaborating on Ecma work. Thus ECMAScript 4 was
mothballed.
20
3.2.4. Growth and standardization
During the period of Internet Explorer dominance in the early 2000s, client-side scripting was
stagnant. This started to change in 2004, when the successor of Netscape, Mozilla, released the
Firefox browser. Firefox was well received by many, taking significant market share from Internet
Explorer.
In 2005, Mozilla joined ECMA International, and work started on the ECMAScript for XML (E4X)
standard. This led to Mozilla working jointly with Macromedia (later acquired by Adobe Systems),
who were implementing E4X in their ActionScript 3 language, which was based on an ECMAScript 4
draft. The goal became standardizing ActionScript 3 as the new ECMAScript 4. To this end, Adobe
Systems released the Tamarin implementation as an open-source project. However, Tamarin and
ActionScript 3 were too different from established client-side scripting, and without cooperation from
Microsoft, ECMAScript 4 never reached fruition.
Meanwhile, very important developments were occurring in open-source communities not affiliated
with ECMA work. In 2005, Jesse James Garrett released a white paper in which he coined the term
Ajax and described a set of technologies, of which JavaScript was the backbone, to create web
applications where data can be loaded in the background, avoiding the need for full page reloads. This
sparked a renaissance period of JavaScript, spearheaded by open-source libraries and the communities
that formed around them. Many new libraries were created, including jQuery, Prototype, Dojo
Toolkit, and MooTools.
Google debuted its Chrome browser in 2008, with the V8 JavaScript engine that was faster than its
competition. The key innovation was just-in-time compilation (JIT), so other browser vendors needed
to overhaul their engines for JIT.
In July 2008, these disparate parties came together for a conference in Oslo. This led to the eventual
agreement in early 2009 to combine all relevant work and drive the
21
language forward. The result was the ECMAScript 5 standard, released in December 2009.
Ambitious work on the language continued for several years, culminating in an extensive collection of
additions and refinements being formalized with the publication of ECMAScript 6 in 2015.
The creation of Node.js in 2009 by Ryan Dahl sparked a significant increase in the usage of JavaScript
outside of web browsers. Node combines the V8 engine, an event loop, and I/O APIs, thereby
providing a stand-alone JavaScript runtime system. As of 2018, Node had been used by millions of
developers, and npm had the most modules of any package manager in the world.
The ECMAScript draft specification is currently maintained openly on GitHub, and editions are
produced via regular annual snapshots. Potential revisions to the language are vetted through a
comprehensive proposal process. Now, instead of edition numbers, developers check the status of
upcoming features individually.
The current JavaScript ecosystem has many libraries and frameworks, established programming
practices, and substantial usage of JavaScript outside of web browsers. Plus, with the rise of single-
page applications and other JavaScript-heavy websites, several transpilers have been created to aid the
development process.
3.3. Trademark
"JavaScript" is a trademark of Oracle Corporation in the United States. The trademark was originally
issued to Sun Microsystems on 6 May 1997, and was transferred to Oracle when they acquired Sun in
2010.
22
3.4. Website client-side usage
JavaScript is the dominant client-side scripting language of the Web, with 98% of all websites (mid–
2022) using it for this purpose. Scripts are embedded in or included from HTML documents and
interact with the DOM. All major web browsers have a built-in JavaScript engine that executes the
code on the user's device.
Loading new web page content without reloading the page, via Ajax or a WebSocket. For example,
users of social media can send and receive messages without leaving the current page.
Web page animations, such as fading objects in and out, resizing, and moving them. Playing browser
games.
Validating input values of a web form before the data is sent to a web server.
Logging data about the user's behaviour then sending it to a server. The website owner can use this
data for analytics, ad tracking, and personalization.
Storing and retrieving data on the user's device, via the storage or Indexed DB standards.
Over 80% of websites use a third-party JavaScript library or web framework for their client-side
scripting.
jQuery is by far the most popular library, used by over 75% of websites. Facebook created the React
library for its website and later released it as open source; other sites, including Twitter, now use it.
Likewise, the Angular framework created by Google for
23
its websites, including YouTube and Gmail, is now an open-source project used by others.
In contrast, the term "Vanilla JS" has been coined for websites not using any libraries or frameworks,
instead relying entirely on standard JavaScript functionality
24
4. Minimum Hardware and Software requirements
Below is a list of the minimum Hardware and Software requirements to access the basic website content.
• Internet Connection Broadband (high-speed) Internet connection with a speed of 4 Mbps or higher
• Sound card
• Speakers or headphones
4.2. Browsers -
• Chrome* 36+
• Edge* 20+
25
*Google Chrome version 42+ and Microsoft Edge do not support NPAPI-type plug- ins, including
Java plug-ins and many media browser plug-ins. Blackboard does not support these browsers for use
with media that require NPAPI plug-ins for viewing.
4.4. Software -
• Microsoft Office--a free copy of Office 365
• Adobe Acrobat Reader --for PDF files Adobe® Reader® software is the global standard for
electronic document sharing. It is the only PDF viewer that can open and interact with all PDF
documents. Use Adobe Reader to view, search, digitally sign, verify, print, and collaborate on Adobe
PDF files.
26
5. ABOUT THE PROJECT
With our academic knowledge and a little bit of knowledge of the basics of HTML, CSS, and
JavaScript, we have made a tool to test our typing speed so that we can judge how fast we are while
typing. In addition, it also helps us improve our regular typing speed and reduces our rate of typing
errors.
You can converse with others more quickly the faster you can type. Any type of task that involves
typing will allow you to save a tonne of time. You won't really notice it at first, but it will take a few
more minutes. The minutes will eventually grow into hours of time saved, which you can use for
other things. There are various platforms that require fast typing speed, and there are also various job
opportunities for a person who types faster.
According to a survey report, the ideal typing speeds by age are as follows: Elementary
school (Grades 3–5): 8–15 WPM.
Middle school (Grades 6–8): 12–25 WPM
College/Adult: 50 WPM.
But we Indians are far away from this average typing speed report. Only about 40– 50% of the
population is able to compete with others in this fast-typing era.
But relax there is no need to be stress that we are not able to type fast because by following some
simple tips and tricks, we will also be able to type faster like others. All we need to do is to take a
deep breath, relax your fingers, and move slowly. You need to be focused and not annoyed when
attempting the typing speed test. The best thing you can do to start typing faster is to type more. The
more practise you get under your belt, the faster your "typing-fu" will be. It’s all about developing
muscle memory. Just make sure you are reinforcing good habits and not ones that will leave your
fingers hurting after an intense typing session.
27
6. FAQ’S ABOUT THE PROJECT
There are various Questions that arises in our mind before taking a Typing Speed Test, that are-
~ Taking a typing speed test establishes your average typing speed (WPM) and accuracy, which is
an important baseline to know so you can increase speed and improve accuracy with practice.
Periodically taking typing speed tests can help you track your progress and measure improvement.
You even can use your WPM score from the typing test on your resume to highlight your
administrative skills!
The faster you type, the faster you will be able to communicate with others. You will be able to save a
ton of time on any kind of work that requires typing. At first, it will be a couple of extra minutes that
you won’t really notice. Over time, the minutes will turn into hours of saved time that you can spend
on other activities.
~ Typing speed is measured by the number of words you can type correctly in a set amount of time.
A “word” is equivalent to five keystrokes. During a test, both speed and accuracy are measured. You
will receive a number that indicates your average words per minute (WPM) and a percentage that
indicates your accuracy.
~There are different types of tests for typing. This one is a typing test that expresses your typing
skills in words per minute. The more you practice typing, and the more you test your typing speed,
the higher your WPM score will be. Some online typing tests and typing test games focus only on
WPM typing. The disadvantage of the WPM typing test is that you are only learning how to type fast.
WPM typing tests do not show your accuracy.
28
4. What Is CPM and How Can You Calculate It?
~ The CPM stands for the number of characters you type per minute, including all the mistakes.
“Corrected” scores count only correctly typed words. WPM is just the corrected CPM divided by
five. This is the de facto international standard.
~ Take a deep breath, relax your fingers, and take it slow. You need to be focused and not annoyed
when attempting the typing speed test. The best thing you can do to start typing faster is to type more.
The more practice you get under your belt, the faster your ‘typing-fu’ will be. It’s all about
developing muscle memory. Just make sure you are reinforcing good habits and not ones that will
leave your fingers hurting after an intense typing session.
Practice typing as much as you can. Type a lot, type tests, and practice typing tests. Improve your
words per minute typing results, and test your typing speed often. Our typing speed test will keep
track of all typing tests that you’ve taken in the past so you will be able to see the improvements over
time. You will be able to see how your speed typing has changed. If you can do a five-minute typing
test every day, your typing skills will increase dramatically.
College/Adult: 50 WPM
29
7. How Many Words per Minute Is a Good Score?
~ Of course, you should use ten fingers for typing, but you can start with a layout that’s the most
comfortable for you. The small bumps on the F and J keys will help your fingers locate the correct
position without looking. This setup should give you a full range of motion. The more you type, the
faster you will get. There are a few alternative layouts that propose a more ergonomic approach to
typing. You could also take the big leap and try out the Dvorak keyboard, but that’s a different story.
30
7. CODE IMPLEMENTATIONS
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Typing Test</title>
<!-- Google Fonts -->
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap"
rel="stylesheet"
/>
<!-- Stylesheet -->
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<div class="stats">
<p>Time: <span id="timer">0s</span></p>
<p>Mistakes: <span id="mistakes">0</span></p>
</div>
<div
id="quote"
onmousedown="return false"
onselectstart="return false"
></div>
<textarea
rows="3"
id="quote-input"
placeholder="Type here when the test starts."
></textarea>
31
<button id="start-test" onclick="startTest()">Start Test</button>
<button id="stop-test" onclick="displayResult()">Stop Test</button>
<div class="result">
<h3>Result</h3>
<div class="wrapper">
<p>Accuracy: <span id="accuracy"></span></p>
<p>Speed: <span id="wpm"></span></p>
</div>
</div>
</div>
<!-- Script -->
<script src="script.js"></script>
</body>
</html>
32
7.2. CSS Code Implementation
*{
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: "Poppins", sans-serif;
}
body {
background-color: #3066f6;
}
.container {
width: 80vmin;
padding: 50px 30px;
background-color: #ffffff;
position: absolute;
transform: translate(-50%, -50%);
top: 50%;
left: 50%;
border-radius: 10px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}
.stats {
text-align: right;
font-size: 18px;
margin-bottom: 30px;
}
.stats span {
font-weight: 600;
}
#quote {
text-align: justify;
margin: 50px 0 30px 0;
}
textarea {
resize: none;
width: 100%;
border-radius: 5px;
padding: 10px 5px;
font-size: 16px;
}
button {
float: right;
33
margin-top: 20px;
background-color: #3066f6;
color: #ffffff;
border: none;
padding: 10px 30px;
border-radius: 5px;
font-size: 18px;
}
.result {
margin-top: 40px;
display: none;
}
.result h3 {
text-align: center;
margin-bottom: 20px;
font-size: 22px;
}
.wrapper {
display: flex;
justify-content: space-around;
}
.wrapper span {
font-weight: 600;
}
.success {
color: #44b267;
}
.fail {
color: #e81c4e;
}
34
7.3. JavaScript Code Implementation
//Random Quotes Api URL
const quoteApiUrl = "https://api.quotable.io/random?
minLength=100&maxLength=1000";
const quoteSection = document.getElementById("quote");
const userInput = document.getElementById("quote-input");
let quote = "";
let time = 120;
let timer = "";
let mistakes = 0;
//Store response
let data = await response.json();
//Access quote
quote = data.content;
//Sets timer
const timeReduce = () => {
time = 60;
36
timer = setInterval(updateTimer, 1000);
};
//End Test
const displayResult = () => {
//display result div
document.querySelector(".result").style.display = "block";
clearInterval(timer);
document.getElementById("stop-test").style.display = "none";
userInput.disabled = true;
let timeTaken = 1;
if (time != 0) {
timeTaken = (60 - time) / 100;
}
document.getElementById("wpm").innerText =
(userInput.value.length / 5 / timeTaken).toFixed(2) + " wpm";
document.getElementById("accuracy").innerText =
Math.round(
((userInput.value.length - mistakes) / userInput.value.length) * 100
) + " %";
};
//Start Test
const startTest = () => {
mistakes = 0;
timer = "";
userInput.disabled = false;
timeReduce();
document.getElementById("start-test").style.display = "none";
document.getElementById("stop-test").style.display = "block";
};
window.onload = () => {
userInput.value = "";
document.getElementById("start-test").style.display = "block";
document.getElementById("stop-test").style.display = "none";
userInput.disabled = true;
renderNewQuote();
37
8. IMPLEMENTED OUTPUT SCREEN
9. CONCLUSION
At the end of this project, we have successfully created an innovative platform that assists the
young generation in typing faster like a pro.
This project will assist them in testing and improving their current typing speed, resulting in faster
speed, reduced typing errors, faster work performance, and much more.
10. REFERENCES
https://www.google.co.in/
https://www.w3schools.com/
http://github.com/
38
https://www.wikipedia.org/
39