diff --git a/README.md b/README.md index ef57b67..a80ade3 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@

Digital Store - это настраиваемый интернет-магазин на платформе NodeJS для продажи ваших цифровых товаров.
- Демонстрания функционирования интернет-магазина. + Демонстрация функционирования интернет-магазина.

GitHub package.json version (branch) @@ -40,17 +40,17 @@ - [Лицензия](#Лицензия) ## О проекте: -Этот проект представляет из себя интернет-магазин на платформе NodeJS, вы можете продавать свои цифровые товары именно скачав этот репозиторий, в [панели управления](#Панель-управления) вы сможете создавать, удалять и редактировать товары или категории . В проекте используется концепция REST API, поэтому для отдачи информации клиенту существует отдельный API. Информация о покупателях, товарах, категориях и т.д хранится в БД MongoDB (используется нативный драйвер). +Этот проект представляет из себя интернет-магазин на платформе NodeJS, Вы можете продавать свои цифровые товары именно загрузив этот репозиторий, в [панели управления](#Панель-управления) Вы сможете создавать, удалять и редактировать товары или категории . В проекте используется концепция REST API, поэтому для отдачи информации клиенту существует отдельный API. Информация о покупателях, товарах, категориях и т.д хранится в БД MongoDB (используется нативный драйвер). ### Функционал покупателя: - Возможность выбирать интересующие категории, переход по одиночным страницам конкретного товара. - Возможность комментировать как отдельный товар, так и весь магазин на отдельной странице с помощью системы комментариев Disqus. - Возможность фильтровать интересующую категорию или все товары через фильтр. -- Покупатель может совершать одну или несколько покупок через корзину или через кнопку "Купить". +- Покупатель может совершать одну или несколько покупок через корзину или кнопку "Купить". - Оплата осуществляется через сервис QIWI API. -- Результатом оплаты будут данные одного или нескольких товаров, все данные отсылаются на почту покупателя, которую он указывал при создании заказа. +- Результатом оплаты будут данные одного или нескольких товаров, все данные отсылаются на электронную почту покупателя, которую он указал при создании заказа. - Покупатель может узнать все свои совершенные покупки в магазине на отдельной странице. ### Функционал администратора: -Для входа в админ-панель необходимо дописать в адресной строке `/admin`, после вы попадете на страницу авторизации где нужно вписать данные `email:password`. По умолчанию `admin@support.ru:admin` +Для входа в админ-панель необходимо дописать в адресной строке `/admin`, после Вы попадете на страницу авторизации где нужно ввести данные в формате `email:password`. По умолчанию `admin@support.ru:admin` - Пароль админа хэшируется через `bcrypt` для безопасности и записывается в БД. - На главной странице есть небольшая статистика, где можно посмотреть: сумму проданных товаров, кол-во проданных товаров, кол-во товаров в наличии. - На главной странце так же можно узнать подробные данные о покупателях: номер заказа, почта покупателя, способ оплаты, дата покупки, сумма и данные которые были высланы по почте. @@ -71,21 +71,24 @@ - Или клонировать репозиторий `git clone https://github.com/sergeyyarkov/digital-store.git -b production`. - Установите [Node.js](https://nodejs.org/ru/) не ниже версии 7.6.0, в процессе установки Node.js установите Node Package Manager. - Установите БД MongoDB на ваш компьютер или создайте кластер на сайте [www.mongodb.com](https://www.mongodb.com/) и импортируйте туда дамп структуры БД, которые находится в корне приложения `/database_dump`. -- Для работоспособности интернет-магазина необходимо установить зависимости. Выполните комманду `npm install`. +- Для работоспособности интернет-магазина необходимо установить зависимости. Выполните комманду `npm i`. - Далле необходимо настроить переменные среды. Создайте файл `.env` в корне вашего интернет-магазина и запишите туда [значения для переменных](#Переменные-среды). Обратите внимание, что для выгрузки скрипта на production сервер, нужно устанавливать переменные среды для вашего сервера, файл `.env` создавать не нужно. - После этого, введите `npm run start` и перейдите по адресу `localhost:3000`, вы увидите уже рабочий интернет-магазин который запущен у вас на локальном компьютере. ### Запуск скрипта на удаленном сервере: В данном примере на удаленном сервере будет использоваться связка `Ubuntu 18.04, Nginx, MongoDB, PM2, NodeJS` + `SSL Lets Encrypt` -- Переходим на сайт [RUVDS.COM](https://ruvds.com/pr4435) и приобретаем VPS услугу. +- Переходим на сайт [RUVDS.COM](https://ruvds.com/pr4435) и приобретаем услугу VPS-хостинга. - Подключаемся к серверу по SSH и следуем далее описанным шагам. - Устанавливаем NodeJS: ```bash -curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - - -apt-get install -y nodejs <--- попросит перезагрузить сервисы - соглашаемся (YES) +apt-get update && apt-get install curl -y +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash +export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" +source ~/.bashrc +nvm install 12 ``` Если при выполнении команд `node -v` и `npm -v` выдается версия, то идем дальше. - Создаем папку `/apps`, после переходим в нее и клонируем проект с github и переходим в наш магазин: @@ -198,7 +201,7 @@ apt-get update apt-get install python-certbot-nginx -certbot --nginx -d yourdomain.com -d www.yourdomain.com <--- в процессе установки выбираем цифру 2 +certbot --nginx -d yourdomain.com <--- в процессе установки выбираем цифру 2 ``` - Ваш конфигурационный файл должен выглядеть примерно так: @@ -256,7 +259,7 @@ server { ``` -### Выгрузка скрипта на бесплатный хостинг от Heroku: +### Установка скрипта на бесплатный хостинг от Heroku: - Регистрируемся на сайте [Heroku](https://signup.heroku.com/login). - Устанавливаем heroku-cli `https://devcenter.heroku.com/articles/heroku-cli`. - Проверьте установку, написав в консоле `heroku --help` если всё выводит, идем дальше.