Even before this year, one of the most crucial skills we began and still continue to work on is our time management. Although we began getting the hang of it as we progressed through high school, moving school online brought back and further exacerbated any procrastination tendencies that had been slowly fleeting. One extension of the Pomodoro technique we had found useful in the past was something called Timeboxing. This is when you allocate a fixed time period for a set planned activity.
What it does
Our application provides the user with easy access way to quickly add tasks and receive a plan in which those tasks can be completed. This helps the user stay on track and complete as many things as they can rather than waste large amounts of time pondering what they should work on next only to get distracted by anything else. The point of our application isn't to have the user follow it to a tea 100% of the time because we understand life gets in the way. We save all of the user's data and simply allow them to try their best and make the most of their day. If they complete 60% of the list, that's 60% of fresh tasks completed that may not have been had they not used our application.
How we built it
We built this iOS application using Swift 5 and the Xcode IDE. We used builtin frameworks such as UIKit for the animations and design as well as external libraries like Firebase to store the user's data and enable easy access to their plan.
Challenges we ran into
One of the main challenges we ran into was the implementation of the UI. Our app priorities convenience so we spent much time debating on how to best present information to the user in a way that was aesthetically pleasing but also very understandable. In addition, we had to navigate Firebase and store users' data in a fast yet secure manner without overcrowding the database. While we didn't have enough time to completely finish it, we struggled with porting our iOS application to macOS so that the user could access their data on their their Mac or their iPhone. Lastly, we ran into a challenge when discussing how best to sort the users' events since we knew that different people work in different ways.
Accomplishments that we're proud of
One of the accomplishments we are most proud of is the algorithm that we developed to order a user's events. Using array manipulation, we allow the user to get a healthy mix of difficult and easy tasks while also understanding people's energy diminishes as the day goes on. Another accomplishment we are proud of is our database integration which we do believe accomplishes our goal of safely securing their data while allowing for optimal performance.
What we learned
Primary, we learned a lot about user design and UIKit, struggling but eventually overcoming problems such as using the CollectionView to aesthetically display the events. We learned a lot about debugging code and how libraries (like Firebase) can often make it difficult due to complex methods but Xcode features such as stepping into functions really helps aid that. Lastly, we gained a better understanding of how important math and algorithmic design is for an application as we had to devise a program to order the events.
What's next for doToday
First and foremost, we will implement our macOS framework after we gain a better understanding of Universal Swift. Next, we will to take our product and its distinctive ease of access to the next level by creating a collaboration center where peers can better bond with their classmates (because Zoom makes that rather difficult) and simultaneously work on tasks. We will use NLP textual analysis so that users only got the best peers for them to contact. Then we shall expand and allow tutors to sign up and mentor individuals and provide in app blockchain or Stripe technology to easily handle payments.