Inspiration

As someone deeply interested in Linux system tools and building for the command line, I wanted to create something practical, lightweight, and personal. While journaling apps exist, they’re often bloated or GUI-based. I asked myself:

“What if health tracking could live right in the terminal — as a native-feeling Linux tool?”

That idea led to careLog — a CLI-based health journaling system that helps users log, view, filter, and analyze their daily wellness directly from the terminal.

What it does

careLog is a command-line health journal that lets users:

  • log new entries with optional tags (e.g., --tag mood)
  • view all past logs
  • filter entries by keywords
  • edit or delete specific entries interactively
  • export logs to .txt or .json
  • See usage stats (like most active days, common words, total logs)

How we built it

  • Language: Pure Python 3 (no external libraries)
  • Data storage: CSV file (logs.csv)
  • Command parsing: argparse with subcommands (log, view, delete, etc.)
  • Installation: The tool can be made global via a symbolic link in /usr/local/bin, making carelog feel like a native Linux utility.
  • Project structure: Modular functions with a simple CLI interface and flat-file storage

Challenges we ran into

  • Making the CLI feel intuitive and robust with limited time
  • Implementing interactive deletion/editing from a CSV file
  • Designing a tagging system that stays optional and doesn’t break compatibility
  • Making the tool system-friendly without building a .deb package
  • Avoiding over-engineering while keeping it flexible for future features

Accomplishments that we're proud of

  • Built an actually useful health journaling CLI in under 20 hours
  • Clean command-line interface with help menus and subcommands
  • Implemented interactive editing and deletion without external tools
  • Simulated a real Linux tool via symbolic linking
  • Added tagging, export, and stats — all in one lightweight script

What we learned

-How to write clean and modular Python CLI tools using argparse

  • How to make a Python script feel like a first-class system command
  • How to simulate versioning, deletion, and updates in flat CSV files
  • How to push and manage an open-source project via GitHub

What's next for careLog

  • Turn the project into a proper .deb package for apt install carelog
  • Add optional encryption for privacy
  • Implement syncing across devices (via Git or cloud)
  • Create a TUI (terminal UI) version using something like curses
  • Add support for daily/weekly reminders
  • Make it compatible with crontab for auto-check-ins

Built With

Share this project:

Updates