You are on page 1of 19

Kathmandu University

Department of Computer Science and Engineering

Dhulikhel, Kavre

A Project Proposal

On

“Typing Tutor”

[ENGG 102]

(For the partial fulfillment of 1st year/II Semester in Computer Engineering)

Submitted by:

Prashanna M. Paudel (40)

Sabin Thapa (58)

Samip Timalsena (59)

Rojan Uprety (60)

Submitted to:

Ms. Deni Shahi

Department of Computer Science and Engineering

Submission Date: 19th April, 2019

i
Bonafide Certificate

This project work on


“Typing Tutor” is the bonafide work of
Sabin Thapa, Rojan Uprety, Prashanna Mani Paudel and
Samip Timalsena who carried out the project work under my
supervision.

Project Supervisor

________________________

Dr. Rajani Chulyadyo

Academic Designation

ii
Abstract

In this new era, people are shifting towards technology. Electronic gadgets have become
inseparable from day-to-day life. In every organization of this world we can see “Computer”
being used as a basic component to run it smoothly. It is necessary to use computer as efficiently
as one can, to enhance the overall performance of the organization. Considering this, we have
developed a project that boosts-up the typing speed of a person.

Typing Tutor is a user-interactive application. The objective of the app is to provide user with a
platform to practice, test and enhance their typing skills. It is a simple rather useful application
which becomes of assistance to the user in their day to day activity. The application provides
user-friendly UI and is convenient to use even to the new users.

Keywords: Typing game, Desktop Application, Typing Lessons, Keyboard Ninja.

i
Table of Contents
Abstract........................................................................................................................................................i
Table of Contents........................................................................................................................................ii
List of Figure...............................................................................................................................................iii
Chapter 1: Introduction...............................................................................................................................1
1.1. Background......................................................................................................................................1
1.2. Objectives........................................................................................................................................1
1.3. Motivation and Significance............................................................................................................2
Chapter 2: Related Works/ Existing Works..................................................................................................3
Chapter 3: Design and Implementation.......................................................................................................4
Chapter 4: Discussion on the Achievements.............................................................................................10
Chapter 5: Conclusion and Recommendation...........................................................................................11
5.1. Limitation............................................................................................................................................11
5.2. Future Enhancement..........................................................................................................................11
APPENDIX..................................................................................................................................................12
References.................................................................................................................................................12
Bibliography...............................................................................................................................................12

ii
List of Figure

Figure Page no.


3 System Output 7-9
4.2 Gantt Chart 13

iii
Chapter 1: Introduction

1.1. Background

The big number of different advances in gesticulation, direct manipulation and speech
recognition methods cannot change the fact that typing is the most widespread kind of human -
computer communication. Psychologists have been studying typing for over hundred years now,
as this ability has steadily entered our everyday life. Computer skills are required in every
educational institution and work. As email communication and instant messaging gradually
turned out to be the most extensive form of personal and business communication, a skill of
typing fast without errors improves the professional representation of an individual and also
saves his time. 
Typing is the basic command to run a computer and your typing speed plays vital role while
working in computer to save time. Here we have presented a Typing Tutor Project to measure
user’s typing speed and to enhance their typing speed. Users can test and improve their typing
speed using this application.
This project aims to solve the complications related with typing by providing users with an
environment for practicing, testing and improving their typing speed.

1.2. Objectives

Primary Objectives
• To develop a typing tutor.
• To create an executable file of Typing tutor for practical use.
• To provide users with an environment to help increase their typing skill.

Secondary Objectives
• To continue the project in future with extra salient features.
1.3. Motivation and Significance

As all of the team members were interested on a project that can help the user to develop their
typing skills, we’ve chosen Typing Tutor. Realizing the obvious truth, i.e. while using
Smartphone, Computer & Laptop most of people are lagging behind due to their typing speed so,
here in this project we’ve tried to provide people a platform to test and improve their skills.

These days, typing can seem like it is not such an important skill as it once was. For example, we
are becoming increasingly used to talking to our machines with the advances being made by
Google Now, Cortana, and Siri.
But typing remains a fundamental skill, and it is still one of the most important computer skills
you can learn. Learning to type fast and accurately will help you in many ways in life, and it
should be considered an essential skill for anyone who sees themselves working with a computer
in some capacity. If the users are provided with an environment to help them enhance their
typing speed, it’ll be really helpful to them.

2
Chapter 2: Related Works/ Existing Works

There are many applications that have been developed to help users to improve their typing. The
recent development in this field is the development of Typing Master 10.1 which was released on
January 8th, 2019 and other similar applications are listed below;

Ultrakey 6 - (Bytes of Learning, 2003) It has more than 700 typing exercises. It can work on
both Macs and Pcs. On the other side, it’s rather expensive and is not licensed for schools or
companies. The graphics are dated. This type of project is not affordable for a country like ours.
As stated earlier, our project basically targets those who are new to computer.

