Inspiration
As busy students, we often feel like we spend more time organising our commitments than actually attending them! We felt the need for a solution that could not just administrate, but optimise our working patterns, to accelerate our learning.
What it does
We designed a bespoke algorithm which schedules time intervals for activities like revision or extracurriculars around fixed commitments like lectures. Students (and others) can use our intuitive interface to rate how productive they felt during a specific time slot, and these productivity patterns are analysed to automatically schedule their tasks into their most productive windows.
How we built it
We used the d3 library to create interactive graphics about user productivity data. Using post and fetch requests, we were able to pass this data into our main React dynamic web application. Then we applied an algorithm we created from scratch, implementing it first in pseudocode, and then JavaScript to schedule event blocks. We also included a live timer using the p5 library.
Challenges we ran into
Many of us were not used to working in such a big group, and so we struggled with some git features, particularly merging branches. It was great to work through these challenges, as now we are all confident we know how to securely control file versions when working with others.
Accomplishments that we're proud of
We are particularly proud of the quality of code we produced. We included thorough input validation and error messages, and had a secure development process from pseudocode.
What we learned
Going into the hackathon, we all wanted to learn a specific new skill, and so we split our application into sections using different libraries. We think we all gained good specialist knowledge in our chosen area. However, as the hackathon went on and we started combining our code more, we also learnt about each other's intended new skills, through reviewing and working with other's code. It was great to cement our new knowledge by explaining our code to each other.
What's next for Align
Align has so many opportunities for expansion. In the near future we plan to let the length of time slots vary, rather than be constrained to one hour. This will bring require us to build on our scheduling algorithm, as it may be that multiple smaller events can be moved to make room for one larger one. We would also like to further partition tasks into different types of activity, as we know people may be productive in different ways at different times.
Log in or sign up for Devpost to join the conversation.