Inspiration

As ambitious high school students with high goals in mind, we were sometimes having difficulties staying determined while approaching our goals. We believe in the "Don't break the chain" philosophy, which means one can achieve anything they want by small but consistent steps, because life is a marathon, not a sprint. That's why we have decided to build an app where users can easily track their goals they've set in the new year season and their progress through days, weeks or months.

What it does

Users can seamlessly transfer their new year resolutions between their devices thanks to our account system. Each resolution contains a title, a description, an icon and a list of days/weeks/months in which the smaller goal for that resolution, if there is one, is complete.

Keep in mind that our app is incomplete, and some features mentioned have not yet been implemented.

How we built it

We built our app using the Android Studio and VS Code editors, and we've tested our app both on iOS and Android during the development process. We've implemented the login system using Firebase's authentication API. We took a bottom-up approach while developing, writing the necessary classes and models first.

Challenges we ran into

One challenge we ran into was to develop the icon picker for new resolutions. We have tried at least 2 Flutter libraries that serve the purpose of icon picking, but none of them worked as expected. We had to write our own icon picker without using any third party libraries. Because there was no easy way to list all possible Flutter icons to the user, we wrote a Python script using Playwright to fetch the names of all Material icons available, and pasted the output into the code.

Another difficulty involved the DateTime method from the intl library of Flutter. First, we had trouble installing the intl package, but then we realized that there was a dependency conflict and fixed that conflict by reinstalling the correct versions of all the necessary packages.

Accomplishments that we're proud of

Both of us have used RegEx for the first time ever in this hackathon, to verify that the email typed in by the user is correctly formatted. It took us a while to figure out how RegEx worked, but at the end, we had no issues with the required RegEx.

What we learned

We learned that better project management is a must for building mobile apps. We have also strengthened our intuition of Flutter, by learning many small but useful things we wouldn't learn in an ordinary course.

What's next for New Year Resolution Tracker

We had initially planned a friendship system for our app, where people can add friends and watch each other's progress. Due to time limitations, we're planning to add that feature in a future release.

Built With

Share this project:

Updates