2020-01-25 00:44:10 +03:00
2020-01-23 21:00:46 +03:00
2020-01-23 20:26:23 +03:00
2020-01-21 19:43:02 +03:00
2020-01-18 19:32:27 +03:00
2019-12-12 22:53:50 +03:00
2019-11-11 17:44:17 +03:00
2020-01-16 21:36:12 +03:00
2020-01-16 21:36:12 +03:00
2020-01-25 00:44:10 +03:00

Digital Store

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

GitHub package.json version (branch) GitHub release (latest by date) GitHub All Releases GitHub top language GitHub repo size
dependencies Status badge devDependency Status badge

Содержание

О проекте:

Этот проект представляет из себя интернет-магазин на платформе NodeJS, вы можете продавать свои цифровые товары именно скачав этот репозиторий, в панели управления вы сможете создавать, удалять и редактировать товары или категории . В проекте используется концепция REST API, поэтому для отдачи информации клиенту существует отдельный API. Информация о покупателях, товарах, категориях и т.д хранится в БД MongoDB (используется нативный драйвер).

Функционал пользователя:

  • Возможность выбирать интересующие категории, переход по одиночным страницам конкретного товара.
  • Возможность комментировать как отдельный товар, так и весь магазин на отдельной странице через виджет Commento.io
  • Возможность фильтровать интересующую категорию или все товары через фильтр.
  • Покупатель может совершать одну или несколько покупок через корзину или через кнопку "Купить".
  • Оплата осуществляется через сервис QIWI API.
  • Результатом оплаты будут данные одного или нескольких товаров, все данные отсылаются на почту покупателя, которую он указывал при создании заказа.
  • Покупатель может узнать все свои совершенные покупки в магазине на отдельной странице.

Функционал администратора:

Для входа в админ-панель необходимо дописать в адресной строке /admin, после вы попадете на страницу авторизации где необходимо вписать данные email:password. По умолчанию admin@support.ru:admin

  • Пароль админа хэшируется через bcrypt для безопасности и записывается в БД.
  • На главной странице есть небольшая статистика, где можно посмотреть: сумму проданных товаров, кол-во проданных товаров, кол-во товаров в наличии.
  • На главной странце так же можно узнать подробные данные о покупателях: номер заказа, почта покупателя, способ оплаты, дата покупки, сумма и данные которые были высланы по почте.
  • Возможность находить конкретного покупателя через поле (нужно знать номер заказа).
  • Возможность добавлять, удалять или редактировать товары на странице "Товары", так же можно посмотреть и информацию о товаре.
  • Поиск товаров через поле поиска (нужно знать частичное или полное название товара).
  • Добавление, удаление и редактирование категорий через страницу "Категории", каждой категории присваивается собственная иконка, которую можно загрузить через страницу "Иконки".
  • Возможность править контент, изменять общее оформление магазина (только цвет).
  • Возможность изменять данные администратора: почта, пароль, имя.

Структура репозитория:

В основе всего репозитория существуют две ветки. Ветка master предназначена для разработки приложения, для выгрузки готового приложения на сервер используйте ветку production.

Установка и найстройка скрипта:

Запуск скрипта на локальном компьютере:

  • Установите последний релиз Digital Store из GitHub репозитория.
  • Или клонировать репозиторий git clone https://github.com/sergeyyarkov/digital-store.git -b production.
  • Установите Node.js не ниже версии 7.6.0, в процессе установки Node.js установите Node Package Manager.
  • Для работоспособности интернет-магазина необходимо установить зависимости. Выполните комманду npm install.
  • Далле необходимо настроить переменные среды. Создайте файл .env в корне вашего интернет - магазина и запишите туда значения для переменных. Обратите внимание, что для выгрузки скрипта на production сервер, нужно устанавливать переменные среды для вашего сервера, файл .env создавать не нужно.
  • После этого, введите npm run start и перейдите по адресу localhost:3000, вы увидите уже рабочий интернет магазин который работает у вас на локальном компьютере.

Запуск скрипта на удаленном сервере:

В данном примере на удаленном сервере будет использоваться связка Ubuntu 18.04, Nginx, MongoDB, PM2, NodeJS.

  • ...

Переменные среды:

Описание переменных:

SESSION_SECRET=случайная сгенерированная строка
DATABASE_URI=подключение к БД MONGODB
DATABASE_NAME=имя БД
QIWI_SECRET_KEY=секретный ключ QIWI API
EMAIL_LOGIN=логин от почты
EMAIL_PASSWORD=пароль от почты

API:

API предствляет собой ряд URL, которые в качестве ответа возвращают только данные в формате JSON.

Для просмотра всех товаров которые существуют в магазине отправляется GET запрос:

https://store-name.com/api/items 

Ответ:

  [
    {
    _id: "5e15dbc415303a1980cd77a0",
    title: "Тестовый товар №1",
    count: 0,
    price: 1,
    category: "steam",
    description: "Тестовый товар №1 описание",
    date: "2020-01-08T13:40:20.353Z"
    },
    {
    _id: "5e15dcb4138c3339bcbc3719",
    title: "Тестовый товар №3",
    count: 0,
    price: 1,
    category: "uplay",
    description: "Тестовый товар №3 fdsfd",
    date: "2020-01-08T13:44:20.940Z"
    },
    {
    _id: "5e175c63b479600ac493ce88",
    title: "Тестовый товар №4",
    count: 0,
    price: 1,
    category: "fortnite",
    description: "Тестовый товар №4 opis",
    date: "2020-01-09T17:01:23.446Z"
    },
    {
    _id: "5e1ccf30d5b894228c86385a",
    title: "Тестовый товар №5",
    count: 10,
    price: 1,
    category: "origin",
    description: "sdsdsds",
    date: "2020-01-13T20:12:32.814Z"
    }
  ]

...

Требования:

  • Node.js v7.6.0 или выше

Лицензия:

MIT

Description
Ваш интернет магазин цифровых товаров с панелью управления.
Readme MIT 1.4 MiB
Languages
JavaScript 99.7%
HTML 0.3%