Статьи

Создайте свою собственную социальную сеть с диаспорой *: Введение

Что такое диаспора *?

Диаспору можно рассматривать с двух разных точек зрения: во-первых, от конечного пользователя, который может найти диаспору очень похожей на другие социальные сети, такие как Google+ , Facebook или даже Twitter . Раньше я думал, что диаспора отличалась, имея некоторые уникальные функции, пока не появился Google+ и включил в себя многие из этих функций.

С другой стороны Диаспора рассматривается с точки зрения разработчика как движок социальных сетей. Можно построить социальную сеть со сложными функциями и очень простым и элегантным пользовательским интерфейсом за несколько недель или даже дней, в зависимости от вашего опыта.

Почему диаспора?

Диаспора имеет открытый исходный код и распространяется, что означает, что вы можете подключить развернутый экземпляр к другим развернутым экземплярам и полностью подключить огромную социальную сеть, сохраняя свои данные на своих серверах. Кроме того, он написан на Ruby on Rails, а пользовательский интерфейс использует Backbone.

Установка

С введением вне дня, давайте посмотрим на диаспору в действии. Во-первых, вам нужно установить некоторые зависимости:

Ruby : вы можете найти все, что вам нужно в этом уроке Установка Ruby с RVM в Ubuntu

Rails : эти два руководства полезны для установки Rails. Rails Intro, Deep Dive: Установка Rails, часть первая , и эта. Места действия: Установка Rails, часть 2.

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

# for MySQL installation
sudo apt-get install mysql-server libmysqlclient-dev libmysql-ruby
# to start mysql server daemon
sudo service mysql start

view raw
mysql.sh
hosted with ❤ by GitHub

Git : вам нужен git для клонирования репозитория диаспоры, несмотря на то, что вы можете скачать его со страницы репозитория, но вам все равно понадобится git, так что вам нужно его установить, и если вы хотите настроить git для работы с вашей учетной записью github, вам следует Прочтите также со страниц справки GitHub для Linux

# run this command to download git
sudo apt-get install git-core git-gui git-doc

Диаспора : теперь вам нужно получить источник диаспоры для работы, поэтому мы собираемся клонировать его из репозитория проекта git и переключиться в каталог диаспоры

# clone the source
git clone git://github.com/diaspora/diaspora.git
# switch to the directory which you find in home
cd diaspora

У вас почти сейчас есть рабочая среда для запуска Диаспоры , но у нас есть всего несколько шагов до запуска сервера.

Запустите следующую команду из корневого каталога самого проекта диаспоры. Например, если ваш проект находился в вашем домашнем каталоге, корневой каталог проекта будет находиться в ~ / diaspora /

# this command will download and install some dependencies, it could take a while.
bundle install —without test heroku

Теперь перейдите в папку config/ и удалите [.example] из следующих файлов:

  • database.yml.example
  • application.yml.example

В файле database.yml необходимо настроить записи сервера MySQL в соответствии с вашей средой.

Последние команды для запуска проекта:

# run the following command
rake db:create
rake db:schema:load
# or
rake db:setup
# run the following command to fire up the server.
rails server
# or
thin start

view raw
last_cmd.sh
hosted with ❤ by GitHub

Откройте свой броузер и перейдите на [ localhost:3000 ] и следуйте инструкциям, чтобы создать пользователя. Если вы хотите, чтобы этот новый пользователь имел права администратора, вы можете отредактировать его в config/application.yml , добавив имя пользователя в раздел admins . На самом деле вы можете сделать много настроек в этом файле, что мы обсудим в следующем уроке.

Кодовая база диаспоры

Типичная структура каталогов Disapora приведена ниже. Найдите минутку, чтобы ознакомиться с базой кода.

Давайте начнем наше знакомство с объектной моделью диаспоры . Вы можете найти источник этих объектов в папке app/models .

пользователь

Объект User представляет личную информацию и возможности пользователя на этом сервере. Пользовательский объект может дружить с людьми, публиковать обновления и обновлять свой профиль. У пользователя есть человек.

