Spectrum - новый формат форумов и онлайн сообществ

• Нет отзывов

Автор

Описание

Владельцам сообществ нужны современные чат-сообщества, но они сталкиваются с проблемами масштабирования, когда их сообщество превышает несколько сотен участников. Становится трудно отслеживать, кто есть кто, знать, какие разговоры происходят, и следить за тем, чтобы сообщество оставалось здоровым и продуктивным.

Spectrum стремится стать лучшей платформой для создания любого онлайн-сообщества, сочетая лучшее из форумов и приложений для чата в реальном времени. Благодаря лучшим в своем классе инструментам модерации, единой платформе для всех ваших сообществ, цепочкам бесед по умолчанию, мониторингу состояния сообщества и многому другому, мы думаем, что сможем помочь большему количеству людей создавать и развивать лучшие онлайн-сообщества.

«[Spectrum] займет то место, которое Reddit когда-то занимал для сообществ (особенно технологических), где они могли свободно обмениваться идеями и взаимодействовать. За исключением реального времени и без троллинга».

 

Кодовая база

Технологии

Оставив в стороне основные правила, давайте поговорим о грубой архитектуре этого монорепозитория:

Полнофункциональный JavaScript : мы используем Node.js для работы наших серверов и React для работы наших внешних приложений. Почти весь код, с которым вы столкнетесь в этой базе кода, будет написан на JavaScript. Вот список всех крупных технологий, которые мы используем:

 

  • RethinkDB : Хранение данных
  • Redis : фоновые задания и кеширование
  • GraphQL : API, основанный на всей цепочке инструментов Apollo.
  • Flowtype : Типобезопасный JavaScript.
  • PassportJS : аутентификация
  • React : приложение Frontend React.

 

Структура папок

spectrum/

├── api        # API server

├── docs

├── hyperion   # Rendering server

├── public     # Public files used on the frontend

├── shared     # Shared JavaScript code

├── src        # Frontend SPA

Первая настройка

Первым шагом к локальному запуску Spectrum является загрузка кода путем перемещения кода в рабочую среду.

Spectrum состоит из четырех больших этапов установки:

  1. Установите RethinkDB : инструкции по установке в вашей ОС см. в документации RethinkDB .
  2. Установите Redis : инструкции по установке Redis в вашей ОС см. в документации Redis .
  3. Установка yarn : мы используем yarn для обработки наших зависимостей JavaScript. (обычный формат npm не работает из-за нашей настройки монорепо). Инструкции по его установке см. в документации по пряже.
  4. Установите зависимости : поскольку устанавливать зависимости для каждого пакета по отдельности довольно утомительно, мы создали сценарий, который проходит и запускается yarn install для каждого пакета за вас: (это занимает пару минут, так что пока погрузитесь в техническую документацию )

node shared/install-dependencies.js

Вы закончили установку всего! Давайте перенесем базу данных, и все готово !

 

Миграция базы данных

Когда вы впервые загружаете код и хотите запустить его локально, вам необходимо перенести базу данных и заполнить ее тестовыми данными. Сначала запустите rethinkdb на отдельной вкладке терминала:

rethinkdb

Затем на новой вкладке выполните следующие команды:

yarn run db:migrate

yarn run db:seed

# ⚠️ To empty the database (e.g. if there’s faulty data) run yarn run db:drop

Также есть ярлык для удаления, миграции и заполнения базы данных:

yarn run db:reset

База testingданных, используемая в сквозных тестах, управляется отдельно. Он создается, переносится и заполняется при запуске:

yarn run start:api:test

Чтобы удалить testingбазу данных, перейдите по адресу http://localhost:8080/#tables во время rethinkdbработы и нажмите «Удалить базу данных» в соответствующей базе данных.

 

Получение секретов

Хотя приложение будет работать без каких-либо настроек секретов, вы не сможете войти в систему локально. Чтобы выполнить эту настройку, скопируйте предоставленный пример файла секретов в реальное местоположение:

cp now-secrets.example.json now-secrets.json

Теперь вы готовы запустить приложение локально и войти в свой локальный экземпляр!

 

Запуск приложения локально

Фоновые услуги

Всякий раз, когда вы хотите запустить Spectrum локально, вам необходимо, чтобы RethinkDB и Redis работали в фоновом режиме. Сначала начните переосмысливать базу данных, как мы это делали при миграции базы данных:

rethinkdb

Затем (не закрывая вкладку rethinkdb!) откройте другую вкладку и запустите Redis:

redis-server

Запустите серверы

В зависимости от того, над чем вы пытаетесь работать, вам потребуется запустить разные серверы. Обычно все серверы работают в режиме разработки yarn run dev:<workername>, например, yarn run dev:hermesдля запуска почтового работника.

 

Независимо от того, что вы пытаетесь сделать, вам нужно, чтобы API работал, поэтому запустите его на фоновой вкладке:

yarn run dev:api

Сформировать интерфейс

Сформировать интерфейс и запустить веб-интерфейс.

yarn run dev:web

 

Лицензия

Авторские права принадлежат Space Program Inc., 2018 г.

 

Распространение и использование в исходном и двоичном виде, с модификациями или без них, разрешено при соблюдении следующих условий:

 

1. При повторном распространении исходного кода должно сохраняться вышеуказанное уведомление об авторских правах, этот список условий и следующий отказ от ответственности.

 

2. При повторном распространении в двоичной форме должно воспроизводиться вышеуказанное уведомление об авторских правах, настоящий список условий и следующий отказ от ответственности в документации и/или других материалах, поставляемых вместе с дистрибутивом.

 

3. Ни имя владельца авторских прав, ни имена его участников не могут использоваться для поддержки или продвижения продуктов, созданных на основе этого программного обеспечения, без специального предварительного письменного разрешения.

 

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ОБЛАДАТЕЛЯМИ АВТОРСКИХ ПРАВ И УЧАСТНИКАМИ «КАК ЕСТЬ», И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ ТОВАРНОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ОБЛАДАТЕЛЬ АВТОРСКИХ ПРАВ ИЛИ УЧАСТНИКИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ПРИМЕРНЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ЗАКУПКУ ЗАМЕНЯЮЩИХ ТОВАРОВ ИЛИ УСЛУГ; ПОТЕРЮ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ ПРЕРЫВАНИЕ ДЕЛОВОЙ ДЕЯТЕЛЬНОСТИ), ОДНАКО ВЫЗВАННАЯ И НА ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, КАК ДОГОВОР, СТРОГО ОТВЕТСТВЕННОСТЬ ИЛИ ПРАВОНАКТ (ВКЛЮЧАЯ НЕБРЕЖНОСТЬ ИЛИ ДРУГИЕ ОБРАЗЫ), ВОЗНИКАЮЩИЕ ЛЮБЫМ СПОСОБОМ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ УВЕДОМЛЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.

Вход

Либо введите логин и пароль:

Продолжая, я соглашаюсь с

Пользовательским соглашением,

Политикой конфиденциальности,

Политикой возврата.

Регистрация

Регистрация на сайте возможна только через один из предложенных сервисов:

Продолжая, я соглашаюсь с

Пользовательским соглашением,

Политикой конфиденциальности,

Политикой возврата.

Оплата