## Inspiration

I was inspired by the various engineers and STEM related success stories that have emerged from Africa, and I decided I wanted to provide more opportunities for Africans to educate themselves and excel in these fields. In particular, I know graph theory is an important concept in many engineering and computer fields, but graph theory is a rather abstract concept and hard to grasp at first. In order to bridge this learning gap, I decided creating a graph theory app that visualizes nodes/edges would be extremely helpful to people with less access to learning resources. This way, people in developing countries can make their mark in today's advancing technology.

## What it does

**Graph.io** visualizes advanced graph theory concepts in an intuitive way. It allows users to create nodes and connect them with edges to manually simulate a virtual graph. Graph.io offers undirected and directed graphs, which both have different applications and use cases. Users can test and visualize several algorithms, including Djikstra’s algorithm and traversal algorithms. Graph.io can be used to train both students and teachers to get them familiarized with the rather abstract field of graph theory.

**Graph.io** also offers a “Learn” page, where information and pseudocode can be found about every algorithm and type of graph. Here users can further their knowledge about algorithms.

## How I built it

Graph.io was built in Unity using C#, and the app is deployed for the web and as a standalone application.

## Challenges I ran into

One major challenge I faced was uploading the Unity project to GitHub. Since Unity generates .meta files for every file, the file count was essentially doubled and this caused issues when committing to GitHub. Eventually, I found a way to reduce these .meta files and upload the project.

## Accomplishments that I'm proud of

I am extremely proud of the simple user interface (UI) in Graph.io. It takes out the complexity of learning graph theory and makes everything more visually appealing. **Learning is better when it’s simple!**

## What I learned

I learned a lot about developing UI for apps, as well as learning algorithms myself. I knew most of these algorithms in other languages such as Java and C++, but using Unity now I know more about algorithms and data structures in C# (Unity’s language).

## What's next for Graph.io

Graph.io could be expanded to include several advanced graph theory concepts and algorithms, such as loop detection, trees, topological graphs, etc. There is so much in the graph theory field to include, and the possibilities are endless! **If applied, Graph.io can bring up a new generation of computer scientists and STEM students in Africa.**

Log inorsign up for Devpostto join the conversation.