diff --git a/.gitignore b/.gitignore
index 403ddea..86a4d68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,6 +27,6 @@ server/data/docker
server/datasources.json
server/config.json
server/storage/*
+server/data/mysql/wb-model.mwb.bak
client/dist
test.js
-docs/*
\ No newline at end of file
diff --git a/README-ru.md b/README-ru.md
index c5b622c..a859c66 100644
--- a/README-ru.md
+++ b/README-ru.md
@@ -1,20 +1,13 @@
-![OnePlace](/client/static/img/logo_hub.png)
+# ![OnePlace](/client/static/img/logo_hub.png)
-OnePlace - это web-приложение для взаимодействия с блокчейнами [Steem](https://github.com/steemit/steem) и [Golos](https://github.com/GolosChain/golos). В качестве основы были использованы такие технологии как [Vue](https://vuejs.org) с [SSR](https://ssr.vuejs.org/ru/) модулем для клиентской части проекта и [LoopBack](https://loopback.io/) для реализации серверной составляющей.
+Oneplace - это web-приложение для взаимодействия с блокчейнами [Steem](https://github.com/steemit/steem) и [Golos](https://github.com/GolosChain/golos). В качестве основы были использованы такие технологии как [Vue](https://vuejs.org) с [SSR](https://ssr.vuejs.org/ru/) модулем для клиентской части проекта и [LoopBack](https://loopback.io/) для реализации серверной составляющей. Детально цели проекта описаны в [документе WhitePaper](./client/static/whitepaper_ru.pdf).
-## Установка
-
-#### Клонирование репозитория и установка npm модулей
+## Начало работы
-```bash
-git clone git@github.com:OnePlace-media/oneplace.git
-cd oneplace && npm i
-```
+Данная инструкция ориентирована на пользоватлей linux с debian дистрибутивами. Для запуска приложения потребуется установить следующие зависимости:
-#### Установка зависимостей
-Данная инструкция ориентирована на пользоватлей linux с debian дистрибутивами.
+### NodeJS
-##### NodeJS
Установите NodeJS, мы рекомендуем использовать [**LTS version**](https://nodejs.org/en/) и [**nvm**](https://github.com/creationix/nvm) для установки:
```bash
@@ -22,97 +15,133 @@ nvm install 8.9.4
nvm use 8.9.4
```
-OnePlace является комплексным решением и имеет дополнительный функционал над обоими блокчейнами. Вам необходимо установить базы данных [mysql](https://www.mysql.com/) и [redis](https://redis.io/download). Используйте [Docker Compose](https://docs.docker.com/compose/) с нашим [docker-compose.yml](./docker-compose.yml) или установите в ручном режиме:
+### Базы данных
-##### MySQL
-```bash
-sudo apt-get update
-sudo apt-get install mysql-server
-```
+OnePlace является комплексным решением и имеет дополнительный функционал над обоими блокчейнами, приложение имеет собственные хранилища. Вам необходимо установить базы данных [mysql](https://www.mysql.com/) и [redis](https://redis.io/download). Используйте [Docker Compose](https://docs.docker.com/compose/) с нашим [docker-compose.yml](./docker-compose.yml) или установите в ручном режиме, следуя интсрукции по [ссылке](./docs/ru/install-db.md). При использовании docker-compose данные будут сохранятся в директорию: **./server/data/docker/{DB_NAME}>**
-В данном репозитории присутствует sql-скрипт для инициализации структуры БД. Используйте его для быстрого старта:
```bash
-# Вставка sql-скрипта в mysql
-mysql -u root < ./server/data/mysql/mysql-init.sql
-# Логин Mysql
-mysql -u root
-# Создаем нового пользователя
-CREATE USER 'oneplace'@'localhost' IDENTIFIED BY 'password';
-# Настройка привилегий
-GRANT ALL PRIVILEGES ON oneplace.* TO 'oneplace'@'localhost'
+docker-compose up -d
```
-Вы так же можете использовать [MySql WorkBench](https://www.mysql.com/products/workbench/) с нашим [model файлом](./server/data/mysql/wb-model.mwb) для расширения sql-схемы.
+## Установка
-##### Redis
+### 1. Склонируйте репозиторий с github
```bash
-sudo apt-get install redis
+git clone git@github.com:OnePlace-media/oneplace.git && cd oneplace
```
-#### Конфигурация
-
-После установки сконфигурируйте redis-server для работы в качестве демона на локальном порту, для этого в стандартный конфиг (например, /etc/redis/redis.conf) внесите следующие изменения:
+### 2. Установите npm зависимости
```bash
-daemonise yes
-bind 127.0.0.1
-port 6379
+npm install
```
-После установки зависимостей необходимо создать конфигурационные файлы из шаблонов:
+### 3. Создайте файлы конфигрураций
+
+Скопируйте 2 файла json из готовых шаблонов:
```bash
cd server
+
# Главный config
-cp config.sample.json config.json
-# Параметры к источникам данных (mysql, redis и т.д.)
-cp datasources.sample.json datasources.json
+cp ./server/config.sample.json ./server/config.json
+
+# Параметры к источникам данных (mysql, redis, email)
+cp ./server/datasources.sample.json ./server/datasources.json
```
-##### config.json
+#### ./server/config.json
+
+Более подробную информацию о config.json можно получить в официальной [документации к LoopBack](https://loopback.io/doc/en/lb3/config.json.html). Ниже описаны поля относящиеся непосредсвтенно к oneplace
+
```json
{
...,
"postingWrapper": {
- "steemDomain": "URL до ноды STEEM с HTTP JSON-RPC протоколом",
- "golosDomain": "URL до ноды GOLOS с HTTP JSON-RPC протоколом",
+ "steemDomain": "URL ноды STEEM с HTTP JSON-RPC протоколом",
+ "golosDomain": "URL ноды GOLOS с HTTP JSON-RPC протоколом",
"WIF": "Приватный постинг ключ аккаунта приложения в блокчейнах STEEM и GOLOS",
- "username": "Имя аккаунта приложения в блокчейнах STEEM и GOLOS (без @)"
+ "username": "Имя аккаунта приложения в блокчейнах STEEM и GOLOS (без @)",
+ "beneficiarie" : "Имя аккаунта приложения в блокчейнах STEEM и GOLOS для функционала beneficiarie"
+ }
+}
+```
+
+#### ./server/datasources.json
+
+Более подробную информацию о datasources.json можно получить в официальной [документации к LoopBack](https://loopback.io/doc/en/lb3/Defining-data-sources.html). В случае использования docker-compose достаточно прописать параметры SMTP для в секции **email**.
+
+```json
+{
+ ...,
+ "email": {
+ "name": "email",
+ "connector": "mail",
+ "transports": [
+ {
+ "type": "SMTP",
+ "host": "...",
+ "secure": true,
+ "port": 465,
+ "auth": {
+ "user": "...",
+ "pass": "..."
+ }
+ }
+ ]
}
}
```
-#### Сборка и запуск
-Мы приготовили несколько команд для быстрой сборки и запуска всех сервисов. Для начала необходимо собрать рабочую версию клиента с готовым конфигом:
+## Сборка и запуск
+
+Мы приготовили несколько команд для быстрой сборки и запуска всех сервисов. Если вы проделали все шаги по установки, можете приступать к сборке и запуску процессов:
+
+### Сборка VUE клиента
+
+Для начала необходимо собрать рабочую версию клиента для этого используется [webpack](https://webpack.js.org/):
+
```bash
# Сборка фронт части проекта
npm run build
```
-Для запуска демонов мы рекомендуем использовать [PM2](http://pm2.keymetrics.io/). Подробнее в [process.json](./process.json).
-```bash
-pm2 start process.json
+### Запуск node.js процессов
-# запуск мониторинг pm2
-pm2 monit
-```
+Oneplace состоит из нескольких node.js приложений:
-Но вы можете осуществить запуск вручную.
+* VUE-SSR server - серверный рендер front части проекта
+* LoopBack server - REST API для получения данных из БЧ и доп функционала
+* CacheUpdater daemon - демон, кеширующий топовые посты по тэгам в базе redis, для быстрого формирования трендовых списков.
-##### Запуск в ручном режиме
+#### Режим разработки
```bash
# Запуск LoopBack-API сервера
npm start
-# Запуск VueSSR сервера
-npm run client
+# Запуск VueSSR сервера в режиме наблюдения изменений
+npm run client:dev
+```
+
+#### Режим боевой
+
+Для запуска демонов мы рекомендуем использовать [PM2](http://pm2.keymetrics.io/). Для этого существует готовый [process.json](./process.json):
+
+```bash
+pm2 start process.json
+
+# запуск мониторинг pm2
+pm2 monit
```
-Подробнее см. [package.json](./package.json).
+
+Описание остальных скриптов NPM можно найти в [package.json](./package.json).
## После установки
+
На данный момент проект не является монолитным приложением, с помощью nginx вы легко можете объединить интерфейсы VUE с loopback, простой пример:
+
```nginx
location /api {
proxy_pass http://127.0.0.1:3001;
@@ -131,12 +160,29 @@ location / {
proxy_set_header X-Real-IP $remote_addr;
}
```
-## В ближайшем будущем
-- Запуск демонов в кластере и soft рестарт с нулевым простоем
-- Полное покрытие Unit тестами (frontend) и BDD (API) тестами с Karma, Mocha и PhantomJS
-- Непрерывная интеграция и автоматический деплой
-- Git flow и релизы с change log
-- Полная документация
+
+## Тесты
+
+Для тестов необходимо запустить тестовые базы данных, это можно сделать через специальные [docker-compose.yml](./server/test/docker-compose.yml). [config.test.json](./server/config.test.json) уже присутсвуют в репозитории:
+
+```bash
+docker-compose -f ./server/test/docker-compose.yml up -d
+```
+
+Запуск тестов:
+
+```bash
+
+# Тесты API
+npm run test:api
+
+# Тесты frontend чаcти
+npm run test:client
+
+# Все тесты по очереди
+npm run test
+
+```
## Вопросы
diff --git a/client/src/components/chains/comment/Comment.vue b/client/src/components/chains/comment/Comment.vue
index ac42b8f..a2cbac8 100644
--- a/client/src/components/chains/comment/Comment.vue
+++ b/client/src/components/chains/comment/Comment.vue
@@ -13,7 +13,7 @@
class="link link--op">
{{item.author}}
-
+ + nsfw{{post.title}} + +
++ {{post.preview}} +
++ +
{{$t('common.headers.recentPosts')}}
++ {{post.title}} +
+