Inspiration
Our inspiration for this project were that we realized many people strive to takes notes and reflect but often waste time in their physical journals, and a mobile app to consolidate journals and to be able to easily view the trend of your life was much needed.
What it does
Day Rater allows the user to input their score for their day using a slider and to type in some comments about their day, which Day Rater stores locally for the user and logs it in the "History" tab. Users are then able to see statistics about their ratings back in the main page such as streak, weekly average, and total entries. This allows users to thoughtfully reflect on their day while taking as little of the user's time as possible.
How we built it
We began with the given boilerplate code and began adding a DatabaseHelper class, which uses SQLite to store user entries in their local backend. We also utilized Toast to send small pop-up messages to notify users when they've entered a rating as well as when they've deleted their entries. To display the history of entries, we iterated through the data from the database using a Cursor and separating the date/rating and texts of entries for better visibility. We completed the backend of our app with statistics by processing the database and displaying digested data to the user.
For the front-end, our team utilized both the built-in design editor in android studio as well as XML styling the components of our app. We also imported fonts and a custom logo for a more aesthetic design.
Challenges we ran into
None of our members had any experience with android studio development or even mobile application development in general. We had to learn the design architecture of android application as well as how components can interact and send data to each other.
Learning how to store the user data in SQLite was the biggest challenge we faced, as we had to learn how to store values of different data types such as Date, integer, and string. We eventually overcame this by creating a DatabaseHelper class with various functions such as add/update/delete that allowed us to process data that the users have entered.
We also struggled with separating the user entries into items and sub-items, as our original design displayed the date, rating, and text all in the same text box. Since we were adding data from the database to an array and displaying the array using an array adapter, it was impossible to format the different values of the entries differently. We solved this by using a simple adapter instead and storing the data as a list of HashMaps, where the date and the rating is stored as the key and the text is stored as the value, which allowed us to change the formatting of the date/rating and the text, making entries much easier to read.
Accomplishments that we're proud of
We're super proud of being able to connect a backend to a mobile app front end and being able to process the data and update them to the user display in real time. Another accomplishment we were proud of was making a decently aesthetic front end with components that were properly spaced and constrained. But above all, we were the most proud of completing our first hackathon and coming out with a product.
What we learned
-How to use android studio -Version control with Git -Working with a team -How to connect SQLite to a mobile front end
What's next for Day Rater
-Server side hosted user login authentication that could store user data on the cloud and allow users to log in from multiple devices. -Social aspect: able to see friends' ratings and trends -Cross platform support
Log in or sign up for Devpost to join the conversation.