Git Product home page Git Product logo

spotify-exercise's Introduction

spotify-exercise

A Frontend developer exercise

This exercise is made to test your abilities to solve a typical frontend issue.

Context

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).

Technical Rules

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.

How to run (With Docker, Recommended)

  1. Install Docker in your computer.
  2. Run docker-compose up and open your browser pointing to http://localhost:3000

How to run (Directly on your machine)

  1. Install Mongodb on your machine, run in with the command mongod.
  2. Install Node.js and run npm install on the project folder.
  3. Run npm install -g gulp and gulp build on the root project folder to generate the backend documentation.
  4. Go to the Public/ folder and run gulp build to generate the basic frontend build.
  5. On the core project folder, just run npm start to start the application open your browser pointing to http://localhost:3000.

Backend documentation

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 tasks (frontend)

  • 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 tasks (backend)

  • gulp test: Run Mocha tests for the backend, create coverage inside coverage/backend folder.

  • gulp doc: Create Backend APIDOC documentation inside /doc folder, it is available under /docs endpoint.

  • gulp backend:build: Shorthand for gulp doc.

Gulp Build

  • gulp build: Shorthand that will run backend and frontend build tasks at the same time.

How to test

  1. Install karma-cli with: npm install -g karma-cli.
  2. Hit karma start on the project root.
  3. You will see the console and browser running the test suite, also, the coverage will be generated under coverage/frontend folder

Designs

Ask @negan1911 or @nicogelpi to share you the permissions of the designs, Zeplin is required. There is a Preview of the Zeplin Design

Important Comments (Rev. 11/17/2016)

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

spotify-exercise's People

Contributors

ggsalas avatar negan1911 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.