Created: 2014-03-10 by spmbt
Task: Implement Address Book.
Technology stack: AngularJS, code should be covered by unit tests as much as possible along with e2e tests.
Nice to have feature: Dynamic support of both English and Russian (or any other) languages in UI with ability toswitch languages.
Non functional requirements: Client Side only, persistence can be done into variable or to Html Local Storage.
HTML layout: Use Bootstrap v3
Application Flow: "List" - of existed contacts (contact has at least 4 fields:
  • name: mandatory,
  • surname: optional,
  • phone number: mandatory,
  • group: optional)
supports search, and group by group field. Link to "Insert New Contact". Link to "Edit Existed Contact".
"Insert New Contact" - adding to the list of existed. Preferable implementation is sexy popup.
"Edit Existed Contact" - edit one from the list. Preferable implementation is sexy popup or inline editor.

Insert New Contact
Name:

Phone number:
Group: 
List           Filter:
Total true contacts: {{list.length - (list | filter:{group:'spam'}).length}}
Spam list Filter:
Total spam contacts: {{(list | filter:{group:'spam'}).length}}
Statistics:
All: {{list.length}}
Not spam: {{list.length - (list | filter:{group:'spam'}).length}}
Spam: {{(list | filter:{group:'spam'}).length}}

Test: (press "Run" for test some units)
Angular ver. {{version}}
Debug:
list = {{list | json : object}}