Skip to content
Matteo Ghetti edited this page Apr 18, 2018 · 2 revisions

Inspiration

How often did you want to start an innovative project, and tried to find out which APIs you can combine for creating something new and unique? Do you remember all the steps you had to go through to find data sets that are related and can be used for making your application unique? Or are you an API provider who is looking for a way to improve your services, so that creative minds can make the most of it?

Finding the perfect combination of APIs can be a very difficult and time consuming task. But it is not anymore, because we have the solution!

"Match me if you can" is a search platform that helps developers and API providers finding the right APIs that are necessary to create the service they want. In its intuitive user interface you can select two topics of your interest that might seem to be totally unrelated. But our innovative matchmaking algorithm finds corresponding APIs which provide exactly the combination of data sources you will need.

What it does

When selecting the topics of interest our software is initiating a lookup in the graph database Neo4J that was initially fed with all information about the available APIs. The result of this lookup will be a sorted list of APIs that are related to each other and contain data about the respective topics. These APIs can simply be combined for building the software of your dreams.

How we built it

The core of our application is the graph database Neo4J that manages the matching of APIs by creating correlations of manually assigned tags. This data is retrieved by a Java backend and forwarded to an Angular 2 frontend. A Natural Language Processor was then added to the search engine to also help retrieving information from plain English.

Challenges we ran into

None of us has worked with Neo4J before so the first challenge for us was to get to know this technology and to connect it with our backend. Thanks to the good documentation and the ease of use this didn't keep us busy for a long time.

Another challenge we faced was the collection and description of all the different APIs we integrated into our service. They all have different interfaces, sometimes very little documentation and come in different data formats. Thanks to the help of the mentors and the company representatives of the API providers we could solve these issues quite fast as well.

The extraction of the correct tags for the Natural Language Processing caused some difficulties as well because of our limited prior knowledge about this topic.

Accomplishments that we're proud of

We managed to integrate Neo4J into our application which makes the matching process of the provided APIs very fast and efficient. The teamwork also went really smooth, we managed to distribute the responsibilities very well so that everyone could work on the parts he is best at.

What we learned

We learned to use and integrate Neo4J in our application, got to know lots of APIs from the Swedish government and improved our pitching skills thanks to the mentors who provided some training to us.

What's next for "Match me if you can"

In the future our service can be expanded to many more APIs from all possible fields which would create even better matching results and many more possibilities of combining APIs for creating innovative applications. It would even be possible to combine the platform with a machine learning algorithm that identifies the kinds of data automatically and indexes new APIs on the fly.

Another topic we have to think about when our product is growing is the monetization part. One of our ideas is to charge API providers for better rankings of their services in our product. So the more they pay the more likely their APIs will be presented to our users.

Our service can also be expanded to serve as a search engine for researchers and developers trying to find open data about topics they want to investigate. Our service can provide them easily with the relations between different data sets that they would normally need to search and evaluate manually.