GithubHelp home page GithubHelp logo

earworm's Introduction

Challenge:: Front end edition

Preamble

I always get these "earworm" songs stuck in my head and can't remember the actual name of the song. It drives me nuts. I wish there was an easy way to quickly find a song based on the lyrics.

But... I'm picky. I don't like any of the existing hundred thousand lyrics search websites. They have too many ads, they're too slow, they have weird quirks and bad design. I want a custom experience that helps me find my song as quickly as possible. Ideally the website would take in a search query, then present as much context as possible about every result - the artist, the name of the song, the relevant lyrics, images of the artist / album cover, etc - in a format that allows me to review many results quickly until I find the thing I'm looking for.

Requirements

  • Your challenge is to create a music lyrics search website.
  • The user must have an obvious method of entering a search query consisting of partial song lyrics.
  • After submitting the search query, the application will display a set of song results, along with any context about the results that would help the user correctly identify the correct song as the "earworm".
  • Extra Credit: Provide some method to play the song.

You should use some sort of pre-existing lyrics search service for this project. You can use any service you want, but we have a recommended APIs we have already vetted which is both functional and free to use

You can implement a server component as part of your solution if you prefer, but a server component is not required.

You can use React if you would like to make the project faster to implement.

We like clean, easy to use UIs. If you have design skills and want to show off, then by all means show us what you are capable of. However, we won't penalize you for a basic design as long as your application is easy to use. We are using this project primarily to evaluate your engineering aptitude, not your artistic ability.

Our interest isn’t in if you can solve this exercise, but how you solve it. We value quality software engineering practices and well-documented, understandable, maintainable, and tested code bases. These priorities are what we will be looking for out of the homework assignment.

Our advice is to use this project to show off your strengths, whether those be testing, documentation, design, performance analysis, clean maintainable code, etc. At the end of the day the purpose of this project is to serve as a starting point for a discussion, so don't be afraid to lean in to areas you are passionate about and make notes about the areas you skimmed over to save time.

The final deliverable should be in the form of a pull request against this repo. The pull request should include all required documentation to help us set up the program and use it. You should also include any tools or scripts you used to test it.

Questions?

We know you are probably working on this project over the weekend or at night, when X engineers are hard at work in their underground caves building software and not checking their email. Therefore, if you hit a fork in the road in terms of requirements and you're not sure what we want in the solution, please just pick an option and document clearly the design tradeoff decision you made, and why.

earworm's People

Contributors

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