Code Monkey home page Code Monkey logo

2020-12-jukebox's Introduction

Jukebox

Learn how React works by implementing a Jukebox web application with it.

Table of Contents

  1. Introduction
  2. Environment
  3. Requirements
  4. Installing Dependencies
  5. Objectives
  6. Basic Requirements
  7. Extra Credit
  8. Nightare Mode
  9. Getting Help
  10. Extra Resources
  11. Contributing

Introduction

What is ReactJS?

ReactJS is not a full stack MVC solution and it doesn't claim to be. React is the V in MVC, which means as a developer you are in charge of finding and/or implementing your own M and C. React's claim to fame is an ultra performant virtual DOM that understands when the real DOM needs to be updated (and when it doesn't!).

What are we doing?

Your mission is to create a Jukebox web application utilizing ReactJS components. To get a solid understanding of what problems React solves (and does not solve), you should avoid using Flux until you get to the extra credit section. You can use any other utility libraries you'd like (i.e. lodash, bluebird).

Evaluate the web application as a whole, and then break it down into smaller components. Then break those components down, again and again until you feel you've created a solid View Component that doesn't try to "do to many things" but is also not completely useless.

CSS is your friend, or at least will become friendlier as you master it. Put your skills to the test and focus on making the application beautiful AND functional.

What's in the Repo already?

A bare-bones web application that you will flesh out with React components to create your very own Jukebox web application. Dependencies can be installed via bower and are already linked from the index.html.

Environment

Requirements

  • Node 0.10.x
  • Bower

Installing Dependencies

npm install -g bower
npm install
bower install

Installing Development Dependencies

Jukebox has some nice features that allow developers to work more efficiently. To install the development dependencies run:

npm install -g nodemon

Running the Application

Like many node applications, Jukebox can be started with npm start. If you are doing development on the application, you should instead run npm run dev. This development command starts the application with nodemon, which automatically restarts the server anytime a file is changed.

Objectives

  1. Distinguish front-to-back vs back-to-front development.
  2. Understand React's data flow and View layer solution.
  3. Learn about React component's life cycles.
  4. Get a better CSS foundation

Basic Requirements

We need an application that allows users to search for, queue up, and play music. You'll notice that these requirements are not step by step and left open to interpretation. That's done on purpose! We want to see how granular you decide to make your React components and whether you find ways to reuse any of them. Have fun!

  • Design your user interface and user experience (a quick hand sketch is recommended).
  • The application should utilize Sound Cloud for finding music.
  • Users should be able to select songs from the search results to add to their current playlist.
  • The application should be able to play the user's playlist.

Extra Credit

  • Implement a full playback control panel (seek, next, previous, loop, etc...)
  • The application should autoplay the next song when the current song ends.

Nightmare Mode:

  • Add CSS animations and transitions to UI components.
  • Add audio visualizations

Getting Help

Extra Resources

Contributing

This repository uses semantic versioning. See CONTRIBUTING.md for contribution guidelines.

License

Copyright 2014, Hack Reactor. All rights reserved. Unauthorized distribution of any code contained herein is prohibited.

2020-12-jukebox's People

Contributors

joshwyatt avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

danthareja

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.