Inspiration

Since childhood, we've been surrounded by neurodivergent friends, family, acquaintances, etc, and have witnessed how executive dysfunction and the inability to consistently stay organized have affected their academic life and their mental health. It has never been a matter of not knowing what to do, it has always been an issue of being too overwhelmed to start. Which task should I do first? What after that? TimeCraft is a tool that takes the weight of this decision-making process off the user's shoulders. This is done to promote productivity, organization, and mental health and wellness by being the stepping stone the user needs to get up and do what they need to do.

How does it work?

Through a clean and simple interface, users can input the required info such as what tasks they need to accomplish, their due dates, their level of importance, the amount of time they expect it to take (with dropdown menu options so they don't need to think too hard about it) and what they consider the level of difficulty to be. This information is then sent to the backend where it is processed through a machine learning algorithm that sorts the tasks in order of priority and sends an organized to-do list back to the user. It should be noted that burnout and mood are significant factors in the productivity of neurodivergent individuals who normally work in more spontaneous pulses. As such, the algorithm also factors in a user-inputted mood rating. "how are you feeling?" is the first question that is asked of the user as we consider the mental well-being of our users to be of utmost priority.

The algorithm will rank the tasks according to the following

  • it will first rank them by due date (due soonest will come first)
  • then by user selected importance
  • the time that the task is expected to take (shorter tasks will come first to help a smooth transition into a state of focus and productivity, neurodivergent people tend to avoid starting tasks that are very difficult so we left those for later)
  • the level of difficulty

The mood rating affects how long the to-do list is and the level of difficulty of the tasks given on the to-do list. If the user is feeling very low, the algorithm will try to give a to-do list with easier and shorter tasks to avoid overwhelming the user.

How was it made?

The frontend was build using HTML for button functionality and text addition, Javascript for sending signals to the backend, storing variables, and the bulk of the technical front end requirements, and CSS for styling. The backend was developped using Python, ScikitLearn's RandomForestRegressor machine learning algortihm, Flask to create the server and Flask RestFUL as the RestFUL API that connected the front and backend to allow the transfer of information

Challenges we ran into

We struggled a lot when connecting the front end and backend, as we kept running into a permission error related to CORS. Although we tried everything we could to fix it by asking mentors, stackoverflow, and other online ressources, we were unsuccessful in solving the issue. Although our python code outputs a to-do list, the inputs must be filled in manually since we were unable to connect the user inputs that were recieved from the front end

Another challenge we faced was on the task addition page. We made a condition that the user could not proceed until all required fields were filled out, but when making the code for some reason it would not let us proceed even when the user had filled them out. This was due to the way we were cloning the task template when creating a new task which continuously created an "empty task" that the user could not fill out, and thus the page could not proceed. We fixed this by creating an empty array that got filled with a task every time a user added one.

Accomplishments that we're proud of

We are very proud of the fact that we were able to resolve the issue on page 3 and also appropriate format all the front end variables to be sent to the backend appropriately! We are also proud that we were able to create a very clean interface, and although we didnt have that much time to implement CSS on all the pages, our main is very pretty. I believe if everything worked properly then this would be an app that we would use ourselves since the concept is very practical and useful, not only for neurodivergent people, but for any individual sufferring from burnout and looking to get organized.

What we learned

We learned a lot about new technologies and were introduced to some like:

  • Flask
  • Flask RestFUL
  • the concept of RestFUL API's
  • How to implement machine learning and what deep learning is even though deep learning was not implemented
  • How to use various styling components on CSS and integrate CSS, HTML, and Javascript components onto one singular file (using and <script> tags)</li> <li>How to bypass CORS errors (which didn&#39;t work for us but did for others!)</li> <li>How to work as a team and delegate tasks by leveraging each members individual strengths and weaknesses</li> </ul> <h2 id="whats-next-for-timecraft">What&#39;s next for Timecraft</h2> <ul> <li>Figuring out how to connect the frontend and backend interfaces to use the user inputs and display the output so it can be used</li> <li>Complete the interface using CSS</li> <li>Add additional features after launch such as background music, loading screens, and a comprehensive user profile!</li> </ul>
Share this project:

Updates