Having recently started group projects at university, we noticed task allocation and team management were not easy tasks. We wanted to build a platform that would schedule the tasks and set deadlines for the team and allocate roles automatically.
What it does
After creating a project and setting a few tasks, Uptimal creates a schedule to make sure the project is completed as efficiently as possible. The project manager is still allowed to modify the schedule if needed. The users (admins/project managers/employees) interact with the platform through our iOS app.
How we built it
After creating a project and setting a few tasks, our backend, powered by Google Cloud Engine, analyses the data, and using the concept of Critical Path Analysis, creates a directed graph of the project tasks. This allows us to identify the dependencies between the tasks and makes sure the critical tasks are completed at a certain point in time. The iOS app was written in Swift, and the backend in Java.
Challenges we ran into
There are lot of special cases when performing the CPA. Furthermore, there are a lot of optimisation approaches, but did not have time to implement all of our ideas.
Accomplishments that we're proud of
We took time to design the code carefully and think about the graph algorithms in detail. This isn't particularly the point of a hackathon, but we are still happy that we took time to make sure the platform ran as fast as possible.
We are also happy that we managed to keep the user interface simple, as there are a lot of project management apps that are often overly-complicated.
What we learned
We taught ourselves how to use Google Cloud Services and the MailJet API. We self-discovered advanced concepts in graph theory.