This exercise is made to test your abilities to solve a typical frontend issue.
Basically, you'll need to connect our current backend to be able to do album searchs and show the current comments, allowing the user to put a comment on a album. The application should be fully responsive, as target from iphone 5 to desktop (1080p).
This should be done following the Toddmotto Styleguide, and at least 80% of code coverage by unit test.
The technology used on the frontend side should be:
- Javascript ES6+.
- A+ Promise Syntax (the q library is allowed).
- Angular 1.5.X (Component Based Flavor)
- Gulp as Task Runner.
- Webpack, Babel and Babel-Polyfill to parse the ES6 Code.
- SASS as CSS Preprocessor.
- Mocha, Karma, Chai and Sinnon for Unit-Testing.
- Install Docker in your computer.
- Run
docker-compose upand open your browser pointing tohttp://localhost:3000- If you want to make it run in any other port, create a
.envfile with this data:APP_PORT=3000, Replace 3000 with the desired port
- If you want to make it run in any other port, create a
When you run the application, you can open the documentation hitting the /docs endpoint, also, if you want to see more about the response of the search you will need to review the Spotify API.
gulp frontend:watch: Minify styles and generate build on every change, useful for development purposes.gulp frontend:build: Minify styles and generate a build, useful on Demo/Prod.
gulp test: Run Mocha tests for the backend, create coverage insidecoverage/backendfolder.gulp doc: Create Backend APIDOC documentation inside/docfolder, it is available under/docsendpoint.gulp backend:build: Shorthand forgulp doc, use if the documentation was not generated.
gulp build: Shorthand that will run backend and frontend build tasks at the same time.
- Install karma-cli with:
npm install -g karma-cli. - Hit
karma starton the project root. - You will see the console and browser running the test suite, also, the coverage will be generated under
coverage/frontendfolder
Ask @negan1911 or @nicogelpi to share you the permissions of the designs, Zeplin is required. There is a Preview of the Zeplin Design
At the moment of the release of this repository, there is an issue with ui-router that doesn't allow you to use the component: 'componentName' property on the state definition, use the template: '<component-name></component-name>' syntax until this is resolved, you can track the resolution in the link above