Inspiration
As college students, we all have had the time management struggle. There are various options of time management helpers -- google calendar, daily reminders, real notebooks -- they never solve the problem very well. After trying for years, we have identified two problems shared by all existing time management helpers:
First, when they complete the plan, users are expected to predict the durations they need to spend on tasks, but they are terrible planners! Many people are often overly optimistic about their abilities, making plans that they can never accomplish. This problem can and should be solved by data. As apps that people open for a couple of times in a day, time management apps should be the best thing to help collect data and keep track of people’s lives, but such potential has yet to be explored.
As a result of poor plannings and overtimes, the available time planned for the following tasks could be drastically shrink, disturbing the plan for the whole day if not the entire week. The snowball soon grows bigger and bigger, and eventually users would never touch their planners again.
What it does
Aiming to solve both problems at the same time, Uptime has two key functions. First, it uses machine learning to estimate the time users need to finish certain tasks, helping them make better decisions as they plan their days. However, changes are not always predictable and when that happen, Uptime has a final solution. Unlike all existing todo apps which consider their tasks separately, Uptime’s todo list links all its tasks together with each other. When one task is changed, all the following tasks can be adjust automatically, in order to better fit in users' actual working habits.
How we built it
We made our todo list interactive by allowing each tasks to communicate with each other. After finishing a task, the users report to Uptime about the actual finishing time, and Uptime will change the plan accordingly if necessary.
The data collected in the above step is stored into our database, where Uptime uses ML algorithm to predict users’ behaviors when they do the same categories of tasks. For tasks with common users, say the weekly homework of Math 215 Multivariable Calculus, for example, we also consider all users history data in order to tune the predictions for individual users.
Our machine learning algorithm is based on a weighted linear regression model, which was built using compute engine on the Google Cloud Platform. We also built part of our database on firebase and developed the frontend with React.
Challenges we ran into
As we have set up the web app over a weekend, we did not have enough user data to train our ML algorithm. We generated sets of random numbers to test the algorithm and concluded a parameter that best describes the weights between history data of the specific user and the data from other users in similar tasks.
What we learned
This is our first time using firebase and Google Cloud Platform. We have struggled a bit in the beginning but we have learnt a ton!
What's next for Uptime
We plan to add personalized options in settings to help the machine makes better prediction/adjustments according to users preferences. In addition, Uptime will generate termly time using reports to help users more consciously change their time management habits.
With a bigger picture, we want to create a bigger data base for Uptime by potentially connecting it to LMS such as Canvas and Blackboard, connecting students in the same course together. When the project matures, we will bring a beta version to several universities and keep improving it based on students feedbacks.

Log in or sign up for Devpost to join the conversation.