- yarn install && yarn build
- yarn api to run server
- yar start to run client
User Preferences Form with simple CRUD backend.
https://drive.google.com/file/d/0B8_8QOPNVbogN1MzZlVSUjhZUWc/view?usp=sharing (download the screenshot to get the full resolution!). Goal: Recreate the screenshot as closely as possible using free tools, web fonts (e.g. Google fonts) and font icons (e.g Font Awesome) on the web.
-
Use JavaScript (ES6/7) and Node.js 8.x. Use pure ES6/7 JavaScript as much as possible. Avoid using Lodash and jQuery.
-
Build the page using React / InfernoJS components. Focus on recreating the main form and it’s functionality. You definitely get bonus points for recreating the top bar and left menu but it’s not strictly required. It’s completely up to you if you use a bundler such as Webpack 2 or not.
-
Do not worry about filling in all the data such as languages, time zones and currency into the select boxes. A small sample data set will do, e.g. 4 countries, 4 time zones and 4 currencies.
-
Create a simple back-end API using Express or Hapi, to receive, validate and store the form data. You don’t need many API endpoints, just basic CRUD functionality, i.e. it's nice if the data gets stored in the back-end then gets loaded from the database as the user refreshes the page.
-
Store the data in MongoDB. Use of async / await functions as much as you can when doing your back-end programming.
-
Use a simple form of user session handling such as a cookie or local / session storage. No need to try and create full login / logout functionality.
-
Optional bonus points: Create a few tests asserting the correctness of the back-end API. Use could use tape or mocha and chai.
-
Optional bonus points: Add basic front-end tests.
-
Submit your work as a link to a private Github repo if possible. If you don't have a paid Github account you can submit a link to a public repo.
-
This assignment has no fixed time limit, but should be submitted within a reasonable timeframe.
Happy Hacking !