×Закрыть

DOU Проектор: SimpleAdmin — универсальная админпанель без помощи программиста

В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.

Меня зовут Дмитрий Струков, я CEO сервиса SimpleAdmin. Это универсальная административная панель, позволяющая подключить приложение (мобильное, веб) на любом языке программирования к сервису. Человек без специальных технических навыков при помощи интерфейса сможет добавить необходимые поля и ресурсы для управления контентом на сайте.

Идея

Однажды ко мне пришла идея создания своего open source проекта. Довольно часто на этапе собеседования в компанию просят выполнить тестовое задание, и очень удобно вместо этого просто отправить ссылку на репозиторий с примерами кода. А перспектива помочь коллегам с решением их повседневных проблем еще больше зарядила меня энергией.

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

После написания MVP я осознал: зачем фокусироваться на одном языке программирования или фреймворке, почему бы не сделать универсальное решение.

Реализация

Для воплощения идеи в жизнь выбрал Ruby on Rails, и на данный момент у нас монолит. Разработка приложений на этом фреймворке происходит с очень высокой скоростью, и у меня большой опыт работы в стартапах с ним. Тестовое покрытие — около 5-10%, поэтому появлялись неочевидные баги уже на staging сервере. Но тем не менее я считаю, что мой продукт не на том этапе, чтобы уходить с головой в тесты. Пока достаточно нескольких интеграционных тестов для проверки основного функционала.

Опять же для скорости выбрал Heroku как площадку для хостинга приложения. Большое количество встроенных инструментов для бэкапов, мониторинга.

Команда

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

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

На начало октября я собрал команду: Front-end разработчик, 4 Backend разработчика, контент-менеджер.

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

Разработка сервиса заняла около 2-3 месяцев, активно искать клиентов мы начали в октябре. В репозитории уже более 650 комитов и было выполнено 10 релизов.

Использование сервиса

Для разработки сложной административной системы с нуля потребуется один сильный разработчик с рейтом $40-50 в час и около 120 часов (3 рабочих недели). Итого мы получаем $6000. А если учитывать что, возможно, у вас есть несколько проектов на разных языках программирования, то мы имеем достаточно ощутимую цифру. Благодаря сервису SimpleAdmin можно сэкономить ресурсы в разы.

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

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

Для работы с контентом необходимо выполнить несколько достаточно простых шагов:

  1. Перейти на страницу управления ресурсами.
  2. Создать ресурс, выбрав из списка необходимый.
  3. Добавить необходимые поля (для осуществления операций над ресурсами добавьте поле ID).

Редактирование полей

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

Кроме того, есть много других функций, которые вы можете выполнять:

  • импорт и экспорт в формате Excel;
  • возможность выбора полей для сортировки, поиска;
  • генератор тестовых данных (например, заполните поле SKU для продуктов), виджеты статистики;
  • резервное копирование данных.

Сервис можно использовать в E-commerce, для мобильных, веб-, API-приложений.

Результаты и планы

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

Конкурентов на рынке СНГ у нас нет. На рынке Европы и США — Forestadmin, который получил инвестиции и сотрудничает в основном с крупными игроками. Цена подписки для бизнеса начинается от $200 в месяц, для Enterprise — еще больше.

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

В ближайшее время планируем сделать интеграцию с такими крупными сервисами, как Heroku, Gitlab. Увеличить количество клиентов и активных пользователей до 100 за ближайшие полгода. Это позволит оплачивать хостинг и труд разработчиков.

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

LinkedIn

52 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Ребята, что то у Вас хромает юзабилити. Проверьте на macbook 13 retina, опера

The most advanced service to build a powerful dashboard in minutes without coding

Так и не увидел в ролике „dashboard”. О чем продукт то?

А вы сравнивали себя с такими тулзами, вроде laravelvoyager.com ?

Крутой инструмент, добавил в закладки. Спасибо

У этой тулзы, кстати, что я скинул очень много недостатков, т.к. это генератор CRUD, неудобно выставлять зависимости и связи, но для разработки порталов средней величины это идеальная тулза вместе с Laravel, сгенерированный код потом можно под себя поменять.

