├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── bin └── run ├── exercises ├── bad_practices │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ │ └── solution.js ├── decompose_balancemanager │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ │ └── solution.js ├── decompose_changehandler │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ │ └── solution.js ├── decompose_productinventory │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ │ └── solution.js ├── get_started │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ └── problem.ru.md ├── switch_statement │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ │ └── solution.js ├── tdd │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ │ └── solution.js └── verify_vendingmachine │ ├── exercise.js │ ├── problem.md │ ├── problem.pt-br.md │ ├── problem.ru.md │ └── solution │ ├── balanceManager.js │ ├── changeHandler.js │ ├── productInventory.js │ └── vendingMachine.js ├── helpers ├── commandHelpers │ ├── copyFiles.js │ └── quizRunner.js ├── customCommands.js ├── doSerial.js ├── menuHelpers │ ├── showMenu.js │ ├── writeTextMultiline.js │ └── yesNoMenu.js ├── readSubmission.js ├── resolveSubmission.js ├── runFileStreamTests.js └── runTests.js ├── i18n ├── en.json ├── pt-br.json └── ru.json ├── js-best-practices.js ├── npm-shrinkwrap.json ├── package.json └── src ├── decomposed ├── balanceManager.js ├── changeHandler.js ├── productInventory.js └── vendingMachine.js ├── expected ├── balanceManager.js ├── changeHandler.js ├── productInventory.js └── vendingMachine.js └── initial ├── balanceManager.js ├── changeHandler.js ├── productInventory.js └── vendingMachine.js /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | node_modules 3 | solutionDir 4 | *.log 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/README.md -------------------------------------------------------------------------------- /bin/run: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/bin/run -------------------------------------------------------------------------------- /exercises/bad_practices/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/bad_practices/exercise.js -------------------------------------------------------------------------------- /exercises/bad_practices/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/bad_practices/problem.md -------------------------------------------------------------------------------- /exercises/bad_practices/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/bad_practices/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/bad_practices/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/bad_practices/problem.ru.md -------------------------------------------------------------------------------- /exercises/bad_practices/solution/solution.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/bad_practices/solution/solution.js -------------------------------------------------------------------------------- /exercises/decompose_balancemanager/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_balancemanager/exercise.js -------------------------------------------------------------------------------- /exercises/decompose_balancemanager/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_balancemanager/problem.md -------------------------------------------------------------------------------- /exercises/decompose_balancemanager/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_balancemanager/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/decompose_balancemanager/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_balancemanager/problem.ru.md -------------------------------------------------------------------------------- /exercises/decompose_balancemanager/solution/solution.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_balancemanager/solution/solution.js -------------------------------------------------------------------------------- /exercises/decompose_changehandler/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_changehandler/exercise.js -------------------------------------------------------------------------------- /exercises/decompose_changehandler/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_changehandler/problem.md -------------------------------------------------------------------------------- /exercises/decompose_changehandler/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_changehandler/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/decompose_changehandler/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_changehandler/problem.ru.md -------------------------------------------------------------------------------- /exercises/decompose_changehandler/solution/solution.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_changehandler/solution/solution.js -------------------------------------------------------------------------------- /exercises/decompose_productinventory/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_productinventory/exercise.js -------------------------------------------------------------------------------- /exercises/decompose_productinventory/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_productinventory/problem.md -------------------------------------------------------------------------------- /exercises/decompose_productinventory/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_productinventory/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/decompose_productinventory/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_productinventory/problem.ru.md -------------------------------------------------------------------------------- /exercises/decompose_productinventory/solution/solution.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/decompose_productinventory/solution/solution.js -------------------------------------------------------------------------------- /exercises/get_started/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/get_started/exercise.js -------------------------------------------------------------------------------- /exercises/get_started/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/get_started/problem.md -------------------------------------------------------------------------------- /exercises/get_started/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/get_started/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/get_started/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/get_started/problem.ru.md -------------------------------------------------------------------------------- /exercises/switch_statement/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/switch_statement/exercise.js -------------------------------------------------------------------------------- /exercises/switch_statement/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/switch_statement/problem.md -------------------------------------------------------------------------------- /exercises/switch_statement/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/switch_statement/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/switch_statement/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/switch_statement/problem.ru.md -------------------------------------------------------------------------------- /exercises/switch_statement/solution/solution.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/switch_statement/solution/solution.js -------------------------------------------------------------------------------- /exercises/tdd/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/tdd/exercise.js -------------------------------------------------------------------------------- /exercises/tdd/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/tdd/problem.md -------------------------------------------------------------------------------- /exercises/tdd/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/tdd/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/tdd/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/tdd/problem.ru.md -------------------------------------------------------------------------------- /exercises/tdd/solution/solution.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/tdd/solution/solution.js -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/exercise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/exercise.js -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/problem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/problem.md -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/problem.pt-br.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/problem.pt-br.md -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/problem.ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/problem.ru.md -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/solution/balanceManager.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/solution/balanceManager.js -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/solution/changeHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/solution/changeHandler.js -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/solution/productInventory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/solution/productInventory.js -------------------------------------------------------------------------------- /exercises/verify_vendingmachine/solution/vendingMachine.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/exercises/verify_vendingmachine/solution/vendingMachine.js -------------------------------------------------------------------------------- /helpers/commandHelpers/copyFiles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/commandHelpers/copyFiles.js -------------------------------------------------------------------------------- /helpers/commandHelpers/quizRunner.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/commandHelpers/quizRunner.js -------------------------------------------------------------------------------- /helpers/customCommands.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/customCommands.js -------------------------------------------------------------------------------- /helpers/doSerial.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/doSerial.js -------------------------------------------------------------------------------- /helpers/menuHelpers/showMenu.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/menuHelpers/showMenu.js -------------------------------------------------------------------------------- /helpers/menuHelpers/writeTextMultiline.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/menuHelpers/writeTextMultiline.js -------------------------------------------------------------------------------- /helpers/menuHelpers/yesNoMenu.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/menuHelpers/yesNoMenu.js -------------------------------------------------------------------------------- /helpers/readSubmission.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/readSubmission.js -------------------------------------------------------------------------------- /helpers/resolveSubmission.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/resolveSubmission.js -------------------------------------------------------------------------------- /helpers/runFileStreamTests.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/runFileStreamTests.js -------------------------------------------------------------------------------- /helpers/runTests.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/helpers/runTests.js -------------------------------------------------------------------------------- /i18n/en.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/i18n/en.json -------------------------------------------------------------------------------- /i18n/pt-br.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/i18n/pt-br.json -------------------------------------------------------------------------------- /i18n/ru.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/i18n/ru.json -------------------------------------------------------------------------------- /js-best-practices.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/js-best-practices.js -------------------------------------------------------------------------------- /npm-shrinkwrap.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/npm-shrinkwrap.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/package.json -------------------------------------------------------------------------------- /src/decomposed/balanceManager.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/decomposed/balanceManager.js -------------------------------------------------------------------------------- /src/decomposed/changeHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/decomposed/changeHandler.js -------------------------------------------------------------------------------- /src/decomposed/productInventory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/decomposed/productInventory.js -------------------------------------------------------------------------------- /src/decomposed/vendingMachine.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/decomposed/vendingMachine.js -------------------------------------------------------------------------------- /src/expected/balanceManager.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/expected/balanceManager.js -------------------------------------------------------------------------------- /src/expected/changeHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/expected/changeHandler.js -------------------------------------------------------------------------------- /src/expected/productInventory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/expected/productInventory.js -------------------------------------------------------------------------------- /src/expected/vendingMachine.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/expected/vendingMachine.js -------------------------------------------------------------------------------- /src/initial/balanceManager.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | }; -------------------------------------------------------------------------------- /src/initial/changeHandler.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | }; -------------------------------------------------------------------------------- /src/initial/productInventory.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | }; -------------------------------------------------------------------------------- /src/initial/vendingMachine.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/excellalabs/js-best-practices-workshopper/HEAD/src/initial/vendingMachine.js --------------------------------------------------------------------------------