This is web app designed to facilitate the collection of feedback for and individual. There is a specific workflow around the nomination of people to provide the feedback, submission and review, and distribution.
The nature of the feedback is in the form of a configurable set of questions with pick list answers and a free text comments section. All questions are optional by design since any feedback is better than none.
A useful future extension would be to facilitate ad-hoc and unsolicited feedback however that is (quite a long way) out of scope of this exercise.
To start having a look at the simple demo implemented here you will need a
basic webserver. The author used npm http-server
executed from the /base/feedbacker
directory.
To run the demo you will also need to copy the sample service responses from
the /feedbacker/test/api/samples
directory to the
/feedbacker/public/api
directory.
User interface tests are implemented using Karma.
Running these requires the following npm installations:
> npm install karma --save-dev
> npm install karma-jasmine jasmine-core karma-chrome-launcher --save-dev
> npm install -g karma-cli
The test may be executed via karma start conf/karma.conf.js
from the base
project directory.
The server is implemented in Scala and by default uses a PostgreSQL database.
Some useful commands are:
> sbt
sbt> test
sbt> run
sbt> docker:publishLocal
Feedbacker is implemented using scala and Play Framework on the server side, with Angular JS (version 1) and Bootstrap in the browser.
To develop you will need:
Tools and documentation include:
To initialise the database for development follow the below steps:
- Install PostgreSQL
- Create a system user with the following credentials
Username:
feedback-service
Password:password
- Create a new schema called feedbacks using the new user
- Apply all the up evolutions in the /conf/evolutions directory
NOTE: change the system password when deploying on a server.
There are are number of features which have been considered but not implemented at this point. These include:
- pre-configure an internal hierarchy model within Feedbacker
- additional reporting for viewing and/or sharing feedback
- renaming Feedbacker to remove needless vowels