Inspiration
It's a well-known idea that teaching is the best way to learn. One of the most useful study tips we've heard is to explain concepts to others in order to understand them in the best way possible. We also know that there is a great inequality on the internet in terms of learning and teaching. Many people, including us, feel very intimidated to use platforms like StackOverflow to learn skills as if questions are already asked or if they are not asked in the right way, users will be very hostile. We wanted to solve this issue by creating a reputation-based system for teaching and learning.
We aimed to solve the inequality in learning and teaching by incentivizing teaching.
What it does
We created a community based application to help create a safe space for people to come together and share any skills they might have that other might want to learn. We know from personal experience that it's very difficult to get correct mentorship and guidance for specific problems, but this way both the mentee and mentor can benefit as both individuals are gaining something from the time they spend.
The system that we have designed so far runs in a manner that people gain credits for each time they help someone else. This allows for people to be able to use those credits to then be able to learn something. Everyone has something to offer and there is always someone willing to learn. So it become a great way for people to uplift each other and create a place for quality education and helps bridge the gap in academic inequality.
We also realized that people may possibly exaggerate their abilities for certain skills, so we also created a metric called reputation which would be able to help ensure that people's claims are validated to some degree.
Finally, once a mentee requests help from a mentor and the mentor agrees, then the chat session would be opened and would only close once the mentee's problem has been solved or the mentee feels that the mentor can't help them.
How we built it
Backend: Node.js written in TypeScript was used for the backend server environment. A GraphQL API using type-graphql and Apollo Server was implemented to send and receive data from the front end. MongoDB was used to persist data along with typegoose to interface with the database.
Frontend: React.js was used for the front-end environment. ChakraUI was used for styling and UI. Apollo Client was used to make GraphQL requests.
Diagram: Take a look at the diagram in the images above!
Challenges we ran into
Some issues we ran into included errors with Apollo Server in regards to error handling, database design and browser compatibility in the frontend.
What we learned
Throughout this project, we learned about the benefit of using a React UI framework and how it makes development a lot easier. We also used graphql for the first time which was pleasantly easy to use and very intuitive.
What's next for Helpr
We would like to create an audio and video chat as well in the sessions, so people can get the exact type of help that they want. We would also want to use websockets for the chatting features instead of simply using a polling method to poll the frontend every certain duration.


Log in or sign up for Devpost to join the conversation.