Skip to content

Personal journal

Dex Hey. Honestly the mission has been a lot and I've been meaning to keep a log. Can you build a simple journal app? I want to type a new entry, have it saved with the date, and be able to read back old ones. Nothing complicated. Just something to get thoughts out of my head ✍️

What you're building

Commands: new / read / quit

> new
2026-05-24
Had a productive morning. Finished the inventory manager project.
Figured out how JSON serialisation works properly.

[press Enter on an empty line to save]
Entry saved.

> read
--- 2026-05-24 ---
Had a productive morning. Finished the inventory manager project.
Figured out how JSON serialisation works properly.

--- 2026-05-23 ---
...

> quit

What you'll need

Hints

Append mode is the key. Opening a file with "a" adds to the end without touching what's there. That's how new entries go in without deleting old ones.

datetime.date.today() gives you the date. Convert it to a string with str() or an f-string to use it as the entry header. The datetime module is in the standard library.

Collect the entry before writing. Let the user type multiple lines, adding each one to a list. When they submit an empty line, join the list and write the whole entry at once.

Going further

Once the core journal works:

  • Limit what read shows. Always printing the entire file gets unwieldy fast. Show only the last three entries by default, with an option to show more.
  • Search entries. Add a search command that prints any entry containing a keyword.
  • Word count per entry. Show how many words each entry contains when displaying it.