Что такое диаспора *?
Диаспору можно рассматривать с двух разных точек зрения: во-первых, от конечного пользователя, который может найти диаспору очень похожей на другие социальные сети, такие как 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 |
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 |
Откройте свой броузер и перейдите на [ 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
. Ваша миссия, если вы решите принять ее, это просмотреть их до следующего урока, где мы настроим диаспору для построения нашей социальной сети с некоторыми специфическими функциями.