Moss.Earth frontend challenge
The page is currently available at moss.vitormach.dev, hosted on Netlify.
This is my implementation of the Moss.Earth frontend challenge. This project was bootstrapped with Create React App and the Must-Have Libraries (MHL) template.
The installation procedure is as usual:
$ yarn install
To run the local server:
$ yarn start
Now head to localhost:3000
in your web browser to see the results.
To run the component unit tests (Enzyme):
$ yarn test
To run the E2E tests (Puppeteer) in headless mode:
$ yarn test:e2e
The major frameworks and libraries used were:
- Typescript
- React Bootstrap/Bootstrap
- FontAwesome
- ESLint + Prettier
- Jest + Enzyme + Puppeteer
Below is the original description of the challenge:
This code challenge allows you to choose your own path and lets you flaunt your creative panache and technical skills along the way. Spend as little or as much time as you would like to complete your chosen path. Get as much completed as you can, with the focus on functionality over design.
In a fictional world, we are branching into the music business and need a new a website. This website needs to display the top 100 songs based on the iTunes API.
*Show top 100 albums based on the json feed here: https://itunes.apple.com/us/rss/topalbums/limit=100/json *A clean modern look *Clean, readable, maintainable codebase *Source code on Github *Cross browser support (or graceful degradation) *Responsive design and implementation *A good user experience
Choose one of the following routes for your journey.
"Hey! Look! Listen!"
TASKS
- All of the base requirements
- Create and implement (using HTML, CSS and JS) a basic design
- Use a CSS Framework (Bootstrap, Foundation, Pure, etc.…)
"I know Kung Fu."
TASKS
- All of the base, and novice requirements
- Use a JavaScript framework (Ember, React, Angular, etc...)
- Use SASS or LESS for custom CSS
- Make use of CSS animations
"Watch and learn Grasshopper."
TASKS
- All of the base, novice, and intermediate requirements
- Allow the top 100 to be searchable
- Allow the user to see more information about a selected Album
- Host the website on the service of your choice (We enjoy cloud hosting like Azure or AWS, but we would also settle for a .github.io address)
- Write Tests
"All is fair in love and bonus rounds"
TASKS
Surprise us!
- Add a feature that you think would work well here (for instance, advanced search, integration with other API, a "Favorite" functionality)
Show us your work through your commit history!