Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

Company Name

LearnMore

Background of the study

One of the common challenges as a student and teacher is to find strategies to


maximize their time to finish their work and activities. So, we created a solution for these
challenges at the same time applying our knowledge in programming and we came up
with the idea to create the Pomodoro timer which is a timer that divides your working
time into chunks of 25 minutes of work combined with a 5-minute short break.

Purpose

The purpose of this project is to reduce user wasted time because this pomodoro
timer helps users manage their schedule and encourage them to focus and increase
productivity with the time they have. It also aims to improve the knowledge and skills of
students when it comes to python programming

Significance of the Study

This study accounts significant to the students, teachers, and future


programmers.

Students. Junior and senior high school students, as well as college students, are
subjected to a heavy workload of projects and activities, particularly during this online
learning. Almost all of the students are having difficulty completing all of their
schoolwork on time because some of them have other things to do like housework,
personal planning, and sometimes they get distracted and play games for too long, so
this Pomodoro timer was created for them to break large tasks up into smaller
manageable time units.

Teachers. Teachers can also utilize this Pomodoro timer in their way of teaching so that
students can take time to absorb the topic and rest their minds for the next topic. This
can improve the performance and attentiveness of students.

Future programmers. Future programmers can use this program as a basis for
creating their own version of the Pomodoro timer. They can utilize this program and add
other features to it.

D. Programming Language
● Python
E. Variables
This part of the documentation shows the variables used in the project.
● master = the root of the GUI
● width = width of the object in px.
● height = height of the object in px.
● row = a type of geometry in tkinter that arranges the widgets.
● column = a type of geometry in tkinter that arranges the widgets.
● fg_color = foreground color, can be in tuple or single color.
● text = string
● text_font = text font and contains the text size as well.
● sticky = specifies which edge of the cell and object will stick to.
● padx = puts some space between the button widgets and the borders of the
frame and the borders of the root window.
● pady = puts some space between the button widgets and the borders of the
frame and the borders of the root window.
● weight =assigns extra space to a widget, if assigned as zero it will not give
space to the widget.
● textvariable = tkinter.StringVar object to change text of button.
● columnspan = tells the program how many columns will this object occupy.
● rowspan = tells the program how many rows will this object occupy.
● textvariable = tkinter.StringVar object to change text of a element.
● bd = represents the size of the border of a widget.
● command = callback function

F. Conditional Statements

if timer == 0: = this conditional statement’s purpose is to tell the program when to play
the sound that indicates the end of the work/end session as well as to display a
message box that alerts the user.

G. Operators

timer = 25 * 60 = indicates how many minutes there are for the work timer.
timer = 5 * 60 = indicates how many minutes there are for the break timer.

H. Loops

while timer >= 0: = this loop handles which timer to display once a button is clicked it
can be the work or break.
I. Functions

● class App(customtkinter.CTk) = category or set of different elements grouped


together that share one or more similarities with one another.

● def __init__(self, root): = self used to access the instances defined in the class
and init is called when an object is created from the class, and access is required
to initialize the attributes of the class.

● def work_break (self, timer): = this is the function that contains the calculations
and other elements that allows the timer to work.
● def work(self):= this is the function that contains the elements need for the work
part of the timer to work properly, it is called when the start button is pressed.

● def break_(self): = this is the function that contains the elements need for the
break part of the timer to work properly, it is called when the break button is
pressed.

● def main(self): = acts as the point of execution for any program.

J. Source Code

import tkinter as tk
import customtkinter
from tkinter import messagebox
from playsound import playsound
import time

#Tkinter theme
customtkinter.set_appearance_mode("System") # Modes: system (default), light, dark
customtkinter.set_default_color_theme("blue") # Themes: blue (default), dark-blue,
green

class App(customtkinter.CTk):

def __init__(self, root):


