The directory structure seems rather arbitrary and the use of components on the server seems weird. Also why are you using a Makefile instead of the npm scripts and grunt? Also there is no explanation of why this is an example of the best practices in the industry