implementation of test task

I've implemented all points of task.
I've created: 
— grunt script for watching and validation html/js (to use it, make following: nom install && grunt serve);
— I decided to not use bower components because ui.bootstarp requires additional build action, all necessary libs load via cdnjs; 
— 3 controllers, for sigin, signUp and updateUser steps;
— signUp and updateUser uses the same template (views/signup.html);
— directive and service alert.js for mangment allerts, successful allerts will be hidden in 5 sec;
— service services/user.js contains all communication with API;
— E-mail is passed between signin and updateUser via User service to avoid hacking by web dev tools;
— API method PUT /use/email doesn't work properly: 
first off all its the implementation or the description don't correspond real needs. There isn't way to update data.
Then any PUT request returns 500 error (here's the response
```
Request URL:	http://api-test.ivanfarms.com/user/gv11ng@gmail.com
Django Version:	1.7
Exception Type:	Warning
Exception Value:	
Column 'name' cannot be null
Exception Location:	/home/user/Envs/venv/lib/python2.7/site-packages/MySQLdb/cursors.py in _warning_check, line 117
Python Executable:	/usr/bin/python
Python Version:	2.7.6
Python Path:	
['/home/user/api-test', '/home/user/Envs/venv/lib/python2.7/site-packages', '/home/user/Envs/venv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packag
)
```
I sure that the solution is robust and flexible.   
If you have any questions feel free to ask me. I'll be glad to discuss my implementation. 
In any case I'll be happy to get feedback from you.