mirror of
https://github.com/sergeyyarkov/digital-store.git
synced 2026-10-11 18:29:11 +03:00
readme
This commit is contained in:
parent
d1f249efb8
commit
21833480c8
144
README.md
144
README.md
@ -1,18 +1,140 @@
|
|||||||
# Структура репозитория:
|
<p align="center">
|
||||||
|
<a href="http://materializecss.com/">
|
||||||
|
<img src="https://svgshare.com/i/HWW.svg" width="150">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">Digital Store</h3>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
Digital Store - это настраиваемый интернет-магазин на платформе NodeJS для продажи ваших цифровых товаров.<br>
|
||||||
|
<a href="https://polar-peak-95205.herokuapp.com/">Демонстрания функционирования интернет-магазина.</a>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<img alt="GitHub package.json version (branch)" src="https://img.shields.io/github/package-json/v/sergeyyarkov/digital-store/production?color=%2326a69a">
|
||||||
|
<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/sergeyyarkov/digital-store">
|
||||||
|
<img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/sergeyyarkov/digital-store/total">
|
||||||
|
<img alt="GitHub top language" src="https://img.shields.io/github/languages/top/sergeyyarkov/digital-store?color=%23f9a825">
|
||||||
|
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/sergeyyarkov/digital-store"><br>
|
||||||
|
<a href="https://david-dm.org/sergeyyarkov/digital-store">
|
||||||
|
<img src="https://david-dm.org/sergeyyarkov/digital-store/status.svg" alt="dependencies Status badge">
|
||||||
|
</a>
|
||||||
|
<a href="https://david-dm.org/sergeyyarkov/digital-store#info=devDependencies">
|
||||||
|
<img src="https://david-dm.org/sergeyyarkov/digital-store/dev-status.svg" alt="devDependency Status badge">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Содержание
|
||||||
|
- [О проекте](#О-проекте)
|
||||||
|
- [Структура репозитория](#Структура-репозитория)
|
||||||
|
- [Установка и найстройка скрипта](#Установка-и-найстройка-скрипта)
|
||||||
|
- [Запуск скрипта на локальном компьютере](#Запуск-скрипта-на-локальном-компьютере)
|
||||||
|
- [Запуск скрипта на удаленном сервере](#Запуск-скрипта-на-удаленном-сервере)
|
||||||
|
- [Переменные среды](#Переменные-среды)
|
||||||
|
- [API](#API)
|
||||||
|
- [Требования](#Требования)
|
||||||
|
- [Лицензия](#Лицензия)
|
||||||
|
|
||||||
|
## О проекте:
|
||||||
|
Этот проект представляет из себя интернет-магазин на платформе NodeJS, вы можете продавать свои цифровые товары именно скачав этот репозиторий, в [панели управления](#Панель-управления) вы сможете создавать, удалять и редактировать товары или категории . В проекте используется концепция REST API, поэтому для отдачи информации клиенту существует отдельный API. Информация о покупателях, товарах, категориях и т.д хранится в БД MongoDB (используется нативный драйвер).
|
||||||
|
### Функционал пользователя:
|
||||||
|
- Возможность выбирать интересующие категории, переход по одиночным страницам конкретного товара.
|
||||||
|
- Возможность комментировать как отдельный товар, так и весь магазин на отдельной странице через виджет [Commento.io](https://commento.io/)
|
||||||
|
- Возможность фильтровать интересующую категорию или все товары через фильтр.
|
||||||
|
- Покупатель может совершать одну или несколько покупок через корзину или через кнопку "Купить".
|
||||||
|
- Оплата осуществляется через сервис QIWI API.
|
||||||
|
- Результатом оплаты будут данные одного или нескольких товаров, все данные отсылаются на почту покупателя, которую он указывал при создании заказа.
|
||||||
|
- Покупатель может узнать все свои совершенные покупки в магазине на отдельной странице.
|
||||||
|
### Функционал администратора:
|
||||||
|
Для входа в админ-панель необходимо дописать в адресной строке `/admin`, после вы попадете на страницу авторизации где необходимо вписать данные `email:password`. По умолчанию `admin@support.ru:admin`
|
||||||
|
- Пароль админа хэшируется через `bcrypt` для безопасности и записывается в БД.
|
||||||
|
- На главной странице есть небольшая статистика, где можно посмотреть: сумму проданных товаров, кол-во проданных товаров, кол-во товаров в наличии.
|
||||||
|
- На главной странце так же можно узнать подробные данные о покупателях: номер заказа, почта покупателя, способ оплаты, дата покупки, сумма и данные которые были высланы по почте.
|
||||||
|
- Возможность находить конкретного покупателя через поле (нужно знать номер заказа).
|
||||||
|
- Возможность добавлять, удалять или редактировать товары на странице "Товары", так же можно посмотреть и информацию о товаре.
|
||||||
|
- Поиск товаров через поле поиска (нужно знать частичное или полное название товара).
|
||||||
|
- Добавление, удаление и редактирование категорий через страницу "Категории", каждой категории присваивается собственная иконка, которую можно загрузить через страницу "Иконки".
|
||||||
|
- Возможность править контент, изменять общее оформление магазина (только цвет).
|
||||||
|
- Возможность изменять данные администратора: почта, пароль, имя.
|
||||||
|
|
||||||
|
## Структура репозитория:
|
||||||
В основе всего репозитория существуют две ветки. Ветка master предназначена для разработки приложения, для выгрузки готового приложения на сервер используйте ветку production.
|
В основе всего репозитория существуют две ветки. Ветка master предназначена для разработки приложения, для выгрузки готового приложения на сервер используйте ветку production.
|
||||||
# Панель управления:
|
|
||||||
Для входа в панель управления магазином используйте данные:
|
## Установка и найстройка скрипта:
|
||||||
```js
|
### Запуск скрипта на локальном компьютере:
|
||||||
Login: admin@support.ru
|
- [Установите последний релиз Digital Store](https://github.com/sergeyyarkov/digital-store/releases) из GitHub репозитория.
|
||||||
Password: admin
|
- Или клонировать репозиторий `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.
|
||||||
# Переменные среды:
|
- Для работоспособности интернет-магазина необходимо установить зависимости. Выполните комманду `npm install`.
|
||||||
Создайте файл .env в корне приложения и запишите переменные:
|
- Далле необходимо настроить переменные среды. Создайте файл `.env` в корне вашего интернет - магазина и запишите туда [значения для переменных](#Переменные-среды). Обратите внимание, что для выгрузки скрипта на production сервер, нужно устанавливать переменные среды для вашего сервера, файл `.env` создавать не нужно.
|
||||||
```js
|
- После этого, введите `npm run start` и перейдите по адресу `localhost:3000`, вы увидите уже рабочий интернет магазин который работает у вас на локальном компьютере.
|
||||||
SESSION_SECRET=secret
|
|
||||||
|
### Запуск скрипта на удаленном сервере:
|
||||||
|
В данном примере на удаленном сервере будет использоваться связка ``Ubuntu 18.04, Nginx, MongoDB, PM2, NodeJS.``
|
||||||
|
- ...
|
||||||
|
|
||||||
|
## Переменные среды:
|
||||||
|
### Описание переменных:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
SESSION_SECRET=случайная сгенерированная строка
|
||||||
DATABASE_URI=подключение к БД MONGODB
|
DATABASE_URI=подключение к БД MONGODB
|
||||||
DATABASE_NAME=имя БД
|
DATABASE_NAME=имя БД
|
||||||
QIWI_SECRET_KEY=секретный ключ QIWI API
|
QIWI_SECRET_KEY=секретный ключ QIWI API
|
||||||
EMAIL_LOGIN=логин от почты
|
EMAIL_LOGIN=логин от почты
|
||||||
EMAIL_PASSWORD=пароль от почты
|
EMAIL_PASSWORD=пароль от почты
|
||||||
```
|
```
|
||||||
|
## API:
|
||||||
|
### API предствляет собой ряд URL, которые в качестве ответа возвращают только данные в формате JSON.
|
||||||
|
#### Для просмотра всех товаров которые существуют в магазине отправляется GET запрос:
|
||||||
|
```bash
|
||||||
|
https://store-name.com/api/items
|
||||||
|
```
|
||||||
|
Ответ:
|
||||||
|
```bash
|
||||||
|
[
|
||||||
|
{
|
||||||
|
_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](https://github.com/sergeyyarkov/digital-store/blob/master/LICENSE)
|
||||||
Loading…
x
Reference in New Issue
Block a user