Ну вот в упор не пойму, ну вот зачем это всё... Таскать данные между серверами чтобы построить дашбоард. Или это не SaaS? Конечно имеет право на жизнь, и дай бог — пусть проект растет и развивается. Ну вот реально, в какой ситуации это может быть нужно настолько больше, чем потратиться на часы/работы и натянуть свой интерфейс, который с проектом и «умрёт». Потратиться на причёсывание проекта к вашему Апи и вашу подписку выходит что — дешевле? Так размышления, не пинайте;)

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

Да, совершенно верно. В классической ситуации, если лежит сервер проекта, то и лежит его дашбоард (не дать — не взять)... а если лежит сам сервис дашбоарда, а проект работает, что ручками БД править. Риск определённо просматривается.

Ответил выше. Есть возможность развернуть на ваших серверах все

Мы сами причесываем API и библиотека для интеграция есть + у нас есть возможность развернуть на ваших серверах сервис

Не понял. Допустим у меня есть блог. В котором и так все редактируется. А бывают блоги где нет админки?

При написании приложения с нуля админки не будет

Это почему же? Суть в том, что фронт и бек — лишь понятия разделения. Есть приложения с админкой на фронте (авторизован и есть права — можешь писать в блог и редактировать записи). Всё относительно, всё относительно... Да и как писать то без какого-либо UI на редактирование записей?

ну, зачем так категорично. Есть целый сегмент всяческих scaffolding тулзов для быстрой генерации крудов по моделям. Для того же MVC Core + EF Core вообще из коробки идет.

Если хорошенько копнуть, есть и более крутые инструменты, которые умеют не только один раз сгенерировать код и шаблоны для list/form, а позволяют описывать каким-то DSM модельки тех же формочек\списков с возможностью расширения своими лайаутами, контролами и т.д.

Когда-то давным давно (кхе-кхе) ваш покорный слуга сам был причастен к построению подобного монстрика — это было еще во времена ASP.NET WebForms. Генераторы генераторов итить :-)

Model-driven development не взлетел, и MS закрыла все начинания в этом направлении (project Oslo, M-language если кто-то помнит). Победило «нужна больше дивелоперов», а не все эти хитроумные архитектуры, так что это все история.

Не хотелось бы вас разочаровывать, но пользоваться этим будут те же самые программисты по $40-50/час (если не дороже за счёт узкой специализации), поскольку заказчику важно чтобы оно просто работало и времени разбираться в моделях данных у него нет (не нанимал бы он тогда IT-шников).

По факту, у вас headless CMS, которых на сегодня создано великое множество.

Пара советов из личного опыта:
— необходимо добавить поддержку энвайронментов (как минимум дев/сендбокс, стейжинг, прод) с автоматической репликацией изменения схемы/данных со стейжа на прод
— грамотно разработать кеширование, поскольку жирные кастомеры запросто положат API
— добавить business/enterprise тарифные планы, которые позволят содержать команду техподдержки для быстрого реагирования (именно из-за поддержки цена конкурентов выше) и оставить текущий тарифный план за $15 как «for development/small websites»

В любом случае, удачи в начинаниях :)

Спасибо за советы :)

headlesscms.org Вот тут хороший список безголовых cms для вдохновения.

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

Спасибо за обратную связь, будем упрощать интерфейс

Почему бы не использовать вместо «модель» просто слово «запись» !?

ммм...вот тут под вопросом как лучше всего назвать эту абстракцию чтобы всем было понятно, но склоняюсь к понятию «Ресурс»

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

И каким же образом мой блог узнает что я что-то там накликал в вашей админке, без программиста?

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

То есть:

  • Админка расчитана только на CRUD
  • Все равно нужен программист чтобы интегрировать её с сайтом

Так?

Не только на CRUD, спиоск функционала описан выше и можете ознакомится с демкой.

По поводу интеграции мы берем эту роль на себя, взаимодействуем с технической командой и есть готовая библиотека для этой цели

