It's a very common occurrence to Google things we want to know about, but have too many links pop up, with multiple of them giving conflicting information about things. Whether it is about getting career or education advice, or getting to know people from faraway communities - the anonymity of Reddit and other discussion boards can often lead to false conclusions about things. We wanted to make a platform that connects experts to those who want to learn more about their areas of expertise.
What it does
Users search for things they want to learn about, they find experts in those areas, and then start a conversation with them. The experts volunteer to share their areas of expertise, and they are vetted before they are put on the list of experts. The users can see their name and location, and can either chat one on one with the expert or send an email to them. The chatbox is meant to foster a one on one conversation without the worry of a cold email. However, if the user is uncomfortable with a one on one chat, or has more questions, they have the option of emailing the expert. The expert's email is not listed for privacy reasons, but Casper allows logged in users to send an email directly to them without having to know their email address, by using SendGrid's API. Experts then have the choice of continuing the conversation
How I built it
The front end of the app was built using React, which connects to a backend written in Python using the Flask library. The database was implemented using MySQL.
Challenges I ran into
We all tried to use technologies that each of us hadn't before, so it was a challenge to set up every part of it. We spent a good amount of time trying to set up a Cloud SQL database on Google Cloud Platform for our Python backend, before eventually having to give in and use a local SQL database. Then we had the challenge of connecting Flask to React - although our methods of reading and writing from the database and sending emails via SmartGrid worked on Python, it would not display on the React frontend. We all got a better understanding of the different technologies that we were using individually and how they connected to the more familiar technologies used by our teammates.
Accomplishments that I'm proud of
We got the basic functionalities of logging in, reading to and from the database, and displaying results on the React interface to work as we had intended. We also got the SendGrid API to connect and function correctly despite not being connected to the React interface.
What I learned
We learned how to connect our knowledge to technologies that we aren't familiar with, and gained more exposure to different levels of the web development stack, and even different parts of the same level. We learned that React can be difficult to compile sometimes for small things that go out of order, and that running Google Cloud SQL on a Windows machine can be near-impossible.
What's next for Casper
The email functionality needs to be implemented and the UI needs a bit of cleanup to make the base functions work. Most importantly, we have to find out a way to vet the volunteer experts and make sure that users know that they are getting correct information from the platform.