Skip to content
Alex Gutikov edited this page Dec 17, 2015 · 29 revisions

Welcome to the hspace wiki!

Описание проекта на самом сайте: http://hackerspace.by/projects/8

Интерфейс сайта


Статические страницы:


Юзеры и проекты:

Юзеры могут логиниться в систему и создавать/редактировать описание проектов.
Проекты могут быть public - тогда их может редактировать любой авторизованный юзер.
Или не public - тогда его может редактировать только создатель.
Статус проекта - произвольная строка.
Описание проекта - html или markdown.


SpaceAPI

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


Projects API (JSON)


Device API

Общая идея

Решение двух видов задач:

  1. Сбор, хранение и предоставление данных генерируемых устройствами внутри хакерспейса.
    Устройство - клиент, сайт - сервер.
  2. Асинхронный доступ к API устройств расположенных внутри хакерспейса.
    Устройство - сервер, сайт по отношению к устройству - клиент, сайт по отношению к пользователю - прокси.

На данный момент реализован первый вариант (Устройство - клиент, сайт - сервер).

Модель данных такая: Устройства, у которых есть имя (name) и пароль (password), посылают на сайт запросы создать запись о событии с содержимым в виде ключ-значение, только в нашем случае event_type и value.

Создание / регистрация нового устройства (name+password)
Создание / регистрация нового события (event_type)
Логгирование событий
  • hackerspace.by/events/add - добавление записи в лог

Добавление событий через GET:
http://localhost:3000/events/add?name=device1&password=111111&event_type=light&value=on
curl http://localhost:3000/events/add\?name\=device1\&password\=111111\&event_type\=light\&value\=on
Создается событие, либо выводится exception.
Если login/pass неправильные, вернет 401 вместо 200.

Получение данных о событиях (чтение логов)
  • hackerspace.by/events - просмотр последних записей лога
  • hackerspace.by/events.csv - все записи лога
  • hackerspace.by/devices/[0-9]+ - просмотр последних событий конкретного устройства в folded формате (будет отображаться только смена состояний).

данные можно получить в альтернативных форматах:

  • hackerspace.by/devices/[0-9]+.json
  • hackerspace.by/devices/[0-9]+.csv
Clone this wiki locally