Python Project Report
Python Project Report
Group #15
Introduction
Throughout this semester we dedicated on making a TO-DO list program. In this report
we will present our project from three perspectives: motivation, program functions
and production process.
Motivation
We want to build something that could be relevant to most of the things we learned
during the classes and act as a solid step toward advancing our programming skill set
in the upcoming years.
Our TO-DO List program manages to cover all the basics that are mentioned in class
and also enables us to practice the API function of Google by implementing our ideas
using the data stored in the calendar.
Functions
Module Employed
For this program, the modules we used are the followings:
1. tkinter
2. tkcalendar
3. googleapiclient
4. google_auth_oauthlib
5. datefinder
6. datetime
Basic Operations
The application enables users to add events on any day/time slot they wish, which will
in turn be integrated with the users’ google calendar immediately.
Also, the application allows the users to load all the events already scheduled on a
specific date into the application with their corresponding summary and time.
Furthermore, the application can delete an event that has been loaded to the
application both in the application and on the Google calendar (similar to adding
events).
Instructions
The application will ask for users’ permission to access the Google Account in order to
synchronize the calendar functions.
To add a task: The user should enter the name of the task in the “Enter your TODO
task”, select the date of the task, type in the duration of the task (by hour), and finally,
click on the “Add Task” button.
To load tasks: The user should select the date in the “Date to get events” section and
click on the “Load Task” button.
To delete a task: The user should load the tasks and select the event to be deleted
and click “Delete task” button.
Production Process
Version 0
In Version 0, we focused on the design of the graphical user interface (GUI). Among
the various GUI packages, we chose Tkinter and Tkcalendar because they were easier
to master than other packages and had all the features we needed, especially
Tkcalendar, which saved us a lot of time in interface design.
At the same time, we also tried to make use of Google API to enable our application
to synchronize with Google Calendar.
It is worth mentioning that at this stage we do not require much functionality from the
software, the main goal is still to test whether we can successfully incorporate the
Google API into our application. Therefore, we only implemented the "Add Event"
function.
In terms of the Python code, to make sure that our codes are neat and well organized,
we decided to split the entire code into 2 Python files. The first file, named “main.py”,
is the file that contains the GUI – Tkinter part of the code on which the program is
executed. The second file, named “calendar_integration_class.py”, is purely a class for
integration of app with Google API that contains the logic for adding, retrieving and
deleting events.
As shown below, we succeeded in both creating a GUI for our application and
synchronizing it with Google Calendar.
Figure 1: Version 0 Add Task
Version 1
Since in version 0, we have already built our GUI, so we did not change much relating
to the GUI, except for some changes that are related to our updates in functions. At
this stage, we dedicated on developing the features that we have planned when we
decided to work on this project, and these features are loading the tasks that are
already on Google calendar and deleting tasks from Google calendar.
As shown below, we managed to develop all the features we wanted.
Further Improvement
The Version 2.0 is about updating the already existing events from within our app
and also to improve our user interface to increase the appeal factor for the users.
We also plan to integrate with google speech recognition and use voice commads to
add and load tasks in our TO-DO List App.