PWP Chetan
PWP Chetan
PWP Chetan
EDUCATION
SHRI H. H. J. B POLYTECHNIC,
CHANDWAD-423101 (Nashik)
MICRO PROJECT
Academic year 2023-24
TITLE OF PROJECT
Finding typing speed and accuracy of text in text editor
CERTIFICATE
This is to certify 1) Mahajan Chetan Prashant
Place: CHANDWAD
Date: / /2024
Part A
Part B
Title of micro-project: Finding typing speed and accuracy of text in text editor
2
PART B-Plan
Title of micro-project:
The main purpose of the project is to find out the typing speed and accuracy of text entered in
the text editor. We can also define the text at run time or can also define the text prior. We can
also import various classes for the controls used in the editor.
To measure typing speed and accuracy of text using Python, you can create a simple program
that calculates the time taken to type a specific text and compares it with the actual time taken
Referred the book “Python: The complete reference” for defining various functions and classes. Like
created a user-defined class which contain various functions for calculating the speed and for finding
the accuracy, also it contain the function which defines the controls used in the editor. Also referred
“Javatpoint” for importing built-in modules for referring controls/widgets used for designing the text
editor. Used modules like Thinter which provides classes which allow the display, positioning and
control of widgets. Time, this module provides various functions to manipulate time values. Module
difflib – helpers for computing deltas between objects.
4
5.0 Actual Resources Used:
self.label_speed = Label(
root, text=f"Your typing speed is {self.speed} WPM")
self.label_speed.grid(row=3, column=0, columnspan=3, sticky="nsew")
self.label_accuracy = Label(
root, text=f"Your typing accuracy is {self.speed} %")
self.label_accuracy.grid(row=4, column=0, columnspan=3, sticky="nsew")
def start(self):
self.time_start = time.time()
def stop(self):
self.time_end = time.time()
words = self.label_text.cget("text").split(' ') self.speed =
round(len(words)/((self.time_end - self.time_start)/60))
self.label_speed.config(
text=f"Your typing Speed is {self.speed} WPM") self.accuracy =
round(difflib.SequenceMatcher(None, self.label_text.cget(
"text"), self.user_text.get("1.0", 'end-1c')).ratio()*100)
self.label_accuracy.config( text=f"Your typing
accuracy is {self.accuracy} %")
def new_text(self):
self.label_text.config(
text=self.text[random.randint(0, len(self.text)-1)])
self.user_text.delete('1.0', END)
def main():
root = Tk()
myapp =
MainWindo
w(root)
root.mainloop()
1. Communication Skills.
2. Working in a team, time management, group discussion.
3. Developed the skill of importing packages and defining the functions in python.
8.0 Applications of this Microproject: