Contact Manager

Please start by forking this repository.

Once you've done that, you can get a 100 points as your score by finishings following 6 tasks:

  1. Dependency management (10 points) Our dependencies are hardcoded in vendor folder. Your task is to remove them in favor of npm.

  2. Package management (10 points) Now we can go for better package management. Let's add webpack.

  3. Architecture (40 points) The app is currently using underscore template engine and backbonejs; we think that as an application grows this current architecture will create more complexities and become slow. We believe that React+Redux architecture will reduce complexity. Your task is - convert this client-side application into above-mentioned architecture. Note, we believe that automated testing helps in reducing complexity and time on building features. You're encouraged to go as fas as 100% unit test code coverage. You can use any testing framework on your taste.

    We will evaluate by looking at following points:

    • Robustness (easy to understand and change, the libraries and frameworks used in the way they intended to be used)
    • Clean code (readability, modularity, components hierarchy, a structure of test cases)
    • Code coverage (percentage, how easy is that to break the production code, what did you find essential to cover)
  4. Redesign (25 points) We think that User Experience is of paramount importance. Since this is a subjective topic, we leave it up to you on how to design the flow of app or change the UI. You don't have to make drastic changes, but minor tweaks and improvements will do.

    We will evaluate this task by looking at following points:

    • User Experience
    • Look and Feel
  5. Storing the state (10 points) We want our customers to see their contacts next time they come back. We suggest you use client-side approach for that.

  6. Deployment (5 points) Once done with above two, please host this app on Heroku or any other cloud platform you prefer.

Result You present the URL to your GitHub repository + URL to the app where the application is deployed (Heroku, or any other platform or your choice).

Notes:
- You will get bonus points for writing meaning full git commit messages.
- Tasks doesn't have to be done in order. 
- You may take 2 days to finish this test. We expect you to submit all five tasks within 2 days. If you run into complications, please inform us so that we can allocate you some additional time.

If you have any questions regarding the test text me at danmos@aviarc.com or via facebook 'Daniil Moskovtsov'. I’ll be available most of the time.

Good luck!