├── .data ├── .gitkeep ├── carts │ └── .gitkeep ├── menus │ ├── .gitkeep │ └── main.json ├── orders │ └── .gitkeep ├── tokens │ └── .gitkeep └── users │ └── .gitkeep ├── .gitignore ├── LICENSE ├── README.md ├── index.js └── src ├── assets ├── images │ ├── pizza1.png │ ├── pizza2.png │ ├── pizza3.png │ └── screenshots │ │ ├── 01-index.png │ │ ├── 02-login.png │ │ ├── 03-menu.png │ │ ├── 04-cart.png │ │ ├── 05-checkout.png │ │ ├── 06-success.png │ │ ├── 07-profile.png │ │ └── nodejs-logo.png ├── logo.png ├── scripts │ ├── app.js │ ├── auth.js │ ├── formProcessor.js │ ├── httpClient.js │ ├── menuList.js │ ├── shoppingCart.js │ ├── userAccountCreate.js │ ├── userAccountEdit.js │ ├── userCartRead.js │ ├── userOrderCreate.js │ └── userSessionCreate.js └── styles │ ├── app.css │ ├── bootstrap.css │ └── bootstrap.css.map ├── cli.js ├── commands ├── exitCommand.js ├── helpCommand.js ├── menusCommand.js ├── orderCommand.js ├── ordersCommand.js ├── userCommand.js └── usersCommand.js ├── config.js ├── controllers ├── assetsController.js ├── cartController.js ├── menuController.js ├── notFoundController.js ├── orderController.js ├── pingController.js ├── templateController.js ├── tokenController.js └── userController.js ├── models ├── MenuItem.js ├── Order.js ├── RequestData.js ├── ResponseContainer.js ├── ShoppingCart.js ├── Token.js └── User.js ├── router.js ├── server.js ├── services ├── assetLoader.js ├── cliHelper.js ├── database.js ├── jsonStringToObject.js ├── mailgun.js ├── passwordHash.js ├── randomString.js ├── stripe.js ├── templateLoader.js └── validator.js ├── templates ├── Index.html ├── MenuList.html ├── TemplateWrapper.html ├── UserAccountCreate.html ├── UserAccountEdit.html ├── UserCartRead.html ├── UserOrderCreate.html ├── UserOrderSuccess.html └── UserSessionCreate.html └── usecases ├── cart ├── deleteCart.js ├── getCart.js ├── postCart.js └── putCart.js ├── menu └── getMenu.js ├── order ├── getOrder.js └── postOrder.js ├── token ├── deleteToken.js ├── getToken.js ├── postToken.js ├── putToken.js ├── verifyToken.js └── verifyUserToken.js └── user ├── deleteUser.js ├── getUser.js ├── postUser.js └── putUser.js /.data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.data/carts/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.data/menus/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.data/menus/main.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/.data/menus/main.json -------------------------------------------------------------------------------- /.data/orders/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.data/tokens/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.data/users/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/README.md -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/index.js -------------------------------------------------------------------------------- /src/assets/images/pizza1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/pizza1.png -------------------------------------------------------------------------------- /src/assets/images/pizza2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/pizza2.png -------------------------------------------------------------------------------- /src/assets/images/pizza3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/pizza3.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/01-index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/01-index.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/02-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/02-login.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/03-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/03-menu.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/04-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/04-cart.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/05-checkout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/05-checkout.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/06-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/06-success.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/07-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/07-profile.png -------------------------------------------------------------------------------- /src/assets/images/screenshots/nodejs-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/images/screenshots/nodejs-logo.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/scripts/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/app.js -------------------------------------------------------------------------------- /src/assets/scripts/auth.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/auth.js -------------------------------------------------------------------------------- /src/assets/scripts/formProcessor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/formProcessor.js -------------------------------------------------------------------------------- /src/assets/scripts/httpClient.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/httpClient.js -------------------------------------------------------------------------------- /src/assets/scripts/menuList.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/menuList.js -------------------------------------------------------------------------------- /src/assets/scripts/shoppingCart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/shoppingCart.js -------------------------------------------------------------------------------- /src/assets/scripts/userAccountCreate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/userAccountCreate.js -------------------------------------------------------------------------------- /src/assets/scripts/userAccountEdit.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/userAccountEdit.js -------------------------------------------------------------------------------- /src/assets/scripts/userCartRead.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/userCartRead.js -------------------------------------------------------------------------------- /src/assets/scripts/userOrderCreate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/userOrderCreate.js -------------------------------------------------------------------------------- /src/assets/scripts/userSessionCreate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/scripts/userSessionCreate.js -------------------------------------------------------------------------------- /src/assets/styles/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/styles/app.css -------------------------------------------------------------------------------- /src/assets/styles/bootstrap.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/styles/bootstrap.css -------------------------------------------------------------------------------- /src/assets/styles/bootstrap.css.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/assets/styles/bootstrap.css.map -------------------------------------------------------------------------------- /src/cli.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/cli.js -------------------------------------------------------------------------------- /src/commands/exitCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/exitCommand.js -------------------------------------------------------------------------------- /src/commands/helpCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/helpCommand.js -------------------------------------------------------------------------------- /src/commands/menusCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/menusCommand.js -------------------------------------------------------------------------------- /src/commands/orderCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/orderCommand.js -------------------------------------------------------------------------------- /src/commands/ordersCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/ordersCommand.js -------------------------------------------------------------------------------- /src/commands/userCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/userCommand.js -------------------------------------------------------------------------------- /src/commands/usersCommand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/commands/usersCommand.js -------------------------------------------------------------------------------- /src/config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/config.js -------------------------------------------------------------------------------- /src/controllers/assetsController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/assetsController.js -------------------------------------------------------------------------------- /src/controllers/cartController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/cartController.js -------------------------------------------------------------------------------- /src/controllers/menuController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/menuController.js -------------------------------------------------------------------------------- /src/controllers/notFoundController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/notFoundController.js -------------------------------------------------------------------------------- /src/controllers/orderController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/orderController.js -------------------------------------------------------------------------------- /src/controllers/pingController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/pingController.js -------------------------------------------------------------------------------- /src/controllers/templateController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/templateController.js -------------------------------------------------------------------------------- /src/controllers/tokenController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/tokenController.js -------------------------------------------------------------------------------- /src/controllers/userController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/controllers/userController.js -------------------------------------------------------------------------------- /src/models/MenuItem.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/MenuItem.js -------------------------------------------------------------------------------- /src/models/Order.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/Order.js -------------------------------------------------------------------------------- /src/models/RequestData.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/RequestData.js -------------------------------------------------------------------------------- /src/models/ResponseContainer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/ResponseContainer.js -------------------------------------------------------------------------------- /src/models/ShoppingCart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/ShoppingCart.js -------------------------------------------------------------------------------- /src/models/Token.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/Token.js -------------------------------------------------------------------------------- /src/models/User.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/models/User.js -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/router.js -------------------------------------------------------------------------------- /src/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/server.js -------------------------------------------------------------------------------- /src/services/assetLoader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/assetLoader.js -------------------------------------------------------------------------------- /src/services/cliHelper.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/cliHelper.js -------------------------------------------------------------------------------- /src/services/database.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/database.js -------------------------------------------------------------------------------- /src/services/jsonStringToObject.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/jsonStringToObject.js -------------------------------------------------------------------------------- /src/services/mailgun.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/mailgun.js -------------------------------------------------------------------------------- /src/services/passwordHash.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/passwordHash.js -------------------------------------------------------------------------------- /src/services/randomString.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/randomString.js -------------------------------------------------------------------------------- /src/services/stripe.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/stripe.js -------------------------------------------------------------------------------- /src/services/templateLoader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/templateLoader.js -------------------------------------------------------------------------------- /src/services/validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/services/validator.js -------------------------------------------------------------------------------- /src/templates/Index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/Index.html -------------------------------------------------------------------------------- /src/templates/MenuList.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/MenuList.html -------------------------------------------------------------------------------- /src/templates/TemplateWrapper.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/TemplateWrapper.html -------------------------------------------------------------------------------- /src/templates/UserAccountCreate.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/UserAccountCreate.html -------------------------------------------------------------------------------- /src/templates/UserAccountEdit.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/UserAccountEdit.html -------------------------------------------------------------------------------- /src/templates/UserCartRead.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/UserCartRead.html -------------------------------------------------------------------------------- /src/templates/UserOrderCreate.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/UserOrderCreate.html -------------------------------------------------------------------------------- /src/templates/UserOrderSuccess.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/UserOrderSuccess.html -------------------------------------------------------------------------------- /src/templates/UserSessionCreate.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/templates/UserSessionCreate.html -------------------------------------------------------------------------------- /src/usecases/cart/deleteCart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/cart/deleteCart.js -------------------------------------------------------------------------------- /src/usecases/cart/getCart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/cart/getCart.js -------------------------------------------------------------------------------- /src/usecases/cart/postCart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/cart/postCart.js -------------------------------------------------------------------------------- /src/usecases/cart/putCart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/cart/putCart.js -------------------------------------------------------------------------------- /src/usecases/menu/getMenu.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/menu/getMenu.js -------------------------------------------------------------------------------- /src/usecases/order/getOrder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/order/getOrder.js -------------------------------------------------------------------------------- /src/usecases/order/postOrder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/order/postOrder.js -------------------------------------------------------------------------------- /src/usecases/token/deleteToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/token/deleteToken.js -------------------------------------------------------------------------------- /src/usecases/token/getToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/token/getToken.js -------------------------------------------------------------------------------- /src/usecases/token/postToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/token/postToken.js -------------------------------------------------------------------------------- /src/usecases/token/putToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/token/putToken.js -------------------------------------------------------------------------------- /src/usecases/token/verifyToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/token/verifyToken.js -------------------------------------------------------------------------------- /src/usecases/token/verifyUserToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/token/verifyUserToken.js -------------------------------------------------------------------------------- /src/usecases/user/deleteUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/user/deleteUser.js -------------------------------------------------------------------------------- /src/usecases/user/getUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/user/getUser.js -------------------------------------------------------------------------------- /src/usecases/user/postUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/user/postUser.js -------------------------------------------------------------------------------- /src/usecases/user/putUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trekhleb/nodejs-master-class/HEAD/src/usecases/user/putUser.js --------------------------------------------------------------------------------