Weekly Tracker

Ronak Rathore | Jul 3, 2023

Weekly task tracker to keep track of your short- and long-term tasks, as well as the individual projects you have worked on, and to keep your superiors informed via emails. Both personal and professional uses are possible for this.


Abstract

This is a personal project to help you keep track of the tasks you accomplish each day at work, produce historical records from them, and gain insight into how many different tasks you completed over a certain period of time. Daily tasks for the current week will be updated, dumped into task history on a weekly basis, and a list of special tasks will be compiled, which will also be completed on a weekly basis. This will then be used to create an outlook email so that you can inform your superiors of your week's activities.


Tools and Platforms

  • Language - Python
  • Python Libraries - Pandas, Numpy, Openpyxl, Datetime, Configparser, Win32com
  • Email - Microsoft Outlook
  • Spreadsheet - any

Flowchart


Tracker - Excel File

I’m going to maintain my weekly tracker in an excel spreadsheet because it’s straightforward and supports python libraries. For the project, we must build an Excel workbook with the following three sheets:
1. Current_Week
  This sheet will be updated manually on daily basis after day’s work. This will contain fields such as

Fields Usage
Date Current date.
Task Task worked on the date.
Description Short description of the task.
Team/Project Team or Project name with whom worked.
Status Current status of the task.
Contact Person Person name who provided the task.
Additional Contact Project Manager name, optional field.

2. Work_History
  This sheet will be updated on weekly basis when the python script is triggered. This will contain all the historical records since this workbook is maintained. Sheet will contain field same as Current_Week sheet.

3. Unique_Task
  This is maintained to check number of unique task completed. This will contain only three fields as following:

Fields Usage
Start Date Date on which task was started.
Task Task.
Last Worked Date Date on which task was last accessed.

Stages

1. Configuration File:
  This will contain details such as email id list, file details and project details.

2. Generate Outlook Mail:
   The first step is to create email. Receipents will be retrieved using a configuration file. After renaming it to reflect the current week’s start and finish dates, the Current_Week sheet will be attached to emails exactly as it is. Since we are unable to share a single sheet from a workbook for this reason, I am generating a temporary workbook with the file name “week_start_date to week_end_date.xlsx,” where the week_start_date and week_end_date are fetched using the Current_Week sheet. When an email is sent, this temporary sheet will be attached and then removed.

3. Append Contents to Work_History:
   The next step is to update the Work_History sheet using the entries from Current_Week. The data from the Current_Week sheet must be processed so that it is consistent with the Work_History sheet because this sheet only has one task per cell. The processing phase entails adding full stops to the ends of phrases, combining several activities into a single task, inserting weekend dates, etc. Depending on how much attention to detail you desire, this is customised. I’m keeping this project straightforward. Once the process is complete, the dataframe will be appended to the Work_History tab using the openpyxl library. The Work_History tab is useful for going back over the assignment.

4. Generate Unique Task List:
   The last step is to make sure you are not repeating task for longer period of times. For this purpose, Unique_Task sheet is created. This sheet will contain all the unique task started by you. This will also contain start date of the task and last worked date of the task. Data in Unique_Task sheet will be truncated and refilled using Work_History tab on weekly basis.


More Details

  1. source code: Weekly Tracker