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.

Share this project:

Updates