diff --git a/config/server.js b/config/server.js index dac8724..b9eb66e 100644 --- a/config/server.js +++ b/config/server.js @@ -3,15 +3,15 @@ const app = express(); const path = require('path'); // Pug config -app.use(express.static('public')); +app.use(express.static(path.join(__dirname, '../dist/public'))); app.set('view engine', 'pug'); -// Path to renred files app.set('views', path.join(__dirname, '../dist/views')); -// Routes + require('./routes/routes')(app); + + // 404 Redirect app.use((req, res) => res.status(404).send('Error 404')); - app.listen(3000, () => console.log('Listen port 3000...')); \ No newline at end of file diff --git a/dist/public/img/payments-icons/qiwi.svg b/dist/public/img/payments-icons/qiwi.svg new file mode 100644 index 0000000..1a4f4e2 --- /dev/null +++ b/dist/public/img/payments-icons/qiwi.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/public/img/service-icons/origin.svg b/dist/public/img/service-icons/origin.svg new file mode 100644 index 0000000..29a091f --- /dev/null +++ b/dist/public/img/service-icons/origin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/public/img/service-icons/steam.svg b/dist/public/img/service-icons/steam.svg new file mode 100644 index 0000000..4ddb401 --- /dev/null +++ b/dist/public/img/service-icons/steam.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/public/js/bundle.js b/dist/public/js/bundle.js index 111102f..eee860c 100644 --- a/dist/public/js/bundle.js +++ b/dist/public/js/bundle.js @@ -3560,7 +3560,7 @@ eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source cod /*! no static exports found */ /***/ (function(module, exports) { -eval("\n\n//# sourceURL=webpack:///./src/js/index.js?"); +eval("console.log('Js working');\n\n//# sourceURL=webpack:///./src/js/index.js?"); /***/ }), diff --git a/dist/public/js/materialize.config.js b/dist/public/js/materialize.config.js new file mode 100644 index 0000000..fb2d54e --- /dev/null +++ b/dist/public/js/materialize.config.js @@ -0,0 +1,5 @@ +document.addEventListener('DOMContentLoaded', function () { + // Nav-mobile menu init + M.Sidenav.init(document.querySelectorAll('.sidenav')) + M.FormSelect.init(document.querySelectorAll('select')) +}); \ No newline at end of file diff --git a/dist/views/assets/head.pug b/dist/views/assets/head.pug new file mode 100644 index 0000000..e786a1f --- /dev/null +++ b/dist/views/assets/head.pug @@ -0,0 +1,14 @@ +doctype +html(lang='ru') + head + meta(charset='utf-8') + title Digital Shop + // Materialize CSS + link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css") + // Style CSS + link(rel="stylesheet", href="./css/style.css") + // Media CSS + link(rel="stylesheet", href="./css/media.css") + // Material Icons + link(rel="stylesheet", href="https://fonts.googleapis.com/icon?family=Material+Icons") + body \ No newline at end of file diff --git a/dist/views/assets/templates/footer.pug b/dist/views/assets/templates/footer.pug new file mode 100644 index 0000000..d88afac --- /dev/null +++ b/dist/views/assets/templates/footer.pug @@ -0,0 +1,10 @@ +footer + span © 2019 Digital Store | Все права защищены. + .waves-effect.waves-light.pulse.cart-btn(id="cartBtn") + i.material-icons shopping_cart + span.counter 0 +// Maretialize JS +script(src='https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js') +// Script JS +script(src="./js/bundle.js") +script(src='./js/materialize.config.js') diff --git a/dist/views/assets/templates/header.pug b/dist/views/assets/templates/header.pug new file mode 100644 index 0000000..506b24b --- /dev/null +++ b/dist/views/assets/templates/header.pug @@ -0,0 +1,47 @@ +header + nav + // Menu-Mobile Button + a.sidenav-trigger(href='#' data-target='slide-out') + i.material-icons menu + .nav-wrapper.container + a.brand-logo.waves-effect.waves-light(href='#') + i.material-icons shop_two + span#header-title Digital Store + ul.right.hide-on-med-and-down + li.active + a(href='#') Главная + li + a(href='#') Как купить товар + li + a(href='#') Контакты + li + a(href='#') Отзывы + li + a(href='#') Мои покупки + // Menu-Mobile Content + ul#slide-out.sidenav + li + a.subheader Навигация + li + .divider + li + a(href='#') + i.material-icons home + | Главная + li + a(href='#') + i.material-icons info + | Как купить товар + li + a(href='#') + i.material-icons contact_support + | Контакты + li + a(href='#') + i.material-icons comment + | Отзывы + li + a(href='#') + i.material-icons shopping_cart + | Мои покупки + // Menu-Mobile Content END \ No newline at end of file diff --git a/dist/views/assets/templates/modals/cart.pug b/dist/views/assets/templates/modals/cart.pug new file mode 100644 index 0000000..e4184cb --- /dev/null +++ b/dist/views/assets/templates/modals/cart.pug @@ -0,0 +1,115 @@ +// Cart Modal +#cart.cart-wrap.hide + .container + .row + .cart + .cart-content + .modal-content + .modal-content__header + h4.small-title Корзина + span#cartClose.cart-close + i.material-icons close + .modal-content__items + .modal-content__item + .modal-content__title + a(href='#') + b + | Cs:go(prime) + открыта тп + инв. s:go(prime) + открыта тп + инв + br + span.in-stock В наличии: 124 (шт) + .modal-content__right + button - + input(type='number' value='1' min='1') + button + + span 139.89 + .modal-content__remove + span#item-remove + i.material-icons close + .modal-content__item + .modal-content__title + a(href='#') + b + | Cs:go(prime) + открыта тп + инв. s:go(prime) + открыта тп + инв + br + span.in-stock В наличии: 124 (шт) + .modal-content__right + button - + input(type='number' value='1' min='1') + button + + span 139.89 + .modal-content__remove + span#item-remove + i.material-icons close + .modal-content__item + .modal-content__title + a(href='#') + b + | Cs:go(prime) + открыта тп + инв. s:go(prime) + открыта тп + инв + br + span.in-stock В наличии: 124 (шт) + .modal-content__right + button - + input(type='number' value='1' min='1') + button + + span 139.89 + .modal-content__remove + span#item-remove + i.material-icons close + .modal-content__item + .modal-content__title + a(href='#') + b + | Cs:go(prime) + открыта тп + инв. s:go(prime) + открыта тп + инв + br + span.in-stock В наличии: 124 (шт) + .modal-content__right + button - + input(type='number' value='1' min='1') + button + + span 139.89 + .modal-content__remove + span#item-remove + i.material-icons close + .modal-content__item + .modal-content__title + a(href='#') + b + | Cs:go(prime) + открыта тп + инв. s:go(prime) + открыта тп + инв + br + span.in-stock В наличии: 124 (шт) + .modal-content__right + button - + input(type='number' value='1' min='1') + button + + span 139.89 + .modal-content__remove + span#item-remove + i.material-icons close + .modal-content__item + .modal-content__title + a(href='#') + b + | Cs:go(prime) + открыта тп + инв. s:go(prime) + открыта тп + инв + br + span.in-stock В наличии: 124 (шт) + .modal-content__right + button - + input(type='number' value='1' min='1') + button + + span 139.89 + .modal-content__remove + span#item-remove + i.material-icons close + .modal-content__info + .modal-content__counter + span Всего товаров в корзине + span + b 1 + .modal-content__pay + span + b Сумма к оплате + span#total-price + b 139.89 ₽ + .modal-content__purchase + button.purchase-btn.waves-effect.btn Перейти к оплате +// Cart Modal END diff --git a/dist/views/assets/templates/modals/pay.pug b/dist/views/assets/templates/modals/pay.pug new file mode 100644 index 0000000..ad56041 --- /dev/null +++ b/dist/views/assets/templates/modals/pay.pug @@ -0,0 +1,30 @@ +// Pay Modal +#pay.pay-wrap.hide + .container + .row + .pay + .pay-content + .modal-content + .modal-content__header + h4.small-title Оплатить товар + span#payClose.cart-close + i.material-icons close + form(action='#') + .modal-content__fields + .title-field + label(for='title') Наименование + select#title(name='title') + option(value='js_title') Cs:go(prime) + открыта тп + инв. 901руб + .email-field + label(for='email') Ваш E-mail + input#email(required='' type='text' name='email') + .phone-field + label(for="phone") Номер QIWI + input#phone(required='' type='text' name='phone') + .payment-field + label(for='payment') Способ оплаты + select#payment(name='payment') + option(value='qiwi' data-icon='./img/payments-icons/qiwi.svg') QIWI + .modal-content__purchase + button.purchase-btn.waves-effect.btn(type='submit' href='#') Перейти к оплате +// Pay Modal END diff --git a/dist/views/index.pug b/dist/views/index.pug index 5bf4c3b..6227a4a 100644 --- a/dist/views/index.pug +++ b/dist/views/index.pug @@ -1 +1,230 @@ -h2 Server is working \ No newline at end of file +//- Head HTML +include ./assets/head.pug +//- Header Template +include ./assets/templates/header.pug + +main.main-section + include ./assets/templates/modals/cart.pug + include ./assets/templates/modals/pay.pug + .container + .row + // Information Block + .col.s12 + #information.information + .information-content.block-content + .information-title + h2.small-title Важная информация: + .information-text + p + | Lorem ipsum dolor, sit amet consectetur adipisicing elit. Expedita laboriosam + | aliquid + | maiores similique accusamus est tempora sunt laudantium recusandae! Voluptate + | repellat + | exercitationem impedit, distinctio maiores dolore eius dicta accusamus amet, + | consequatur + | tempora, aspernatur vel provident commodi modi id. Quidem ipsa numquam sapiente + | eius + | adipisci modi nobis! Ipsum, exercitationem. Dolor, ad sit. Dicta corporis + | quisquam + | laboriosam quo id dolor minima et nulla molestias itaque quia explicabo sint, + | perspiciatis + | fuga nostrum consequatur odit dolore voluptatem commodi cumque natus? Accusamus + | fuga + | commodi + | molestiae tempore atque provident animi distinctio expedita, temporibus, + | voluptates + | quisquam + | unde. Ipsum numquam delectus repudiandae quasi veritatis omnis, corporis esse + | officia + | nobis + | veniam eos culpa corrupti sit voluptas est dolorem ratione consectetur nostrum + | eveniet + | dolor + | facilis distinctio. Voluptate amet repellendus nesciunt quam perspiciatis a + | culpa + | aspernatur + | repellat quos est ex maxime sequi, delectus ea accusantium molestias, aliquid + | velit + | dolores + | laudantium! Voluptate id officiis porro tenetur nihil dolores ratione ad + | suscipit! + | Minima. + .information-close + button.waves-effect.btn.red Закрыть + // Information Block END + + // Category Block + .col.s12 + #category.category + .category-content.block-content + .category-title.block-title + i.material-icons filter_list + h2.small-title Выберите катерорию: + .category-items + ul + li + a.active(href='#') Все товары: + li + a(href='#') Steam + li + a(href='#') VKontakte + li + a(href='#') Origin + li + a(href='#') Warface + li + a(href='#') Uplay + li + a(href='#') Fortnite + li + a(href='#') Instagram + // Category Block END + + // Filter Block + .col.s12 + #filter.filter + .filter-content.block-content + .filter-title.block-title + i.material-icons sort + h2.small-title Фильтровать товары: + .filter-options + form(action='#') + label + input#ascending.with-gap(type='radio' name='filter') + span Подешевле + label + input#descending.with-gap(type='radio' name='filter') + span Подороже + label + input#newer.with-gap(type='radio' name='filter') + span Поновее + label + input#older.with-gap(type='radio' name='filter') + span Постарее + // Filter Block END + + // Items Block + .col.s12 + #items.items + .items-content.block-content + .items-title.block-title + i.material-icons list + h2.small-title Список товаров: + .items-category + h2.small-title Steam + .items-list + .items-list__name + .list-icon + img(src='./img/service-icons/steam.svg' alt='#') + .list-title + a(href='#') Cs:go(prime) + открыта тп + инв. 901руб Cs:go(prime) + открыта тп + инв. 901руб. + .items-list__info + .list-count + span 1 шт. + .list-one + span Цена за 1 шт. + .list-price + span 145.00₽ + .list-buttons + button.btn-small.waves-effect.waves-light Купить + button.btn-small.waves-effect.waves-light + i.material-icons shopping_cart + .items-list + .items-list__name + .list-icon + img(src='./img/service-icons/steam.svg' alt='#') + .list-title + a(href='#') Cs:go(prime) + открыта тп + инв. 901руб Cs:go(prime) + открыта тп + инв. 901руб. + .items-list__info + .list-count + span 1 шт. + .list-one + span Цена за 1 шт. + .list-price + span 145.00₽ + .list-buttons + button.btn-small.waves-effect.waves-light Купить + button.btn-small.waves-effect.waves-light + i.material-icons shopping_cart + .items-category + h2.small-title Origin + .items-list + .items-list__name + .list-icon + img(src='./img/service-icons/origin.svg' alt='#') + .list-title + a(href='#') Cs:go(prime) + открыта тп + инв. 901руб Cs:go(prime) + открыта тп + инв. 901руб. + .items-list__info + .list-count + span 1 шт. + .list-one + span Цена за 1 шт. + .list-price + span 145.00₽ + .list-buttons + button.btn-small.waves-effect.waves-light Купить + button.btn-small.waves-effect.waves-light + i.material-icons shopping_cart + .items-list + .items-list__name + .list-icon + img(src='./img/service-icons/origin.svg' alt='#') + .list-title + a(href='#') Cs:go(prime) + открыта тп + инв. 901руб Cs:go(prime) + открыта тп + инв. 901руб. + .items-list__info + .list-count + span 1 шт. + .list-one + span Цена за 1 шт. + .list-price + span 145.00₽ + .list-buttons + button.btn-small.waves-effect.waves-light Купить + button.btn-small.waves-effect.waves-light + i.material-icons shopping_cart + #pagination.items-pagination + .divider + ul.pagination + li.disabled + a(href='#') + i.material-icons chevron_left + li.active + a(href='#') 1 + li.waves-effect + a(href='#') 2 + li.waves-effect + a(href='#') 3 + li.waves-effect + a(href='#') 4 + li.waves-effect + a(href='#') 5 + li.waves-effect + a(href='#') + i.material-icons chevron_right + .items-footer + .divider + .items-footer__info + .items-info__title.block-title + i.material-icons info + h3.med-title Информация + p + | Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque quaerat + | voluptatem et dolores repudiandae nulla esse amet incidunt modi! Accusamus + | enim, quia magnam assumenda necessitatibus cupiditate, error facere nulla + | ipsam quos consectetur rerum unde doloremque nisi, ipsa consequuntur odit + | illo facilis ab. Impedit libero architecto suscipit eligendi obcaecati quam + | quis blanditiis sed, optio placeat nulla odio? Facere ipsam in, fugit + | perspiciatis error quaerat pariatur excepturi et cumque tenetur accusamus + | eligendi sed debitis recusandae? Ex voluptas in rerum harum? Nam possimus + | optio similique excepturi, fugit odit. Error voluptatum quidem numquam + | placeat voluptates voluptatem repellat enim dolor quod vitae vero, libero + | perspiciatis corporis sint omnis aspernatur, doloremque rem facilis. Ratione + | inventore, nostrum aliquid dolorum totam harum. Ratione, sapiente + | dignissimos quas quibusdam unde temporibus laudantium nam error, excepturi + | natus porro quo, deserunt aliquid eius numquam iusto a nemo nobis pariatur! + | Amet a porro, sunt quod ipsum atque provident modi ut distinctio at + | expedita. + // Items Block END + +//- Footer Template +include ./assets/templates/footer.pug \ No newline at end of file diff --git a/src/js/index.js b/src/js/index.js index e69de29..22e049b 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -0,0 +1 @@ +console.log('Js working'); \ No newline at end of file