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