The genesis of an activity application

Moise Lala
4 min readJan 20, 2024

--

Happy New Year!

Each year, I set various goals in different categories. The categories could be gym or finance. One thing that I don’t do each year is to track the activities surrounding my goals. When I reach the end of the year and reflect on how the year went, I guess whether the goal was reached.

This could be nicer!

This year, I am changing the approach. I have decided not only to set up goals but also to track activities involving the goals. For tracking purposes, I need an application. This will be an ever-evolving application; I will start simple and then make it complex as I go.

This is what I would like to include in the application:

Calendar

  • The purpose is to display all my activities categorized based on the goals
  • At the end of the year, I would like to see how much time I have spent on a particular goal.

Todo list

  • Jotting down my ideas and what I want to do. Many to-do lists are online, but I want to make one suitable to my needs.

Reading the requirements above, I see that the application has a visual purpose, mainly to display my activities. However, before displaying the activities, I need to store them. And before I store activities, I need to understand what I have to store in the first place. I want to store activities as the goal, so it will be more straightforward to answer the original question: how much time have I spent on a particular goal?

What is an activity?

The dictionary defines an activity as something a person or group does or has done. And in the context of a goal, say, for example, you set up a goal for the gym to exercise twice a week. The activity is going to the gym. So, if I look at the application, I will see an activity linked to my gym goal performed at a particular date and time. I can answer how much time I have spent on the gym goal by counting the activities linked to my goal of going to the gym twice a week. I will break this further in the future.

For an activity, we need the date and the time that the activity took place. This is to allow us to capture and show it on the calendar. Remember that the activity must be linked to a particular goal. I want to tag the activity based on the goal.

In the application world, we group many attributes together and then assign a single name to them. So for an activity, this essentially means that an activity is composed of:

  • Start date and time
  • End date and time
  • Title
  • Goal

So with the information above, we know, for example, that an activity with the name gym was done between two dates.

Once again, the goal is the title given to this collection of attributes:

  • Title
  • Description
  • Start date
  • End date
  • Progress

I added progress as an attribute to the goal because it will be updated based on some numbers.

What is a to-do list?

A to-do list is just a list of things you have to do. A to-do list will be very handy when a particular activity is performed. For example, if I go to the gym on a particular day, the to-do list will serve to jot down the kind of exercise I will do.

Once again, when I refer to a to-do list in the application space, I am referring to this collection of attributes:

  • Title
  • Activity

But, from the semantic definition of a to-do list, we have a list of things to do. I call each thing in the list a to-do list item. A to-do list item in the application space will refer to these attributes seen together:

  • Title
  • Description
  • Executed
  • To-do list

To bring the application to life, I need these four kinds of collections to be stored somewhere. This process of storing them somewhere. This, somewhere in the application space, refers to the database. I will break this down in my next article.

Thinking from the application point of view, to see a goal or an activity, I would have to create it. Sometimes, I want to modify an activity because I may have entered the wrong data. Sometimes, I want to delete an activity because I don’t want to keep a record of that in my application. In conclusion, I need to perform three operations: create, update, or delete any of the data in the application.

I need to code the application. The question of what an application is should have been explained earlier anyway, I leave that to Google. I have to express the functionality, such as creating a to-do list in the code.

I am going to express the code in Python. For the following article, I will show how I have set up that.

Having said that, how should I approach this problem?

I will break this into a front and backend side where React and Python are used.

As a bonus, here is an image of my Google calendar showing my activities related to the goals I have set up:

I have the activities in different colors referring to different goals. I am often busy, so I have omitted my work calendar.

--

--