СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H SimpleAdmin — простой способ создать административную панель в черновиках

image

Привет ребята! Наверное вы уже успели прочитать мою прошлую статью о создании open source проекта и какие советы я дал новичкам на этапе планирования и начала работы над проектом.

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

Как это работает на стороне приложения?


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

image

Предположим у нас есть приложение “Блог” в котором есть модель “Записи” с полями заголовок и описание. Для интеграции вам необходима небольшая библиотека, которая подключается в ваш проект и создает следующие API endpoint’ы:
  • simple_admin/entities — два действия (index, show) для получения списка всех моделей и полей, получения список полей для конкретной модели
  • simple_admin/resources — выполняет стандартные CRUD операции, запрашивает список записей (ресурсов)
  • simple_admin/versions — передает текущую версию gem’a в проекте для синхронизации с сервисом

Для того чтобы данные не попали в руки злоумышленников на стороне приложения создается специальная переменная окружения с секретным ключ:
# config/initializers/simpleadmin.rb
ENV['SIMPLE_ADMIN_SECRET_KEY'] = 'SECRET_KEY'

На странице создания проекта вам необходимо указать в последствии секретный ключ, адрес вашего сайта, имя проекта и описание. На стороне сервиса есть две условных абстракции это Сущность (Entity) и Поля сущности (EntityFields), которые являются отражением вашей модели и полей в ней.

Как это работает на стороне сервиса?


После создания проекта нажмите на имя проекта и вы увидите административную часть.
image

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

  • Создать поле отдельно выбрав его тип и на какой странице оно будет отображаться
  • Отметить необходимые поля галочками (или наоборот убрать)


image

При создании поля вы можете выбрать следующие атрибуты:

  • Ярлык поля (как поле будет отображаться в админ. панели)
  • Тип поля (число, строка, текст и т.д)
  • Отображать на странице (страница всех записей и отдельной записи)
  • Сортировка по полю дает возможность сортировать записи по убыванию / возрастанию
  • Поиск по полю позволяет отметить только те поля, по которым будет происходить поиск


image

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

Преимущества сервиса


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

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

Мы поможем бесплатно установить в ваш проект SimpleAdmin и помочь с настройкой для Ruby on Rails. Работать в дальнейшем над улучшением качества проекта и добавление нового функционала, который бы упростил вам работу. По всем вопросам можете писать на support@getsimpleadmin.com.

Что планируется сделать в следующем релизе?


* На данный момент SimpleAdmin находится в стадии альфа версии

Все задачи по проекту хранятся в открытом виде. Основные задачи, которые планируются реализовать в следующем релизе:
  1. Добавить новые типы полей (изображение, wysiwyg редактор, теги, цены и т.д)
  2. Добавить возможность встраивать свою логику в контроллеры на стороне сервиса.
  3. Кэширование для списка моделей и часто используемых данных
  4. Добавить страницу Dashboard и виджет статистики (общее количество записей)

Советы новичкам


Для начала работы с идеей необходимо собрать как можно больше обратной связи от потенциальной целевой аудитории, знакомых, друзей. Если идея вас зацепила и вы не потеряли к ней интерес спустя какое-то время и она уникальна на территории вашего региона или другого, то стоит прописать список задач (trello, pivotal tracker).

Спросите какой функционал хотела бы видеть в вашем сервисе целевая аудитория проекта (* если она не целевая, то фидбек может быть негативным). Открыто публикуйте отчеты о том, что было сделано и какой функционал вы планируете добавить в будущем (блог и социальные сети).

комментарии (0)