Theodore (New Application)
a facebook messenger bot that connects users with open source projects around them
Inspiration
Since I started running dev training for maker spaces in Ghana, I realized there are many developers who are willing to make contributions to projects being built in communities across Ghana, but most of these developers do not know much about projects happening around them as such are unable to contribute much to any projects around them. So I had an idea to build a New project bot that will tell them of projects happening in Ghana. The Approach was simple: put Ghana in your project topics so searching can be done easily. Over the next couple of days, it totally evolved to a point where it's able to give you information on projects on any topic you prefer and even filter by a preferred programming language.
What it does
It allows you to check projects of interest around you with Repo Names, Topics, or Even Location, and provides an overview of the project stats like Stars, open Issues and forks. It also allows you to visit the project source and fork the repository through git if you want. Also many developers go through a lot of unnecessary stress to find relevant examples on new languages or frameworks that they are learning. Having a bot request only relevant projects from a large open source host such as GitHub, makes the process a whole lot easier.
How I built it
I built a node.js express server that uses DialogFlow's NLP as a middle layer to process the conversations. If a user sends a message, our server pushes it to DialogFlow to be interpreted, then the processed intents and entities are passed to Github's Api, then the request is forwarded to the User with Facebook's Graph.
Biggest Challenge
Pagination was the biggest hell I ran into while working on this. Getting the current state of the document was quite tricky through DialogFlow was quite tricky.
Accomplishment
I'm really proud of the fact I found a fun way to keep track of what my trainees are building after sessions and increasing participation in contributing to open source projects, and provide a platform to easy learning and faster searches.
What I Learned
This project has also thought me a lot about using proper git workflows, integrating webhooks with projects and effective use of AI to build smoother conversationalist User Experiences
Next Steps
Working on a feature to allow users subscribe to specific projects and receive live updates. eg. If I'm interested in the development(without necessarily making any contributions) of the Linux Kernel, I'd like to know when major Pull Requests are merged, or be updated on significant events on the project.
Log in or sign up for Devpost to join the conversation.