Привет, меня зовут Андрей - я руководитель проекта «Garbalo». Начиная с конца 2022 года в нашей команде активно ведется разработка одного из наших продуктов, целью которого является управление контентом на сайте. Однако, в сети Интернет достаточно мало информации об этой системе, поскольку продукт относительно молод, а также находится в процессе разработки.
В этой статье я хочу прояснить этот момент и более подробно рассказать об этой системе, зачем мы ее разрабатываем и что с ней будем делать в дальнейшем.
Предыстория разработки
Стоит отметить, что CMS «GIRVAS» является не первой системой управления содержимым над которой я работаю. Так, в промежутках с 2015 по 2018 годы я работал над CMS «DRENOM», которая должна была выпуститься по планам в 2020 году. Этого не произошло. Причиной провала проекта стали переоцененные возможности на тот период времени. Говоря о возможностях я имею ввиду время, финансы, знания и понимание целей.
Основной ошибкой при работе с CMS «DRENOM» было отсутствие понимания того, что должно получится в итоге - в конечном результате не получилось ничего. Шло время, я учел все ранее допущенные ошибки, сформировал новую команду, определил цели, получил новые знания и закрепил старые. Пришла пора снова «врываться в бой».
«Свежий взгляд»
Главная проблема как отсутствие «Свежего взгляда» присутствует во многих местах: творчестве, политике, экономике, науке. IT-сфера тому не исключение. Большинство уже выпущенных ранее CMS, такие как: WordPress, DataLife Engine, Drupal, Joomla! и прочие - продолжают обновляться и по сей день. Однако, у всех них существует отсутствие того самого «Свежего взгляда».
Работая над CMS «GIRVAS» я стремлюсь к тому, чтобы выпустить не просто хорошую CMS, которая сможет без проблем помогать в управлении веб-ресурсом. Но и такую, которую можно развивать таким образом, чтобы на основе нее можно было сделать практически любой сайт - будь то форум, блог, новостной сайт или подобие социальной сети.
Сделано в Карелии
Республика Карелия - моя родная Республика. Здесь я родился, вырос, женился. Здесь очень красиво, очень много тех мест, куда я бы хотел съездить. Но меня, как программиста, также интересует и IT-сфера в Карелии. Здесь существует очень много интересных проектов, однако нет открытых и бесплатных CMS. По крайней мере о таких я не нашел информации. Существуют только лишь закрытые системы для бизнеса или государственных учреждений. Я хочу это исправить.
Проект «Garbalo» в первую очередь ставит развитие IT-сферы Республики Карелия. Именно поэтому мы изначально ориентируемся именно на Карелию. CMS должна стать первой открытой и бесплатной системой управления содержимым на территории Республики Карелия.
Внутренняя система превратившаяся в публичную
Изначально CMS «GIRVAS» разрабатывалась как внутренняя система, которая использовалась исключительно в веб-ресурсах «Garbalo» без возможности распространения. Со временем эта тенденция изменилась, было вложено много идей, а также внесено много изменений, что сделало систему гибкой и юзабельной, что натолкнуло на мысль, что из этого может получится что-то интересное.
Спустя некоторое время было принято решение разработку внутренней системы превратить в разработку публичной бесплатной системы управления содержимым. Мы не видим смысла брать за систему деньги, а только лишь за предоставление некоторых услуг.
Сложности разработки
Команда «Garbalo» на момент написания статьи состоит из 11 человек - это энтузиасты, которые преследуют единую цель - выпуск первого продукта и создание организации, которая будет заниматься выпуском программного обеспечения и компьютерных игр.
Говоря об энтузиазме стоит понимать, что команда от своей деятельности не получает ничего. От слова совсем. Все прекрасно понимают, что что-нибудь мы сможем получать только после старта первых продаж продукции или услуг команды. Отсутствие выплат, наличие трудоустройства в другой организации, а также отсутствие постоянной коммуникации из-за сторонних рабочих процессов сильно усложняют работу, но мы не сдаемся и продолжаем работать в режиме «кто когда сможет». Для себя же это правило я решил исключить.
Я, как руководитель проекта, должен быть полностью погруженным в рабочий процесс «Garbalo», контролировать его, а также двигать команду к цели. Так сложилось, что я являюсь ведущим разработчиком практически во всех проектах «Garbalo», поэтому большая часть работы лежит именно на мне. Раньше меня это пугало, но сейчас я научился разграничивать работы и строить у себя в голове план разработки, а также по необходимости привлекать членов команды к нашим рабочим процессам - именно так «Garbalo» на данный момент и работает.
Идея системы управления содержимым
Чуть выше я уже писал о том, что CMS «GIRVAS» должна стать той, на основе которой можно создать веб-сайт любого направления. Основная масса существующих CMS имеют определенное направление, или имеют пару дополнительных. CMS «GIRVAS» должна стать исключением.
Назначение CMS
CMS должна уметь работать в любом направлении без необходимости вмешиваться в код самой системы - для этого была разработана модульная система, позволяющая расширить возможности CMS за счет собственного функционала.
Основное предназначение CMS заключается в предоставлении возможности публиковать на веб-сайте контент любой сложности с возможностью его перевода на другие языки и индексировании такого материала поисковыми системами, тем самым публикуя материал на разных языках в поисковиках.
Техническая составляющая
CMS «GIRVAS» разрабатывается на C-подобном скриптовом языке общего назначения PHP версии 8.2.6 без использования каких-либо фрейворков - это чистый самопис. Исключением является лишь сторонняя библиотека «Parsedown» для парсинга Markdown-разметки.
Клиентская часть также самописна. При разработке интерактивной части не были использованы готовы сторонние библиотеки (даже jQuery). Было использовано только то, что предложено самим JavaScript. В дальнейшем клиентская часть будет переписана на TypeScript и при желании можно будет использовать его - в таком случае система вместо библиотек JavaScript будет подключать TypeScript.
Модульная система
Расширение возможностей CMS «GIRVAS» - одна из ключевых функций системы. В случае, если в версии «из коробки» не оказалось нужного функционала, то его можно добавить посредством модулей, которые доступны к загрузке через проверенный репозиторий, разработанный специально для пользователей CMS «GIRVAS».
На первых порах репозиторий сможет пополняться только за счет команды разработчиков «Garbalo», однако, в дальнейшем мы будем готовы предоставить возможность это делать и сторонним разработчикам.
Вот запланированные модули на текущий момент: «Easy Forum», «My Blog», «Turbo Yandex» и «Easy Shop».
Программируемые шаблоны
Как и в случае с модулями, шаблоны для системы управления содержимым также можно загрузить через официальный репозиторий, который доступен в административной панели управления CMS. Однако, эти шаблоны могут отличаться от тех, которые создаются для других CMS.
Разрабатываемые шаблоны для CMS «GIRVAS» имеют программируемое ядро, которое позволяет запрограммировать отображение шаблона, тем самым структурируя разметку веб-страницы таким образом, каким необходимо - система в итоге все равно это соберет в единый веб-ресурс. В случае, если разработчику шаблона не нужно персонализированное ядро, то можно оставить типовое, которое предоставляется вместе с CMS в составе стартового шаблона.
По мимо стартового шаблона в репозитории можно будет найти несколько бесплатных официальных шаблонов, чтобы можно было подобрать более подходящий по нужной тематике.
Сборщик запросов к базам данных
Запрос к базам данных - один из самых важнейших моментов в системе управления содержимым, поэтому акцент также был сделан на этот функционал. Для CMS «GIRVAS» был разработан полноценный сборщик запросов к базам данных. На текущий момент сборщик умеет строить запросы только к СУБД PostgreSQL, однако в дальнейшем он будет адаптирован также и под другие популярные системы управления базами данных, такие как: MySQL, MariaDB, Microsoft SQL Server, Oracle и другие.
Встроенная мультиязычность
Команда «Garbalo» делает приоритет на русскоязычном населении, однако, можно предположить, что часть будущих пользователей CMS «GIRVAS» может быть нацелена на трансляцию контента тем, кто не знает русского языка - было решено предусмотреть это.
CMS «GIRVAS» изначально предполагает возможность трансляции контента на нескольких языках, что позволяет публиковать в сети Интернет материал на разных языках, тем самым позволяя поисковым роботам индексировать одновременно несколько языковых версий контента.
Система управления содержимым не умеет самостоятельно переводить контент на другие языки, поэтому было принято решение оставить это контент-мейкерам, которые могут выбрать нужный язык для перевода и написать контент уже на другом языке. Предполагается, что в дальнейшем будет разработан специальный модуль, который будет позволять переводить текст автоматически на подключенные языки для трансляции контента.
Мультиязычные веб-каналы
Веб-каналы являются одним из способов трансляции текстовой информации. Именно поэтому был разработан полноценный генератор веб-канала по трем популярным спецификациям: RSS 1.0, RSS 2.0, Atom. Не исключено, что в дальнейшем будет введена поддержка и других спецификаций.
Как уже указывалось ранее, одной из фишек системы управления является мультиязычность. Поэтому эта фича стороной не обошла и веб-каналы. В случае, если веб-канал содержит записи для которых подготовлена трансляция на других языках, то при выборе локализации веб-канала можно будет увидеть контент на нужном языке - это очень полезно в том случае, если необходимо передавать информацию в виде колонок новостей различным сервисам, которые работают с другими языками.
Поддержка Markdown-разметки
Написание текстового материала - важная составляющая для систем управления содержимым, поэтому мы решили упростить форматирование текста, разработав текстовый редактор «Nadvo TE», который поможет не только увидеть то, как будет выглядеть страница с контентом в итоге, но поможет отформатировать, ведь панель редактора содержит все необходимые инструменты для этого.
Текстовый редактор «Nadvo TE» способен работать в двух режимах: «HTML-разметка» и «Markdown-разметка». Также эти режимы можно смешивать, однако читабельность такого контента в неотформатированном виде снижается, поэтому лучше выбрать тот, который удобен больше всего.
Современный минималистичный интерфейс
Разрабатывая интерфейс CMS «GIRVAS» делается упор на простоту в понимании, а также минимализм. Самый удобный и современный интерфейс должен быть минимальным и понятным.
Цветовые оттенки были подобраны таким образом, чтобы человеку было комфортно видеть перед собой элементы интерфейса и работать с текстовым материалом, просматривать различную отчетность.
Собственная система интерактивных элементов
При разработке клиентской части было уделено особое внимание интерактивной части системы управления содержимым «GIRVAS». Так была разработана javascript-библиотека, которая способна внедрять интерактивные элементы с поддержкой кастомизации, такие как: кнопки, выпадающие списки, модальные окна и галереи. В дальнейшем в этот же список попадут спойлеры, вкладки и тому подобное.
Бизнес-модель CMS «GIRVAS»
Разрабатываемая система управления содержимым будет распространяться абсолютно бесплатно, чтобы каждый мог ей воспользоваться, опробовать в использовании. Команда «Garbalo» не исключает того, что в будущем будут продвигаться услуги по создании сайта под ключ на базе CMS «GIRVAS» с дальнейшей поддержкой его работы.
CMS «GIRVAS» имеет доступ к репозиторию модулей и шаблонов веб-сайта. На текущий момент там содержатся исключительно бесплатные модули и шаблоны, однако в дальнейшем в репозитории появится премиальный класс, который будет стоить денег. Тут «Garbalo» предложит два варианта оплаты: «Premium-подписка» с ежемесячной оплатой для получения постоянного доступа к премиальному контенту или разовое приобретение доступа к конкретному премиальному модулю или шаблону.
После выпуска CMS ее код будет доступен на GitHub, поэтому каждый сможет увидеть то с чем он будет работать, сможет поделиться своими предложениями касаемо улучшения кода, а также сможет помочь в поиске уязвимостей.
Заключение
Работая над CMS «GIRVAS» я и моя команда в первую очередь хотим получить действительно качественный и востребованный продукт, поэтому мы не гонимся за временем и стараемся уделить время каждой детали. Мы хотим внести свою лепту в развитие IT-сектора не только Республики Карелия, но и России в целом. Поскольку о нас знают не так много людей, мы хотим начать с малого - с родины большинства членов команды - с Карелии.
Мы - команда «Garbalo», мы те, кто жаждет развития, мы те, кто больны (в хорошем смысле) своей идеей. Мы стремимся к своей цели и идем к ней несмотря на сложности.
Оригинал статьи: https://vk.com/@drelagas-cms-girvas-karelskii-vzglyad-na-sistemy-upravleniya-soderz
Сообщество ВК: https://vk.com/cms_girvas