Global {M} Developer Challenge
- If you're stuck at any point, don't hesitate to contact me at
[email protected]
.
-
Server uses Node.js
v7.7.1
(you can quickly switch to project's node version withnvm use
, check.nvmrc
andnvm
if you are not familiar with it). -
Server code requires MongoDB instance running on your localhost (you can adjust the parameters inside
server/config.js
file).
- To run Client code, it requires to have
ember-cli
bower
andwatchmen
installed globally. Check Ember dev guide for details.
-
There's a seed generator script. Run it first (
babel-node server/seed.js
) to populate your database! -
Install server dependencies:
2a. Navigate toserver
folder:
2b.npm install
-
Install client dependencies:
3a. Navigate toclient
folder:
3b.npm install
3c.ember install [email protected]
3d.ember generate semantic-ui-ember
-
To run server simply type
npm start
insideserver
folder. -
To run client simply type
npm start
insideclient
folder. -
To run tests:
@TODO: configure it
.
- Utilise Semantic UI for all of your views (you should install Semantic UI from CLI - see points
3a-3d
in Starting it up section). - Make sure that all endpoints are optimised.
- Use testing suite of your choice.
- Code doesn't have to have 100% test coverage!
- If you're stuck at any point, don't hesitate to contact me at
[email protected]
.
-
Create all (it's best to utilise scaffold generators) resources (routes, controllers, models, views, components, etc) needed to CRUD any given candidate using vanilla
ember-data
.- Validate form for valid email, require few fields
- Add visual cues (message/alert/notification?) that action was successful (e.g. model created, model updated, model deleted).
-
Create basic search functionality - search by name? search by skills? search by locations?
-
Install ember-concurrency add-on.
-
Generate new route and recreate steps 1-2 utilising
ember-concurrency
.- In the end, there should be 2 independent approaches showcasing the same functionality.
- Utilise
ember-concurrency
states and add visual cues - is content loading? did you restart the search task?
-
Create few Acceptance, Unit and Integration tests (1/2 each is enough; the code doesn't have to be 100% covered!).
- Pagination.
- Utilise
ember-parachute
for improved query params. - Basic authentication (Local/Gmail/LinkedIn/GitHub OAuth - pick one)
- Finish up remaining controller methods for CRUD functionality.
- Create few Integration and Unit tests (1/2 each is enough, the code doesn't have to be 100% covered!).
- Pagination.
- Basic authentication (Gmail/LinkedIn/GitHub OAuth - pick one) and endpoint access control.
- Utilise Elastic Search.
- Useful libraries:
ember-truth-helpers
ember-cli-string-helpers
ember-changeset
ember-changeset-validations
ember-notify
ember-simple-auth
torii
underscore
andunderscore.string