https://github.com/h2non/ng-exam
Are you a great AngularJS developer? (wip)
https://github.com/h2non/ng-exam
Last synced: 5 months ago
JSON representation
Are you a great AngularJS developer? (wip)
- Host: GitHub
- URL: https://github.com/h2non/ng-exam
- Owner: h2non
- License: wtfpl
- Created: 2014-02-18T17:20:49.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-02-20T19:06:38.000Z (over 11 years ago)
- Last Synced: 2024-03-04T09:36:01.136Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 281 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ng-exam
> **beta!**
## About
**Do you want to start a new project with AngularJS? Are you sure that developers are able to join the project?**
Be naughty and put them to the test!
This repository host a static Web application based on AngularJS, Jade and Bootstrap
that can be used as seed project to provide a ready-to-use pre-configured development environmentIt also provides a simple back-end WebService powered by Node.js and Express that should be consumed
by the front-end application## Target developers
- Front End Developer
- Full Stack Web Developer
- JavaScript Developer
- Ambitious Developer### Prefered skills
Ideally you should be familiar:
- Node.js
- Jade
- MVVM frameworks## Pre-requisites
Is required you have previously installed the following tools:
- [Node.js](http://nodejs.org)
- Grunt (`npm install -g grunt-cli`)
- Bower (`npm install -g bower`)## Setup
Clone/fork this repository (or just [download](https://github.com/h2non/ng-exam/archive/master.zip) the archive)
```
$ git clone https://github.com/h2non/ng-exam.git && cd ng-exam
```
Install node.js dependencies
```
$ npm install
```
Install bower dependencies
```
$ bower install
```## The "exam"
### Goal
This exam aims to evaluate a general technical skillsets applied to a Web development
based on Angular taken from a well undestanding of the JavaScript language and the event-driven programming
to a well the proper implementation and framework features usage### Conditions
- You **can** create your own folder structure and sources files as you need
- You **cannot** use any JavaScript library that is not already provided
- As a great developer, you **should test** your code (however is not required a full test coverage, just focus on the most critical code)
- The Web is your friend, you **can** read documentation and search help
- You **cannot** mofidy the provided JSHint validation directives### Duration
As recommendation, dependening of your desired developers filter level skillset,
the exam could be done from **2 hours** for experienced developers until to **24 hours**
(that mean discarding the time taken installing and setting up the environment)### Scenario
**To do!**
You have a seed Web application with an initial structure
### Implementation requeriments
**To do!**
Given the existent login page...
### API WebService endpoints
All the back-end communication must be performed in JSON format
#### /api/user/login [POST]
#### /api/user/register [POST]
#### /api/users [GET]
#### /api/users/:id [GET]
#### /api/users/:id [DELETE]
#### /api/users/:
### Tips
- Focus on the requirements to satisfy
- Use the features that the framework offers you
- Remember [YAGNI][yagni], [KISS][kiss] and [DRY][dry] principles when you are coding### Finally...
## Useful links
- [Angular Guide](http://docs.angularjs.org/guide/concepts)
- [Angular Style Guide](https://github.com/mgechev/angularjs-style-guide)
- [Angular Overview](http://glennstovall.com/blog/2013/06/27/angularjs-an-overview/)
- [Angular Testing Guide](http://docs.angularjs.org/guide/dev_guide.unit-testing)## Evaluation
### Code peer review
If it's possible, the implementation should be evaluated performing a code peer review by the both parts,
giving the possibility to the candidate to explain his implementation desicisions### Criteria
The order is not relevant
- Requirements satisfied
- Design patterns and separation of concerns
- Code structuration and modularity
- Impletementation complexibility
- Proper use of the framework features and components
- Proper JavaScript implementation
- Coding style and conventions## License
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
[yagni]: http://en.wikipedia.org/wiki/You_aren't_gonna_need_it
[kiss]: http://en.wikipedia.org/wiki/KISS_principle
[dry]: http://en.wikipedia.org/wiki/Don't_repeat_yourself