As someone that doesn't often have a pen and pad laying around but was always within reach of a laptop or phone and always has Facebook open, I thought that having a way to track my mood and what I've done in my day through Facebook would be a great project. Using some of the criteria from the hackathon also worked in nicely with how I wanted the bot to work in terms of having something remind me to fill in my log. And also to give me easy to use prompts so that I didn't have to worry about putting the effort in and getting demotivated to use the journal.
What it does
- The bot will allow a user to store a mood score and as many journal entries as they would like each day.
- They can get back information on their current day.
- They can get back statistics on their average mood score across a set time period.
- They can get back statistics on their most common mood scores over a set time period.
- They can be reminded to fill out their journal using one time notifications.
- They can unsubscribe from the service to have their data removed.
How I built it
Our team had initial meetings to discuss the project, made a design document to outline our tasks and also the general functionality. We then worked collaboratively to build the system using pair programming, while streaming over discord.
Challenges I ran into
Using languages that are less familiar to some of the team, using facebooks messaging API's as none of us had used it before, using webhooks as we also had very little experience with them. We also did not have access to the users' timezone which meant that everything was running off of server time and this would not work for people not using GMT. We did apply but were declined.
Accomplishments that I'm proud of
Managing to use the One Time Notifications API call as well as translating the demo projects for webhooks into functioning code for our webhooks.
What I learned
How Facebook messenger works and stores information, as well as how to use the webhooks for it.
What's next for Mood Journal
Publishing it fully and expanding on the project to be more feature full.