“To launch a business means successfully solving problems. Solving problems means listening.” – Richard Branson

On one hand, employers, professors, and engineers often provide surveys to collect feedback to bridge the gap of knowledge and achieve higher efficiency. However, this has usually been done by one-way feedback, where people hardly hear back from their own complaints and suggestions. Would you continue giving inputs without knowing whether someone actually looks at them and attempt to solve them one day? Studies show that employees with grievances unsolved are twice as likely to attrite than the ones without it. An unsatisfied student hardly learns as much sitting in an unmatching course that he has no faith in. Not only the acknowledgment of the grievances is essential, but also a feedback from the feedback is needed to reinforce this whole system of evaluation.

On the other hand, the voice from minority or disadvantaged groups often not get to be heard, such as lower-income individuals and persons with disabilities who suffer from social exclusion. In a corporate environment, that is also applied to the ones lower down the corporate ladder who hardly have any chance to speak directly to the people further up. The phenomenon is often not due to the lack of desire of assistance from society, but the ignorance of the real needs from people standing in a completely different position. Is there a survey existing for them, it probably does. However, how do they know those feedback is actually going anywhere instead of getting discarded? A response would help!

What it does

Feedback should be designed in the way of a closed-loop, meaning that ones proving the feedback get a follow-up message or response regarding their concerns. Inspired by this story, we are bringing back the old idea of a traditional compliant box with an added feature of responding. Typically, surveys are sent out, and afterward, they never get to know what happened to that feedback. In this web app, we wish to create a task item for each of the feedback/complaints received, and the status/updates can be seen by the person who provides the feedback. The identity of the person giving feedback will be kept hidden.

Owners of the complaint box can choose their organization type, and according to that, there would be a box sample to choose from. After registering for an account, they can create a new box, for example, for their company. They will be asked to provide an email distribution list, which allows a defined group of people to access the box and provide feedback. Once the box has been set up, they can continue to receive feedback and notifications from the box. There is an option to reply and follow-up to the feedback, although the identity from the message reminds hidden replaced by a unique ID assigned.

For the ones providing feedback, they can access the box(es) on the Dashboard page of the Voice application, can provide complaint/feedback to available box(es), and be able to check the status of the responses submitted in the past.

How I built it

The application is built in Java. SparkJava framework, along with Mustache templating engine, is used for rendering dynamic web pages using Java. Bootstrap framework built-in JavaScript and CSS is used to provide a nice-looking user interface for the web application. Javascript/JQuery is used for client side processing on the HTML pages. PostgreSQL DB hosted on Heroku cloud is used for storing the application data, and the application connects to using the JDBC driver. Maven was used for managing the dependencies in the project.

Challenges I ran into

  1. Free Network based Database We firstly needed to store user information somewhere. We evaluated various database options including embedded databases such as HSQLDB, Apache Derby to network DB such as MySQL running locally… and finally settled in the Postgresql Database hosted on Heroku cloud (free version).
  2. Dynamic Generation of Webpages and Page Redirecting We started with no prior knowledge of web development, we struggled a lot in getting to generate the web pages dynamically and redirecting/linking pages with each other. There was little documentation available SparkJava framework and Mustache templating enginer, but after various pivots we were able to connect various pieces and get that to work.
  3. Team Changes We had a new member join the team during the Hackathon, who eventually dropped out in the final days. These team changes during the project development caused us to pivot our approach few times.

Accomplishments that I'm proud of

We started with no prior knowledge of web development and were able to develop a functioning and complex web application in such a short period of time, which includes learning technologies such as HTML, CSS, JavaScript, SparkJava, Mustache templating engine, DB setup on Heroku cloud etc. in a short amount of time. From having a simple idea to implement it, it is indeed more challenging but fun process than we expected. We are proud of we have made and look forward to further development.

What I learned

  1. Session Management We learnt that user's session management is a key aspect of any web application. The session not only controls who can access which pages in the application, the data stored in the session can be used through out the application.
  2. Web App Development & Bootstrap UI We chose Bootstrap, SparkJava framework, along with Mustache templating engine for generating dynamic web pages. Neither of us had experiences working on this, we spent quite an amount of time in learning and applied them in our project.
  3. Working with Limited Resources The time was quite limited in terms of learning new technologies and applying them to develop a functioning and complex web application. We learnt to push us beyond our limits, learned new technologies and functioning application.

What's next for Voice

  1. Email Integration: User will get email notifications once they are assigned a Voice box or they receive feedback on their Voice box.
  2. Cloud deployment: In the current version, the application database is hosted on Heroku cloud. In the future we plan to deploy the application to Heroku cloud as well, making it accessible from everywhere.
  3. Overall functionality Enhancements: such as Text to Voice; Voice to Text for persons with disabilities, Reminder for responses etc.
  4. Provide Incentives for giving feedback and responding to them.
Share this project: