A productivity app for one user
Tags: python, productivity, codenewbie
Published: 2021-12-16 06:34:33

## TL;DR:
- This is a project for the Codecademy course I'm doing right now.
- TidingsApp (_working name_) is my way of automating productivity techniques that work for me, personally.
- I plan to continuously work on this project as the solution it will provide is important to me.

## Not another productivity app
Productivity techniques and apps have been around for several decades now. From the simple to-do lists, Pomodoro timers, Bullet Journals, and apps that gamifies real-life tasks; none of those stuck with me to become a habit. It felt bad whenever a technique or app doesn't work for me—I always felt that the reason was my lack of determination or laziness.

## Don't tell me what to do! - My brain probably
It confounds me to this day why task lists never worked for me. I _do_ want to do the things the I've put on the list, but for some weird reason there's this — almost physical — mental barrier that prevents me from doing so. At the end of the day I'm left wondering why I focused on the day-to-day stuff again instead of the long-term stuff.

Thankfully, this frustration also directed me to my possible solution. To find out where my day went, I used a 21-23 minute timer and then logged what I _did_ on every cycle. In an ass-backwards, counterintuitive way, this also helped me commit and finish more tasks that could've been in my to-do list — compared to following a prepared to-do list.

I'm just a computer nerd and not a psychologist so I can't explain why it worked for me. My pet theory is that the lizard part of my brain resents authority, so telling it what it should do makes it more unlikely to do it. You know that feeling when your parents tell you what to do _while_ you were already in the middle of doing it? That feeling.

## The Have-Done list

So here are a couple of GIFs that shows my program:

![GIF showing the user entering the length of time to countdown from.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9nip4zywnbd8sw9qy4jd.gif)First, set the timer using either the hh:mm:ss or xxhxxmxxs format.

![GIF showing the output text file.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oyvfkjcub32sgurwufhb.gif)Afterwards, enter the tasks you did or in the middle of doing. The app will write this list to a text file.

[Here's the Github page to the program](https://github.com/KenAmaya/tidings-log)

This is basically the digital version of what I'm doing on a paper notebook. 

- It asks for a length of time.
- Starts the countdown.
- Asks you about the things you did during that interim.
- Write or append to a text file for your records.
- Ask if you want to start another round.

Because the logs help me keep track of what I already did, it helps me decide on what to do next. Since the tasks I'm writing down are not "written in stone," it doesn't make me feel confined.

One detrimental aspect of task lists for me was the depressed feeling I get when there's an unticked check box on my list; this method doesn't do that for me. If there was something on my mental list that I wasn't able to do, I can easily see on my record what the reason was. 

So instead of feeling bad, I can look at the reason then decide if there's something I need to fix: Do I need to reschedule? Fix a bad habit?

With the notebook I've been able to keep at it for more than 3 months now, which is already a farcry from from the other methods I tried. I've only been using the app for about a week, but it's delivering the same result so I'm hopeful

## Future Features
- Allow the user to add notes _while_ the timer is running
- Implement a proper TUI and GUI
- Output to XML instead of txt
- Reusing the code for a similar app but focused for studying: Logging the topics studied, and tracking it to a syllabus.

There are also several ideas running around in my head that I want to try out such as syncing with multiple devices.

I will most likely be the sole user of this app, but that's fine. The bonus is I get to improve my programming skills too.