Inspiration
As impressive as complex software is, too often have we ignored its main purpose: to solve things. For problems as simple as organising and prioritising daily, trivial tasks, software with too many complex features often proves to be 'overkill'. We wanted to construct a simpler alternative to plan one's daily life for use by everyone, including those without a technical background.
What it does
VisaFlow is a tool to organise, visualise and plan tasks. The user states the tasks they wish to accomplish, their estimate for how long each will take and the dependencies between them. For example, the 'change lightbulb' task might depend on the 'buy lightbulb' and 'buy stepladder' tasks being completed. VisaFlow then organises these tasks into a plan, using critical path analysis to tell the user which tasks are most urgent.
How we built it
The backend is written in Python and uses a recursive algorithm featuring functional programming techniques to efficiently and elegantly compute the critical path and related information (earliest start/finish, float, etc). The frontend/interface is written using Javascript with React, and uses the critical path found to present to the user a visualisation. It also allows exporting the plan to json, for importing into other software (eg Trello) if desired.
Challenges we ran into
We initially had some trouble constructing the visualisation and implementing our plans, as none of us had ever written a complex interface in Javascript before. Nonetheless, we were eventually able to realise the interface - in particular, displaying to the user the tasks to do next and which is the most critical.
Accomplishments that we're proud of
We are proud of the recursive algorithm that implements critical path finding and planning. Using the powerful functional programming tools provided in Python allowed us to write a complex recursive algorithm very concisely. Furthermore, we are proud of learning Javascript within 24 hours to construct the interface.
What we learned
We gained a deeper understanding of recursive algorithms from working on the backend, and gained considerable experience in writing interfaces in Javascript from constructing the frontend. We also experimented with 3D rendering in constructing our presentation and so learnt about modern graphics processing.
What's next for VisaFlow
We intend to expand VisaFlow to allow the user to modify their plan as the project progresses. They will be able to mark the actual time taken on tasks and change their estimates, and VisaFlow will update the overall project structure (including possibly modifying the critical path) appropriately. The focus is on simplicity, as we intend this tool for 'ordinary' users, so we do not want to include too many complex features, but we believe this will be beneficial.



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