This was a fairly simple webapp to create and manage questionnaires. A user can create a new questionnaire, modify a questionnaire, fill out an existing questionnaire, and view responses. It's also mobile-friendly. Essentially there are just Questionnaires with Questions and Responses with Answers.
This code base is a barebones rails app. Use this as a starting point (feel free to work with either Node.js or Scala if you are more comfortable.) The essential goal is to create a questionnaire app with three workflows. Clone this repo but don't fork it (you don't want to point other people to your answer!).
Here a user can name the form. And define a series of questions. For simplicity sake, each question has the following attributes:
Here a user simply fills out the form, and submits it. The system will record the answers in a persistance store of your choosing. (mySQL, SQLite3, mongoDB, etc.).
Create a simple admin page that lists the name (or some descriptor) of each user who filled out each questionnaire, when they did it, and what their answers to the questions were.
No need to focus on authentication or security. Our goal is to see you how you use technology to solve problems, and have you write some non-trivial code. Feel free to use as many (or as few) libraries, gems, other technologies as you see fit. It's important to demostrate your own style and approach.
Tailor the app to your experience. If you are applying for the junior role, a more straight forward rails app is fine. If you are more experienced, feel free to implement in a different platform (scala/node), have a more fleshed out front end, etc.
For now, please zip it all up and email it to us! We'll run it locally. You can also launch it in a heroku instance, but we'll still need the code.
The following are not required, but would definitely help set you apart from your competition:
Overall, have fun with this, we want to see the code you like to write. Reachout if you have any questions or comments. Looking forward to seeing your code!
--Everplans engineering team.