Skip to content

bot-rogerthat/z

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaScript OOP & Design Patterns Practice

Purpose

This practice covers the following:

  1. OOP in JS.
  2. Design Patterns in JS.
  3. ES6 features.
  4. BDD with Mocha and Chai.
  5. NPM infrastructure.

Also touches the following:

  1. LESS CSS preprocessor.
  2. Jade template engine.
  3. BEM methodology.
  4. DOM API.
  5. Canvas 2D and optimized rendering.
  6. Touch events API.

Z

Overview

This compound task has been conceived as play ground for design patterns practice. The final decision should look like material points system simulator. A lot of points bouncing and moving around through fancy paths ;)

Tasks

  1. Review already implemented modules to discover or repeat some ES6 basic theory.
  2. Implement DissipativeForce and GravityForce. Add them to the "scene".
  3. Implement PointsSystemFactory (abstract factory pattern) to generate systems with different "configurations" (wheel, bridge, house, or any physical object you want).
  4. Refactor view layer to meet better architecture. Use MVC pattern.
  5. Implement TouchBasedController to move points by tapping and dragging them. Use PointTouchEventEmitter module.

Additional:

Extend controller's layer to control different physical parameters (gravity constant, dissipative constant, and so on).

Steps

  1. Fork this repository.
  2. Checkout forked repository.
  3. Install Node.js.
  4. Install project dependencies by npm install.
  5. Run tests by npm run test.
  6. Run project in development mode npm run dev and open localhost:8080.
  7. Go to the src folder and implement tasks listed above.
  8. As necessary part of implementation write tests inside test folder.
  9. And don't forget to commit working decision ;)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.9%
  • Other 0.1%