Type Racer - The award-winning online typing competition, Type Racer, allows people to race
each-other by typing quotes from books, movies, and songs. It is the first multiplayer typing
game on the web. Since launching in March, 2008, millions of people from all over the globe
have completed hundreds of millions of races on typeracer.com, improving their typing speed by
as much as 50 words-per-minute.

Typing Test -It is a program that helps to see how fast user can type and it compare result with
another user’s score. One huge benefit: The more user use this typing game, the faster they will
be able to type as the typing test uses the top 200 words of each language. If user is able to type
the most frequent words faster, they will be able to type everything else faster as well!

3
Chapter 3: Design and Implementation
There are two modes in Typing Tutor: Play mode and Practice Mode. Within the play mode,
there are 3 levels of difficulty namely Easy, Medium and Hard. Respective time is allocated for
each level (Easy: 5 sec, Medium: 20 sec and Hard: 30 sec). Typing the given word or sentence
correctly would increase the score by 1. If the user fails to type correctly or within the allocated
time, the life is reduced by 1. Continuous 10 right answers would give you an extra life provided
that your life is less than 3. As the game is over, if your score exceeds the previous high score, it
will be the new high score.

Practice mode would allow the user to type for 2 minutes. During these 2 minutes, texts are
displayed on the screen and the user have to type them correctly. At the end of 2 minutes, the
typing speed of the user is calculated in words per minute (wpm).

Here are a few screenshots of our design that we have put in our project.

Levels

4
Easy Mode

Medium Mode

5
Hard Mode

Some of the algorithms that we used in our program are listed below as:

Algorithm for Data Handling:


Step 1: Start
Step 2: Read a file that contains the data for respective modes.
Step 3: Store each data in Qt Arrary known as QList.
Step 4: Generate a random number to display data in random order.
Step 5: Display the data associated with the respective number in Qlist
when CTRL button is pressed.
Step 6: End.

6
Algorithm for Text Change:
Step 1: Start
Step 2: Display the data when CTRL button is pressed.
Step 3: Initiate a timer function that has a 5 sec delay.
Step 4: Display another text/data after 5 sec.
Step 5: Call the timer function each time the data displayed is changed.
Step 6: End.

7
Algorithm for Life:
Step 1: Start
Step 2: Set LIFE to 3 initially.
Step 3: Decrease the value of life by 1 when user gives wrong input or
delays for 5 sec.
Step 4: Increase the value of life by 1 when user gives correct input
continuously for 10 times.
Step 5: End.

8
9
Chapter 4: Discussion on the Achievements
We had divided the process of project development into 3 phases: beginning phase, coding and
developing phase and finally correction phase.

Beginning phase was about a month long that covered the tasks of proposal submission to basic
framework development. During this phase, we developed a very basic program just to get
things started that resembled our final project. The second phase was the coding and
developing phase and it was the longest phase amongst all. It was within this timeframe where
we studied the use of Qt, developed initial prototypes and various modes and developed a GUI
Environment capable of interacting with the user. We also implemented it to systems other
that the one in which it was build and it ran successfully. It took us almost 2 months to get to
this point. The final phase was the correction phase where error analysis and correction
followed by final testing was done. We cross checked the program and solved all the errors that
came through. The documentation of the project work i.e. the report writing was also done
during this phase. We finished the project by the end of this phase as we expected to do. This
phase was the shortest of all and it took us around 15 days to complete the tasks in this phase.

The Gantt Chart for the tasks that we performed during the project development is as follows:

10
Chapter 5: Conclusion and Recommendation

We’ve created a typing tutor using Qt Creator platform and designed an executable file. We’ve
created a game section and a practice section but we were unable to modify the game
section such that words fall in drop down order. Instead, we’ve created a game section
where a user gets 3 lives. Overall, we’ve provided with an environment to the users to
test and improve their typing skills.

5.1. Limitation
We put our utmost effort in developing this project and this being our first attempt in developing
a project there are few bugs and limitation of this project.
● The typing tutor we’ve created is in the form of executable file so it can only work
offline.
● There are limited amount of words in the database (about 1500).

5.2. Future Enhancement


In the future, the program can be enhanced in the following ways:
● This project can be further enhanced to develop a more interactive project by providing
an online access to it.
● Further enhancement can be done by using more advanced GUI in the future.
● Similarly, the databases of words and sentences can be updated to enhance the program.

11
APPENDIX

References
https://stackoverflow.com/questions/5854581/polymorphism-in-c
https://www.w3schools.com/cpp/cpp_classes.asp
https://www.tutorialspoint.com/cplusplus/cpp_signal_handling.htm
https://www.slideshare.net/dibakarroy9461/c-typing-tutor-by-debakar-roy

Bibliography

Balagurusamy, E. (2018). Object oriented programming in C++


Deitel, H., & Deitel, P. (2006). C++ How to program
Zhi, Lee, E. (2007). Qt5 C++ GUI Programming Cookbook - Second Edition

12
13
14

You might also like