super().__init__()
#common block to display seconds and minutes
def work_break (self, timer):
minutes, seconds = divmod(timer, 60)
self.min.set(f"{minutes:02d}")
self.sec.set(f"{seconds:02d}")
self.update()
time.sleep(1)
#Work and Timer
def work(self):
timer = 25 * 60
while timer >= 0:
self.work_break(timer)
if timer == 0:
playsound("sound.wav")
messagebox.showinfo(
"Good Job", "Take A Break")
timer -= 1
def break_(self):
timer = 5 * 60
while timer >= 0:
self.work_break(timer)
if timer == 0:
# once break is done,
# switch back to work
playsound("sound.wav")
messagebox.showinfo(
"Times Up", "Get Back To Work")
timer -= 1
#Main window setup
def main(self):
self.geometry("650x300")
self.title("Pomodoro")
#Title Frame
self.frame= customtkinter.CTkFrame(master=self, width=200, height=100)
self.frame.grid(column=3, row=2, sticky="n")
self.label = customtkinter.CTkLabel(self, text="Timer" , fg_color=("gray75",
"gray30"),text_font=("DS-DIGITAL",-50))
self.label.grid(row=2, column=3)
#Minute and Second display
self.min = tk.StringVar(self)
self.min.set( "25" )
self.sec = tk.StringVar(self)
self.sec.set( "00" )
#Window Icon
self.iconbitmap("project.ico")
#Timer Frame
self.frame_right = customtkinter.CTkFrame( master=self )
self.frame_right.grid( row=5, column=3, sticky="s", padx=20, pady=20 )
self.frame_right.rowconfigure((0, 1, 2, 3,4), weight=1)
self.frame_right.rowconfigure(8, weight=10)
self.frame_right.columnconfigure((0, 1,3,4,5), weight=1)
self.frame_right.columnconfigure(2, weight=0)

self.frame_info = customtkinter.CTkFrame( master=self.frame_right )


self.frame_info.grid( row=0, column=0, columnspan=2, rowspan=4, pady=20,
padx=20, sticky="nsew" )

self.min_label = customtkinter.CTkLabel( master=self.frame_info,


textvariable=self.min, text_font=(
"DS-DIGITAL", -30), fg_color=("white", "gray38") )
self.min_label.grid(column=0, row=2, sticky="nwe", padx=15, pady=20)

self.sec_label = customtkinter.CTkLabel( master=self.frame_info,


textvariable=self.sec, text_font=(
"DS-DIGITAL", -30), fg_color=("white", "gray38"))
self.sec_label.grid(column=1, row=2, sticky="nwe", padx=15, pady=20)
#Timer Label
self.minute = customtkinter.CTkLabel(master=self.min_label,
text="Min",text_font=("DS-DIGITAL",-20))
self.minute.grid(column=0, row=1, sticky="s")
self.second = customtkinter.CTkLabel( master=self.sec_label, text="Sec",
text_font=("DS-DIGITAL", -20) )
self.second.grid( column=0, row=1, sticky="s" )

#Buttons
btn_work = customtkinter.CTkButton(self, text="Start",
bd=5, command=self.work,
fg_color=("gray75", "gray30"), text_font=(
"DS-DIGITAL", 15, "bold") ).grid(column=2, row=4)
btn_break = customtkinter.CTkButton( self, text="Break",
bd=5, command=self.break_,
fg_color=("gray75", "gray30"), text_font=(
"DS-DIGITAL", 15, "bold") ).grid(column=4, row=4)

self.mainloop()

if __name__ == "__main__":
app = App(customtkinter.CTk)
app.main()

K. Screen Shot

L. Programmers’ Profile
IVAN P. CARINGAL
Brgy. Parang ,Calapan City Oriental Mindoro
0916-369-2477
ivancaringal@gmail.com

PERSONAL DATA

Age: 19
Date of Birth: May 20, 2002
Place of Birth: Brgy. Silonay Oriental mindoro
Gender: Male
Civil Status: Single
Citizenship: Filipino
Religion: Roman Catholic
Mother’s Name: Lorna P Caringal
Father’s Name: Jerwin B Caringal

EDUCATIONAL BACKGROUND

Tertiary: Batangas State University- Alangilan Campus


          Golden Country Homes, Alangilan, Batangas City
2021- Present

Secondary:         Holy Infant Academy


Brgy. ilaya Calapan City Oriental Mindoro        
                                                   2015-2021

