Inspiration

We were intrigued by the theme of the hackathon, "Growth", and pushing the limits -- literally, by creating endless possibilities. We wanted to explore trees - structures that allow us to branch into potentially hundreds of possibilities from a single input, helping us grow in our knowledge and opportunities. They are also a great metaphor for natural growth.

What it does

The programme takes a single input from a user - a title of a movie or TV series. It then analyses a database and returns a tree with the leaves corresponding to title of related movies and TV shows, with each branch representing a different similarity attribute.

How we built it

We used a publicly accessible database and python libraries (matplotlib, networkx, csv, textwrap) to construct the trees.

Challenges we ran into

  • We struggled to integrate the trees being generated into a website, since this caused us to lose much of the formatting done in matplotlib and networkx. In the end, the website contained graphs with the same nodes but less structure.
  • We were aiming to make the trees dynamic, with options to extend the branches by clicking on leaves and generating similar branches from each movie or TV series clicked. Unfortunately, we ran into many issues with formatting which prevented us from completing this in time.

Accomplishments that we're proud of

  • We're proud of creating a program which we are excited to use ourselves, and can be scaled and changed to fit a wide range of needs - from constructing etymologies of words to showing potential career paths and the prerequisites one might need to take them. Trees are a powerful structure and we are proud of having learnt to make ones, however simple.

What we learned

  • We learned a lot about visualising data with python, and working with CSV files. We also learnt how quickly a simple idea can become complicated and require many new skills.

What's next for Growing Web

It would be great to implement dynamic extensions of the trees, where clicking a leaf produces new nodes (children) that would extend the tree in a logical way. It would also be great to explore other applications beyond movies -- creating trees that would assist a user in learning complex skills by breaking them down into simpler ones, or showing the evolution of words or ideas, e.g. etymologies and political concepts.

Built With

  • csv
  • kaggle
  • matplotlib
  • networkx
  • python
Share this project:

Updates