When we arrived at Dubhacks, we started brainstorming ways that we could build something to help make the world a better place. We came up with many ideas, but were inspired by the collaborative nature of Dubhacks - which led us to thinking: How could we perpetuate an environment where seemingly towering goals could be brought to fruition? Thus, through our ideation session, our project idea was born - ideaDate!
What it does
ideaDate seeks to bridge the gap between developers worldwide. Although many open source projects exist, it is often difficult to discover a group of individuals to work with outside of environments like hackathons. Building off of a 'Tinder-esque' model, we present users with an assortment of project ideas that they might be interested in. From here, users can either 'like' or 'dismiss' projects. In turn, the posters of projects to our service will be given a list of developers and designers that are interested in jumping on board with their idea. Posters then have the ability to choose who they want to let join their team, and an email will be fired off to the developers that a poster selects. From here, users can connect with each other, and continue to build awesome things outside of the scope of hackathons!
How we built it
The design of our application consists of an API connected to a database, running in the cloud and interfacing with our client-facing app. We decided to use .Net Core 3.0 along with C# to create the API, along with MongoDB for our database. We deployed the API to Azure using the Azure App Service. We used the SendGrid API to send notifications to users when they were matched with a project. For the frontend, we used the React framework, and deployed the application through Heroku.
Challenges we ran into
We ran into some difficulties setting up the database on the backend, since the MongoDB C# Driver was confusing. Working it in with the dependency injection framework that .Net Core 3.0 provides added complexity to the project. Furthermore, dealing with rendering asynchronous API calls on the client side proved to be more complicated than we had originally anticipated. This ended up eating a lot of our time in the early hours of the morning.
Accomplishments that we're proud of
Despite the aforementioned difficulties, we managed to implement all the functionality we wanted on the backend, and were able to get the project ready for demo.
What we learned
Think about how you'll integrate frontend and backend components early and often - this was a root cause of much frustration, and had we considered it earlier on, we may have been able to implement functionality in a less painful manner.
What's next for IdeaDate
We want to integrate AI into the matching process to suggest projects based off keywords, as well as the interests (and technical skills) of developers. It would be cool to make the app mobile so that we could reach a wider audience. It would also be nice to create a better notification delivery system, as well as the integration of a chat/messaging interface into the application.