What will the application do? MoodI will allow you to express and record your daily feelings and emotions. It combines the functionality of both a journal and a mood tracker, as each journal entry must be tagged with an associated emotion of the day. You can revisit past entries and reflect on your growth, as well as view a colour-coded chart of your different moods over a period of time.
Who will use it? MoodI is for anyone who is looking to improve their emotional well-being and mental health by reflecting on their thoughts and feelings. The mood tracker aspect also allows people to observe their mood changes over time through simple data visualizations.
Why is this project of interest to you? I've experienced how beneficial self-reflection is, and writing down one's daily feelings and thoughts can aid that process of observing your growth and mental well-being. However, writing long-winded journal entries has never been my thing, and therefore I have a hard time keeping up with this habit. So, I added MoodI's mood tracking feature to allow for people like me to simply select an emotion for each day, and still have a visual representation of their emotional well-being at the end of the month to look back and reflect on.
-
As a user, I want to be able to add a journal entry with a title and date.
-
As a user, I want to be able to select an emotion tag for each entry (Ex. happy, sad, angry)
-
As a user, I want to be able to view all entry titles and emotion tags
-
As a user, I want to be able to access and read previous journal entries
-
As a user, when I select close journal or load journal, I want to be reminded to save all current changes to file and have the option to do so or not
-
As a user, I want to be given the option to load my journal entries from file
- You can generate the 1st required action related to adding Xs to a Y by clicking the button "Add entry"
- You can generate the 2nd required action by clicking the button "Find past entry", showing an entry's details by date
- You can generate another action by clicking the button "Delete entry" which deletes a past entry by date
- You can view all past entries added under "Your Journal Entries"
- You can make sure all updates are displayed on the GUI after generating new actions by clicking the button "Refresh"
- You can locate my visual component in the Calendar which highlights today's date, the MoodI logo, and the menu icons
- You can save the state of my application by clicking the first button (floppy disk icon) on the top menu
- You can reload the state of my application by clicking the second button (folder icon) on the top menu
- You can delete the state of my application by clicking the third button (trash icon) on the top menu
Thu Apr 06 12:40:19 PDT 2023 New entry added to journal Thu Apr 06 12:40:24 PDT 2023 Past entry viewed Thu Apr 06 12:40:29 PDT 2023 Past entry deleted
If I had more time to work on the project, I would probably refactor my entryList in JournalModel as a Map instead of a List, because then I could set the entry's date as the Key and the entry itself as the Value. Many of my actions such as finding or deleting a past entry needs the user to provide a date, so it can iterate through entryList to find the corresponding entry. If I used a Map, adding, removing, and finding an entry based on the date would be much faster and effective, taking only O(1). I also do not want multiple entries for the same date, and since a key can only correspond to one value, a Map could also prevent duplicates.