View on GitHub

Chris Perry

Web Developer

Our Survey Said...

A tool to capture customer or employee feedback, through a set of structured question types.

For my final project, I wanted to focus more on creating something that would be of use in a business setting. I settled on a survey application that could be used either for an organisation’s internal employees, or with their clients. Built on a Rails API using a PostgreSQL database and JWT token authentication, the front-end uses AngularJS and Bootstrap running as a separate application on the Express framework to provide the user interface.

Whilst small in the overall development process, the part that pleased me most, was discovering a way of setting the Y-axis on the Angular-Charts pie-chart I was using; as far as I’ve been able to make out, this was previously undocumented, at least until I posted it on StackOverflow. If I was doing the application again, I’d want to expand it out to encompass organisations and the structures within them. I think I’d also want to find myself a tame designer…

Project Aims

  • Build a business focused application using a Ruby-on-Rails API and an AngularJS client app
  • Give an app user the ability to create a new survey containing a variety of question types
  • Allow users to select and respond to a survey
  • Give the originator of the survey the ability to see the results of their survey and to present this in a digestible form

Technologies Used

  • HTML
  • CSS/SASS
  • Bootstrap
  • AngularJS
  • Express.js
  • Ruby on Rails
  • PostgreSQL
  • ActiveRecord
  • JWT token authentication
  • Gulp
  • Babel

Form used to create a new survey

Successes

  • The database structure, whilst apparently simple in concept, was a little trickier to set up than initially imagined, but in the event worked well for the purposes of the apparently
  • Solving the issue of how to zero-base the Y-axis of the pie-charts

Challenges

  • Given the way in which the data for survey responses builds up in the database, being able to sort them into a usable order was one of the biggest challenges - the problem is represented in the graphic below

Flow chart detailing the data sort model for Our Survey Said app

  • Understanding the complexities of dealing with wholly separate client and API applications, whilst switching between AngularJS and Ruby-on-Rails
  • Angular-Charts proved to be tricky to get installed correctly and operational

Future Development

  • Expand the data structures out to encompass ‘organisations’ and the ‘groups’ within them
  • Enhancements to the range and scope of the question types
  • Ability to present surveys to specific individuals, or groups of individuals
  • Email circulation of links to surveys
  • Add notifications system into app
  • Wholly divorce answer data from the user that provided it - privacy requirement

Live Version

Form used to respond to a survey