A simple Python program that helps you record, view, and analyze your daily moods - created as part of my journey learning Python and GitHub version control.
- ⌨️ Keyboard shortcuts for faster navigation
- 🪟 Improved popup window handling (Escape to close active windows)
- 🧠 Better internal state management for GUI windows
- 🛠 Overall UX polish and stability improvements
- 📝 Log your mood for the day
- 📖 View your mood history (stored in a local text file)
- 📊 See a mood summary showing how often each mood occurs
- 📤 Export mood history to CSV for data analysis (NEW!)
- 💾 All data saved locally for privacy and simplicity
| Shortcut | Action |
|---|---|
| Ctrl + L | Log mood |
| Ctrl + H | Open mood history |
| Ctrl + S | Open mood summary |
| Ctrl + E | Export moods to CSV |
| Ctrl + T | Toggle dark/light mode |
| Esc | Close active window |
| Alt + F4 | Exit application |
The Mood Tracker started as a console-based learning project to practice:
- File I/O in Python
- Simple analytics (frequency counting)
- Structured program flow
- Git and GitHub fundamentals
From v2.0 onward, the project transitioned to a GUI-based desktop application, introducing:
- Event-driven programming
- Window lifecycle management
- Data visualization with Matplotlib
- Keyboard accessibility and UX improvements
This project reflects incremental learning and continuous refinement, rather than a one-off assignment.
- Install Python 3.10+
- Download or clone this repository:
git clone https://github.com/Ryuji-Kishima-Fella/mood-tracker.git- Open the terminal and navigate to the mood_tracker folder:
cd mood_tracker- Run the program:
pythoon mood_tracker.py=== Mood Tracker ===
1. Log today's mood
2. View mood history
3. View mood summary
4. Export mood history to CSV
5. ExitMood Summary Example:
📊 Mood Summary:
Happy: 5 times
Stressed: 2 times
Tired: 1 time
Most frequent mood: 😌 HappyCSV Export Example:
Date,Mood
2025-11-05 19:28:56, Happy
2025-11-05 22:56:59, Tired- Add charts/graphs
- Add daily reminders
- Turn into a web or mobile app
For a full and detailed version history, see 📜 CHANGELOG.md
Summary:
v1.x — Console-based implementations and early features
v2.x — GUI-based desktop application with enhanced usability and visualization
- On some systems, keyboard shortcuts may differ by OS
- GUI layout may scale differently on high-DPI displays
- Update version number in README and CHANGELOG
- Commit and push changes
- Run
git release vX.Y.Z(or create tag manually) - Verify tag appears under Releases