Video Demo: https://youtu.be/MKU6NQCRR0Y?si=r1gJ5mKwo8KsbjM5
- App Name: Day by Day
- Type: Journal app
- Main Programming Language: Python, HTML, CSS
- Main Usage: To journal your day
- Inspired: Storyworthy (Homework for life)
Have you ever felt that days just goes by so quickly? Or can you recall yesterday's activity? Mostly not, and don't worry, I also felt that way. That's why I made this project spesifically, for the final project. I read a book called Storyworthy by Matthew Dicks, and one of the chapter called "Homework For Life" stuck with me. Homework For Life is a way that Matthew created for journaling your life each day shortly just for 5 minutes.
I took inspiration for that, and made a whole app for this method of journaling. Just write a maximum of 10 words to describe your day, rate it, and then submit!
It's pretty straight forward actually.
- In the homepage, click the button for start writing your journal

- You are now in the Input page. You can write for today's journal, and then rate it from 1 to 10 before submitting it

- Once you submit your journal, you can now start seeing it, in the input page there's a button to go to the Journal Page
- In the journal page you can read your journals, read the timestamp, and even can read the statistic of ratings.

- Frontend: Bootstrap
- Backend: Flask
- Input page for user inputing their journal, rating. After input alert the user that inputing process succeed
- Journal 10 words input for user to describe his/her day in 10 words. Makes sure that his/her prompt is max 10 words
- Rating for the day for user to rate for today from 1 through 10
- Journal page for showing user's journaling and rating result from his/her input.
- Table for journal for showing user's journals, column as Date, Journal, and Rating
- Statistic for rating
of how many ratings are in these 3 groups of rating:
- PEAK Days (7-10)
- Neutral Days (4-6)
- Cruel Days (1-3)
-
app.py needed for flask functionality.
indexroute just renders the homepage.input_pagehas 2 methods, the post is first checking the inputs for any errors, and if there's an error, it'll flash an alert message, if there's no error, it'll insert it into the database and alert the user that submission is success. -
helper.py handles the sqlite3 module, or things for counting words. You may also noticed that
app.pyimport this file. -
templates this folder contains HTML files for pages like homepage, input page, journal page
-
layout.html this file creates the boilerplate for all of the pages in this project, it contains navbar and bootstrap link
This project itself is open source, so if user want to use it, user need to self hosted the app. Which erase the functionality of login/register system
It is also important for privacy issues. If this project is not open source, and user have to use login/register, then their journal will also going to be visible in the database.
I'm not gonna host this app, but make it open source. So feel free to fork this project, make a login page, and host it if you want.