Человек

Человек — это пользователь, видимый снаружи. Когда пользователь дружит с другим пользователем, он дружит с объектом Person этого пользователя. Персональные объекты реплицируются на серверы, и именно там находится открытый ключ пользователя. У человека много постов. Человек имеет профиль.

Профиль

Это содержит информацию о человеке. В настоящее время профиль выглядит одинаково для всех, кто смотрит на него.

контакт

Контакт — это «прокси» объект для каждого человека, с которым Пользователь дружит, это означает, что для инициализации любых отношений с любым другим пользователем вам необходим объект контакта для создания ссылки.

аспект

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

Почта

Сообщение принадлежит человеку. Это родительский класс для различных типов сообщений, он содержит идентификаторы комментариев и несколько других атрибутов, общих для всех сообщений.

Комментарий

Комментарий принадлежит посту

Структура каталогов

Вот как выглядит кодовая база для нашего приложения Diaspora *:

  ├── приложение
 │ ├── контроллеры
 │ │ ├── Activity_streams
 │ │ │ └── photos_controller.rb
 │ │ ├── admins_controller.rb
 │ │ ├── apis_controller.rb
 │ │ ├────────────
 │ │ ├── people_controller.rb
 │ │ ├── photos_controller.rb
 │ ├── помощники
 │ │ ├── application_helper.rb
 │ │ ├── aspect_global_helper.rb
 │ │ ├────────────
 Error │ ├── error_messages_helper.rb
 │ │ ├── getting_started_helper.rb
 │ ├── почтовики
 │ │ ├── diaspora_devise_mailer.rb
 │ │ ├── уведомление_почты
 │ │ │ ├── Также_комментированный.rb
 │ │ │ ├── base.rb
 │ │ ├────────────
 │ │ │ ├── reshared.rb
 │ │ │ └── start_sharing.rb
 │ │ └── notifier.rb
 Models ├── модели
 │ │ ├── account_deleter.rb
 │ │ ├── account_deletion.rb
 │ │ ├── tag_following.rb
 │ │ ├────────────
 │ │ ├── user_preference.rb
 │ │ └── user.rb
 │ ├── ведущие
 │ │ └── user_presenter.rb
 │ ├── загрузчики
 │ │ ├── Process_image.rb
 │ │ └── unprocessed_image.rb
 Views └── просмотров
 │ ├── админы
 │ │ ├── _admin_bar.haml
 │ │ ├── correlations.haml
 │ │ ├── stats.html.haml
 │ │ ├── user_search.html.haml
 │ │ └── weekly_user_stats.haml
 │ ├────────────
 Apps ├── приложения
 Show │ └── show.html.haml
 │ └── пользователи
 Edit ├── edit.html.haml
 │ ├── getting_started.haml
 Log ├── logged_out.haml
 Privacy └── privacy_settings.html.haml
 AUT── АВТОРЫ
 Cap── Capfile
 Config── конфиг
 D── дБ
 Lib── lib
 Log── log
 Public── публично
 │ ├── изображения
 │ ├── javascripts
 │ │ ├── приложение
 │ │ │ ├── коллекции
 │ │ │ ├── помощники
 │ │ │ ├── модели
 Templates │ │ ├── шаблоны
 Views │ │ └── просмотров
 │ │ ├── помощники
 Pages │ ├── страницы
 │ │ ├── продавец
 │ │ └── виджеты
 Styles ├── таблицы стилей
 │ └── загружает
 Script── сценарий
 Spec── спец
 T── тмп 

Хорошо, а что дальше?

Мы рассмотрели только основную диаспору . Есть много других частей головоломки, таких как Controllers , Views и Backbone- часть пользовательского интерфейса, которые вы можете найти в public/javascript/app . Ваша миссия, если вы решите принять ее, это просмотреть их до следующего урока, где мы настроим диаспору для построения нашей социальной сети с некоторыми специфическими функциями.