Primary:          Silonay Elementary School


                  Brgy. Silonay Calapan City
               2009-2015

MARK JOSHUA H. RODIL


Purok 2, Duhat, Padre Burgos, Quezon
09457820257
markjoshuar@gmail.com

PERSONAL DATA
Age: 19
Date of Birth: January 4, 2003
Place of Birth: Brgy. Duhat, Padre Burgos, Quezon
Gender: Male
Civil Status: Single
Citizenship: Filipino
Religion: Roman Catholic
Mother’s Name: Vilma Rodil
Father’s Name: Modesto Rodil

EDUCATIONAL BACKGROUND

Tertiary: Batangas State University - Alangilan Campus


Golden Country Homes, Alangilan, Batangas City
2021-present

Secondary: Manuel S. Enverga University Foundation


University Site, Lucena City, Quezon
2019-2021

Hinguiwin National High School


Hinguiwin, Padre Burgos, Quezon
2015-2019

Primary: Padre Burgos Central School


Burgos, Padre Burgos, Quezon
2009-2015

RYNIEL DAVE R. ROBLES


Blk 14 Lot 69 Margaret, Santa Maria, Bulacan
09460463044
rynsrobs@gmail.com
PERSONAL DATA
Age: 19
Date of Birth: November 8, 2002
Place of Birth: Tondo, Manila
Gender: Male
Civil Status: Single
Citizenship: Filipino
Religion: Roman Catholic
Mother’s Name: Rosella Robles
Father’s Name: Rey Robles

EDUCATIONAL BACKGROUND

Tertiary: Batangas State University


Golden Country Homes, Alangilan, Batangas City
2021-Present

Secondary: Malvar Senior High School


Poblacion 4233, Malvar, Batangas
2019-2021

Malvar National High School


M.R. Lat Street, Poblacion, Malvar, 4233, Batangas
2015-2019

Primary: North Hills Village Elementary School


V3G2+M3Q, Norzagaray, Bulacan
2009-2015

RENZ ROLAND C. MANALO


Natunuan South, San Pascual, Batangas
0956-730-1773
manalorenzroland@gmail.com

PERSONAL DATA
Age: 19
Date of Birth: July 02, 2002
Place of Birth: Batangas City, Batangas
Gender: Male
Civil Status: Single
Citizenship: Filipino
Religion: Roman Catholic
Mother’s Name: Ruth Helen C. Manalo
Father’s Name: Roland G.Manalo

EDUCATIONAL BACKGROUND

Tertiary: Batangas State University - Alangilan Campus


Golden Country Homes, Alangilan, Batangas City
2021-present

Secondary: Batangas State University - Main Campus


Rizal Avenue Ext., Batangas City, Batangas
2017-2019

Batangas State University - Main Campus


Rizal Avenue Ext., Batangas City, Batangas
2014-2017

Bauan Colleges Inc. - Bauan High School


Buendia St., Bauan, Batangas
2013-2014

Primary: Natunuan South Elementary School


Natunuan South, San Pascual, Batangas
2007-2013

KYELL P. DIMATATAC
Purok 5 Brgy. Malaya, Nagcarlan, Laguna
0921-797-1274
kyelldimatatac2@gmail.com

PERSONAL DATA

Age: 18
Date of Birth: May 21, 2003
Place of Birth: Brgy Malaya, Nagcarlan, Laguna
Gender: Male
Civil Status: Single
Citizenship: Filipino
Religion: Roman Catholic
Mother’s Name: Angelina P. Dimatatac
Father’s Name: Emeterio L. Dimatatac

EDUCATIONAL BACKGROUND

Tertiary: Batangas State University- Alangilan Campus


      Golden Country Homes, Alangilan, Batangas City
2021- Present

Secondary: San Pablo City Science Integrated High School


San Pablo City, Laguna        
                                                   2015-2021

St. Mary’s Academy of Nagcarlan


Nagcarlan, Laguna
2015 - 2019

Primary:         GV Montessori of Rizal


           Brgy. Talaga, Rizal, Laguna
                   2009-2015

You might also like