Привет ребята! Наверное вы уже успели прочитать мою прошлую статью о создании open source проекта и какие советы я дал новичкам на этапе планирования и начала работы над проектом.
Прошло уже больше чем полгода с момента написания статьи и первоначальная идея переродилась в нечто новое. Изначально, основная мысль была в том, чтобы создать gem для создания административных панелей, которых уже и так довольно приличное количество, но в итоге начав работу над проектом, я кардинально изменил его концепцию.
Как это работает на стороне приложения?
SimpleAdmin это сервис, который позволяет вам визуально создавать административные панели не прибегая к помощи программиста, вы не привязаны к определенному языку программирования т.к все данные передаются посредством API и структура административной панели строится на лету в зависимости от созданных вами сущностей и полей при помощи визуальной составляющей сервиса.
Предположим у нас есть приложение “Блог” в котором есть модель “Записи” с полями заголовок и описание. Для интеграции вам необходима небольшая библиотека, которая подключается в ваш проект и создает следующие 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), которые являются отражением вашей модели и полей в ней.
Как это работает на стороне сервиса?
После создания проекта нажмите на имя проекта и вы увидите административную часть.
При редактировании модели вы можете создать поля двумя способами:
- Создать поле отдельно выбрав его тип и на какой странице оно будет отображаться
- Отметить необходимые поля галочками (или наоборот убрать)
При создании поля вы можете выбрать следующие атрибуты:
- Ярлык поля (как поле будет отображаться в админ. панели)
- Тип поля (число, строка, текст и т.д)
- Отображать на странице (страница всех записей и отдельной записи)
- Сортировка по полю дает возможность сортировать записи по убыванию / возрастанию
- Поиск по полю позволяет отметить только те поля, по которым будет происходить поиск
На странице коллекции вы можете увидеть список ваших последних записей, отсортировать их по id и заголовку, найти необходимую вам запись и совершить стандартные операции создания, редактирования и удаления.
Преимущества сервиса
Основное преимущество SimpleAdmin это возможность редактирования административной панели без каких-либо навыков в программировании и гибкая архитектура, которая не привязывает вас к одному языку программирования.
Для установки библиотеки понадобится 5 минут времени программиста и в дальнейшем любые задачи связанные с добавлением новых полей или функционала может выполнять человек без специальных технических навыков, что конечно же выгодно бизнесу.
Мы поможем бесплатно установить в ваш проект SimpleAdmin и помочь с настройкой для Ruby on Rails. Работать в дальнейшем над улучшением качества проекта и добавление нового функционала, который бы упростил вам работу. По всем вопросам можете писать на support@getsimpleadmin.com.
Что планируется сделать в следующем релизе?
* На данный момент SimpleAdmin находится в стадии альфа версии
Все задачи по проекту хранятся в открытом виде. Основные задачи, которые планируются реализовать в следующем релизе:
- Добавить новые типы полей (изображение, wysiwyg редактор, теги, цены и т.д)
- Добавить возможность встраивать свою логику в контроллеры на стороне сервиса.
- Кэширование для списка моделей и часто используемых данных
- Добавить страницу Dashboard и виджет статистики (общее количество записей)
Советы новичкам
Для начала работы с идеей необходимо собрать как можно больше обратной связи от потенциальной целевой аудитории, знакомых, друзей. Если идея вас зацепила и вы не потеряли к ней интерес спустя какое-то время и она уникальна на территории вашего региона или другого, то стоит прописать список задач (trello, pivotal tracker).
Спросите какой функционал хотела бы видеть в вашем сервисе целевая аудитория проекта (* если она не целевая, то фидбек может быть негативным). Открыто публикуйте отчеты о том, что было сделано и какой функционал вы планируете добавить в будущем (блог и социальные сети).