А приложухи админки для мобильных и планшетов будут?

Я кажется врубаюсь... нужно изначально строить приложуху с планами на администрирование через их сервис (завязываться на их Апи). Такая себе удалённая админка.

Ага и + можем развернуть на сервере клиенте все это дело

А по какому url не подскажите?

Возможно не разобрался. Создал просто одну админку, затем вторую указав просто случайный урл (тк не знаю я наперед куда ее буду подключать) — take.ms/aK594

Спасибо, этот момент как раз не был до конца очевидным.

щось я взагалі не зрозумів для чого це?

Я правильно розумію що це SaaS який дає можливість налаштувати власні моделі і заливати/читати дані з вашого стореджа?

Для інтеграції з вами на моєму боці все одно потрібно буде писати код який буде апдейтити ентіті у вашій базі по вашому арі?

Яка модель білінгу?

Всередині воно реалізовано як EAV?

Дані зберігаються у вас, сервіс не зберігає нічого крім абстракцій (щось на зразок схеми таблиць і колонок). Для інтеграції потрібна така структура github.com/...​leadmin/simpleadmin-rails

Оплата через підписку (15$ у мiсяць)

Подивився що таке EAV, ви маєте рацію, що щось схоже

Спасибо за статью! Два вопроса, 1-й — вопрос безопасности, планируется ли в будущем вариант версии для локального хранения или т.п., 2-й вопрос — кастом отчетность, построение графиков, pivots — есть ли или планируется?

кастом отчетность, построение графиков, pivots

а вам такое надо? их есть у нас, как отдельно так и embedded

1) Да, версия для использования на серверах клиента есть и к тому-же определенную часть отправим в OpenSource на всеобщее обозрение

2) Зависит от клиента, реализуем под него функционал. Если опишите более детально и это must have функционал для большинства, то реализуем в ближайшее время

Как дальше планируете развивать продукт (именно направление)?

Питчить, искать инвесторов. Часть продукта как у Gitlab в свободный доступ выложим

Если честно, ничего не понял :) название SimpleAdmin, но месседж на сайте Dashboard made simple = как то не связалось, что это — дашбординг тул? Codeless форм-билдер? Что-то вроде Airtable (или почившего FieldBook — прикольная штука кстати. была.)?

вот тут getsimpleadmin.com/...​demo/admin/system/widgets HTTP/500

Спасибо за обратную связь. Ошибку поправили, а продукт представляет из себя платформу по работе с данными (CRUD операции, экспорт и импорт и т.д). Данные отправляются при помощи унифицированной API, а на стороне SimpleAdmin происходит уже взаимодействие с ними

Дмитрий, поработайте над меседжем — вот Виталик подсказал что codeless form builder, or codeless admin builder. Платформа по работе с данными — слишком расплывчатое название. Что-то должно быть что отличает ваш проект от подобных.

Например я могу его использовать как инструмент быстрого прототипирования админки, но не более, так как на каком-то моменте мне понадобятся кастомные контролы или (понимаю что можно их просто вынести как отдельные связанные сущности) сложные вложенные формы.

Не останавливайтесь и удачи в развитии проекта!

Виталик, как видишь — 20 лет прошло, а поиски святого грааля всё так же актуальны ,)

Ничто не ново под луной ;-) это норм, главное чтобы кастомеры были, и им был понятен месседж. Мы то такое, не целевая аудитория.

>

Тестовое покрытие — около 5-10%,

>

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

А я, знаете, создал игрушечную машинку, вроде едет, протестировали только 10-тую часть кейсов привычного использования, но я готов уже ее рекламировать и ответственно заявляю, что РАБОТАЕТ !

Ответственно заявляю, что работает. Определенные баги бывают, но все это улучшается и постепенно дойдем до покрытия в 80-90%

Нет смысла тратить время/деньги на QA пока проект не приносит прибыль. Лучше сделать упор на фичи/маркетинг +логировать всё грамотно

Согласен, у нас все логируется и ошибки попадают в Rollbar + наличие стейджинга

Подписаться на комментарии