Estimated time required: 3 hours.
- make sure you have npm on your dev machine
- run
npm i
to install npm dependencies - run
./node_modules/.bin/bower install
to install bower dependencies - run
gulp
to build the project with all needed dependencies
- Bootstrap (3.x) + css, js, fonts
- jQuery (2.x)
- AngularJS (1.5.x) + ui-route, resource, animate, aria
- lodash (4.x)
- don't change the build script. Its only allowed if your willing to use another css framework
- To re-build the project run
gulp
- To watch file changes run
gulp watch
- please stick to the test structure
- everything what you should need is already included
- CSS/JS is located under
/resources
- main template
index.html
is located under/public
- concentrate on at least one part.
- there will be
no bonus points
if A or B isnot
done.
- Style a form using the style guide (test_style_guide_example.png).
- The form must contain:
- 4x text fields (Street, House Number, Postal Code, City)
- 2x radio choice buttons (any option)
- 1x checkbox (any option)
- 1x “save” button
- Style each form element consistently and beautifully. Native appearances are not permitted.
- Leave comments where you were not sure how to properly proceed (had problems or time limitations)
- Use jQuery or AngularJS
- When the “save” button is clicked,
- Make a request to the Google Maps Geocode API, sending the address from the form and retrieving the location’s latitude and longitude.
- Show a warning message if the address is invalid, using animations.
- Show a similar success message if everything went well.
- If successful, use motion to display a message in the page that reads: “The coordinates for this address are: {{lat}}, {{lng}}”
- Implement the geocode functionality such that it can be reused, even without this form, even in a completely different form (for example: it accepts an address object, and returns the same object with two new properties:
successful
(boolean), andlocation
(object). - Leave comments where you were not sure how to properly proceed (or had time limitations)
- Usage of Angular.
- Usage of SCSS / SASS.
- Usage of Bootstrap LESS.
- Usage of MaterialDesign.
- Usage of ngResource.
- Usage of the ui-router.
- Usage of Angular conventions found here.
- Performant animations – especially on mobile.