Type-Racer


Hello everyone,I'm Sai Sirisha currently pursuing B.Tech(CSE) from St.Martin's Engineering College.I have developed a simple application named as Type Racer which is similar to that of a typing tutor software.I got my project idea by searching and reading various sources on web.

I have developed this complete application in C language with the help of external library graphics.h
This project basically has few of the below:
1.The user can test his speed by choosing various levels available from the menu.
2. View the rules and instructions to be followed.
3.View the individual progress and badge allotted to a particular user by choosing the username.
4.View all the statistics of all the users.
5.View the tips etc.
6.Exit
 The project has sound feature as well which the user can choose to keep in ON/OFF mode.
 Basically to take a test first we need to choose option 1 which will prompt the user to enter the name which should be the same every time the user takes the test so that he/she can later view their progress.After entering the name we can choose any level to test the typing speed.The user can choose to either stop the test by pressing the END key or when the timer stops it automatically prompts you with a sound and the test ends.After the end of the test user gets the errors he has made and the test results in a  bar graph format and report format (score card).The user can choose to look into his individual progress by choosing option 3.

The significant part in developing this project was implementing a timed based test for the users to test the speed. It was a really difficult task for me to implement this but with the guidance of my seniors and mentors I could finally crack the problem by taking the keyboard events of the user.The idea behind this was to take the starting time of the test and after every key stroke measuring the time difference between keystroke and start time and then checking it with the time limit that user has.
The other major part in the project was designing graph of individual progress which took me much time to think on how to implement it.I have used delimiters concept to store the records or results of each user after he takes test into a file.Whenever the user requests for individual progress I have compared all the usernames with the user whose information is to be fetched and then take the results to obtain the graph.
Handling files information when the user hits backspace and end key was also a big task for me which I finally did using ftruncate , fseeko functions.

This project was given to us at the time of final semester exams or quite sometime before it actually.
We were given this project on 28-03-2018 and were asked to complete within 26-04-2018 although time was extended for few days. I had boarded the train to Chennai as soon as my exams completed on 26/04 but I had to complete this project anyhow within the time limit given and so I kept coding even in the train because of exams I could only complete 50% of it whilst writing the exams.
I realised one thing that is if you have determination , patience , good support system(our mentors) and motivation(from seniors especially Abhijith Ravuri) who gave us n number of chances and opportunities you can achieve the goals you have set for yourself.Because of these seniors we are now getting habituated to code 3 hours everyday atleast.

The things I have learnt after this C course is handling pressure at times, self learning many things such as I learnt php,css,html etc. , code for many hours and most importantly realised what actually Computer Science means.Doing this project led me to understand the low level functioning of the computer systems, graphics library , what exactly are SDL/Allegro libraries although I didn't use them  I researched about them . I also learnt about how the functions vary for different computers.
I learnt about the pthread.h or posix thread.h library which can help you achieve multithreading partially in the C language (for Linux OS it would be the best).I learnt about the working of windows.h as well.
.
.
.
Gosh too long to read ,I think you guys are too bored now to read it further ... 😛 Ok!! let's look at the working and some screenshots of the application.
Main Menu
Individual Score


Score after test
Levels for test

Instructions for test

Finger positions chart for user's convenience

Video:



“One two, one two, 
Type a word or two. 
Arrow left, arrow right, 
Keep those fingers nice and tight.
Keys up, Keys down,
Move those digits all around.
One two, one two, 
Type a word or two.” 
― Jazz Feylynn

For more detailed information of the project click here.

This document contains the details about all the different functions and files.

For source code of the project : https://github.com/blackjackal982/Type-Racer


Comments

Popular Posts