Inspiration
I've always had a passion for public speaking and have continuously strived to improve my communication skills throughout my life. It is also well known that "public speaking" is one of the largest fears in the world. I feel that it is important for human beings to be able to effectively communicate in order to express their interests/beliefs and/or ideas to the rest of the world. Therefore, I wanted to create an application that could make this goal come true. Some of the best ways to improve one's communication skills are:
- Building a strong and complex vocabulary.
- Eliminating the use of filler words such as "um", "like" and so on.
- Adding tone and expression to your voice
- Constant Practice
After many years of practicing the "art of speaking", I decided to try and make a tool to make this process easier. That is where SpeakUp comes into play. I had previously built a similar app with much fewer features and a not so strong interface called "InterPrep". However, during this hackathon I decided to start all over and make a stronger application with many more features.
What it does
SpeakUp helps users to improve their communication skills by providing:
- Immediate "speech to text" conversion of their speech
- Highlight's of specific filler words
- The ability to customize filler words
- A list of synonyms for each word that is repeated more than 3 times
- Emotion/Sentiment/Tone Detector
- A personalized database of transcripts so that the user can keep track of everything that they said in the past and see how far they have come over time
With all these features, SpeakUp allows for a powerful learning environment where users can better their speaking capabilities.
How I built it
I used the MERN (MongoDB, Express.js, React.js and Node.js) Stack to build this application. I also used the IBM Watson Speech To Text API, the Google Cloud Services Emotion/Sentiment API, an open source thesaurus api, and the MongoDB Stitch Platform.
Challenges I ran into
As with most full stack applications, I ran into a lot of challenges. A few interesting ones were:
- Trying to access the non-existent "data" parameter with a GET request. Fixed by access the "Query" parameter instead
- Implementing the color selector. Although the code for this portion was simple, the concept was very interesting and I spent a lot time on finding out other features like trying to change the pop up into a wheel (still working on it)
- Programming the feature of adding and removing custom words. Used a class blueprint and generated objects and then appended them into an array of keywords and into the DOM as well
- Highlighting specific words based on whether they are in the keywords array or not
- Constantly refreshing the page to account for the fact that the text will continuously change as the user speaks
Accomplishments that I'm proud of
I envisioned build an app like this for a long time, but I didn't have the skills to do it. Therefore, over the past 1-2 years I have been actively learning web development and am very happy that I was able to build a full stack web application in a short period of time with the help of online tutorials/demos and mentor help.
What I learned
I learned how to make AJAX calls to the server and retrieve the information that is sent back. I also learned how to use MongoDB and the MongoDB Stitch platform in order to store all the transcripts in a collection. Finally, I learned how to set up a gcloud account and use the Google Cloud Services Platform to make api calls.
What's next for SpeakUp
I would like to eventually create an authentication system so that users can login to their personalized account and access all of their information through the database. After this, I would like to launch the application, spread the word and review the feedback that people give me!

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