Inspiration
We were inspired by the few and far between ways that a general citizen could share their experiences of being harmed by a company's wrongdoings. This spreads to multiple industries, including home energy, waste management, air travel, healthcare, pharmaceuticals, and more. The most commonly-used way that citizens can voice their concerns is through the company's contact departments, and the wheels of those systems turn slowly. We strived to create a centralized platform to ensure that all voices, big or small, were heard.
What it does
Upvoice serves as a platform that allows individuals to share their grievances about a company's business practices without the frustration of ineffective communication methods. Instead of having a personal story/experience get lost in the noise, users directly appeal to stakeholders that can advocate for systematic changes and responsible business practices.
Our main goal is for citizens to have a voice to share their unique stories and perspectives, and also advocate for the change that they want to see in the world. As users post additional stories and insights, their future stories are more often into the forefront of our application's repository.
How we built it
We utilized JavaScript and Vue.js for our frontend. The backend was built with Flask. Additionally, Sendgrid and Gemini APIs were used for complaint summarization and transmission. MongoDB served as our NoSQL database. Testing API Endpoints was done with Postman.
Challenges we ran into
One of the greatest challenges that we faced was adding the JSON Web Tokens to our Flask endpoints for logging in. Initially, our team implemented a local method of authentication with storing usernames and passwords (hashed) in our database and updating a flag on whether or not a user was logged in. Instead, JWTs are a compact and secure solution and reduce the amount of database requests needed.
We were able to overcome this challenge via rigorous testing of our API endpoints with Postman.
Accomplishments that we're proud of
All four team members picked up new skills during this hackathon! Prior to beginning, we anticipated having one front-end expert, two back-end developers, and a developer focusing on AI/ML. We are proud to say that all four of us were involved in more than one part of the full-stack web experience!
What we learned
We learned about best-practices for creating a web-app with a targeted audience, as well as the importance of adaptability when taking an idea from project ideation to project conclusion. We experimented with different project scopes (e.g. solely one industry like airlines, only one type of complaint like malpractice in the medical field), and each pivot required us to change our designs and full-stack setups to some degree.
What's next for Upvoice
We want to provide more detailed analytics / predictions (courtesy of ML) on the complaints and responses that our platform keeps track of. For example, providing predictions as to the number of lives saved or the amount in US dollars that a company's good decision could lead to. With a potential vast amount of data, there would be a lot of insights that could be uncovered to help companies make more responsible decisions.
Log in or sign up for Devpost to join the conversation.