MMO-DEV CMS

В своё время я искал людей с определенным стэком для реализации проекта Работа над проектом. По сути люди уже найдены и пока приём закрыт. Так вот пришло время и расскажу вам немного о проекте, суть проекта является создать cms для администраторов т.к на рынке нет достойной цмски среди бесплатных, да и к тому же многие уже закрыты, что вызывает дефицит на рынке этого. В связи с этим было принято решение создать бесплатную cms для всех людей. Первым делом мы построили общую схему приложения как должно выглядеть на первых этапах:
1626896727165.png
Что из себя представляет данная схема? Сервер и клиент, на сервере мы отправляем запрос и получаем назад на клиенте. Сам сервер написан на C#, но вы можете сказать, что C# это произведение майкрософта, да вы будете правы, но майкрософт уже давно делает дистрибутивы с поддержкой на линуксе, тем самым и C# поддерживает Linux. Для установки на линуксе вы можете почитать на официальном сайте Microsoft . В качестве платформы мы выбрали .NET 5.0, да он не LTS, но он актуален и в будущем перейдём на .NET 6.0 как выйдет из беты. Для просмотра информации о .NET 6.0 вы можете воспользоваться репозиторием и почитать о критических изменениях на официальном сайте . В качестве ORM для работы с базой данных используется Entity Framework . А для построения всей API системы используется вся мощь ASP .NET, которая обладает очень большой экосистемой. В качестве веб-сервера используется Kestrel о котором вы можете почитать по следующей ссылки . Помимо всего для отдачи статики, которой нет вы можете использовать nginx .
Для чего можно использовать nginx? Для отдачи статики или балансировки, вам этого не надо, но если захотите можете подобное сделать. Базовая информация по этому доступна по следующей странице . Так же все маршруты авто документируются при помощи Swagger. И вот вам немного скриншотов со стороны API сервера для проектов
1626900449901.png
1626900476279.png
Не каких прямых запросов к бд с обвязки, не какой прямой работы с данными, всё выполняет API Сервер.
Возможно мы так же предоставим набор тестов через Postman.
По самому серверу мы базово разобрались, но а что же по клиенту? По клиенту всё довольно просто вы открываете браузер и переходите на ваш сайт, в качестве обработчика ваших скриптов выступает apache/nginx и сам интерпретатор PHP. Как только вы подали запрос начинается загрузка вашего сайта и происходит обмен информации.
Что же используется по стэку?
  • Фреймворк для PHP Laravel -
  • Для построения административного интерфейса мы используем продукт от Laravel - Nova ( ). Спасибо Andragor за покупку лицензии на неё.
  • Дальше для фронт-энда мы используем следующий стек Vue.js, Alpine.js, Tailwind и Livewire
Мы хотели добиться полностью SPA приложения, но из-за того, что мы понимаем, что типичные администраторы не знают за такие технологии как Vue.js/Angular, мы решили сделать обходным путём и реализовать это всё таким набором Alpine.js, Tailwind и Livewire. Да и к тому же обычные приложения хорошо ложатся под л2, возможно со временем лк переедет на Vue.js, но не факт.
Это если говорить вкратце о проекте, техническая сторона хорошо, но что мы имеем на данный момент?
  • Возможность установить редиректы для страниц
  • Управление пользователями, правами и группами, а так же блокировка/разблокировка, отправка рассылки на электронные почты, авторизация под пользователем
  • Получение статических данных
  • Интеграция с Matomo
  • PWA -
  • Статические страницы с возможностью указывания своего шаблона и полной кастомизации
  • Система тэгов по контенту
  • Создание новостей
  • Слайдер
  • Система заметок в панели управления
  • Система заметок к определенному содержимому можно задать
  • Система черновиков
  • Резервное копирование и автоматическое резервное копирование
  • Файловый менеджер
  • Медиа менеджер
  • Планировщик задач
  • Выполнение консольных команд из панели управления
  • Просмотр чендж-логов обвязки
  • Журнал ошибок
  • Двухфакторная авторизация
  • API-токены
  • Интеграция с социальными сетями
  • Активные сеансы и многое другое
  • И конечно же ссылки на проекты партнёров и спонсоров (используется как реклама пользователям обвязки) в панели управления
  • Мультиязычность
Звучит вроде не плохо, но а где результаты билли? Где хоть какие то скриншоты? Мы вам представим следующие скриншоты базовой разработки.
Главная страница
1626898542288.png
1626898564580.png
Редактирование профиля пользователя
1626898612347.png
1626898640657.png 1626898651901.png
Двухфакторная аутентификация
1626898671974.png
1626898698579.png
Работа с API-токенами
1626898726730.png
1626898737947.png
В любой момент вы можете изменить разрешения или удалить токены
1626898771064.png
1626898785027.png
По публичной части мы пока что закончили и много чего ещё не сделали, а вот теперь мы представим вам панель управления.
Из-за того, что не указаны API ключи вы не увидите сейчас основной статистики на главной странице
1626898970641.png
1626898980541.png
Вы можете создать редиректы так например, при открытие вашего сайта по ссылке сайт.зона/wel вы будете перенаправлены на наш форум
1626899011618.png
Редиректы вы можете создавать с определенным кодом
1626899076488.png
Вы можете управлять пользователями
1626899133440.png
Вы можете задать заметку пользователю
1626899202708.png
1626899236995.png
1626899250461.png
Помимо всего действия не останутся не заметными, вы можете проследить за изменениями
1626899277689.png
Такой же почти функционал и для ролей и для прав.
Как выглядят статические страницы
1626899315785.png
1626899334117.png
А в качестве шаблона вы можете создать любой для вас удобный
1626899368998.png
И открытие статической страницы без шаблона
1626899387856.png
Новости, новости вы можете как закреплять так и создавать черновики и не только
1626899433565.png
Так и задавать сео данные
1626899453017.png
1626899468010.png
Вы можете управлять полностью слайдерам, а так же не волноваться о том, что вы залили только одно изображение, а на мобильных устройствах это выглядит не очень. Мы создаём различного размера изображения, а так же добавляем возможность добавлять из коллекции существующие картинки
1626899529122.png
1626899574268.png
1626899588649.png
1626899599515.png
Вот так вот всё плохо, не понравилось? Можете залить своё новое изображение.
Вы можете оставлять для себя определенные заметки в панели управления
1626899639558.png
1626899653048.png
Помимо этого обвязка сама создаёт резервные копии, обновляет и удаляет старые резервные копии
Файловый менеджер поможет вам найти любой необходимый для вас файл не заходя на сервер
1626899704238.png
Вы так же можете посмотреть любые задачи и выполнить если вам необходимо этого
1626899727624.png
Вы можете выполнить команду из панели управления.
1626899827733.png
Ну вот на скриншоте мы видим команду wipe и явно она опасна для выполнения на продакшене. Но мы разделяем виды сред и тем самым мы исключаем на продакшене выполнение подобных команд. Для разработчиков будет введена система плагинов и не только и такой полный вид предназначен для них, а на продакшене мы видим доступные следующие команды:
1626899973702.png
Максимум почистить кэш да получить список бекапов.
Ну и как выглядит
1626900001480.png
Ну и само выполнение команды
1626900034797.png
Так же для разработчиков представлен инструмент для отладки маршрутизации, в режиме продакшене подобное просто отключено
1626900122782.png
В чейджлогах вы сможете увидеть какие изменения были сделаны в обвязке
1626900158287.png
Ну и конечно же просмотр логов
1626900179748.png
1626900247755.png
Я не стал подробно каждый элемент показывать и расписывать, я показал основную информацию т.к на это у меня ушло бы куда больше времени. И скриншотов ушло так же куда больше.
Недавно в теме я поделился небольшим спойлером какие изменения ждут в проекте Фиксы которые мы заслужили..
Но к сожалению из-за появившихся личных жизненных проблем и вообще не известности, что дальше делать и как быстро это разрулить неизвестно когда мы с вами увидимся вновь и получится рассказать, поэтому пока я смог вам рассказать из свежей информации, но всё это отлаживается из-за личных проблем. Если вы хотите помочь, то вы можете в правом углу пожертвований внести небольшое пожертвование это ваш выбор.
Помимо этого я хотел бы поблагодарить следующих людей которые решили помочь в развитие этой идее и реализации, а именно:
òbi, inzanty, Black_Yuzia
Так же хотел поблагодарить спонсора данной разработки, а именно Andragor.
До скорых встреч и удачи. Надеюсь это не громкие слова и всё таки мы в скором времени с вами встретимся.
 
Последнее редактирование:
Изменения, пропущенная информация и многое другое
  • Здесь было всего так много, что многое мы и забыли описать в дальнейшем будут определенные метки темы с описанием каждой функциональности CMS. Но а пока мы расскажем вам о том, что мы всё таки пропустили.
    Наверное стоит с очень важной части, мы забыли вам рассказать о том, что мы поддерживаем микро разметку
    1627464399821.png
    На страницах с соответствующей информацией вы сможете увидеть определенную микро разметку. Вся микро разметка создаётся автоматически и вам не нужно заботиться об этом. При необходимых знаниях вы можете изменить и тип её. Про микро разметку вы сможете прочитать здесь .
    История паролей, мы храним хэши паролей, а так же дату изменения пароля, что позволяет нам реализовать следующие механизмы:
    • Сверка пароля при изменение, что бы запретить использование последних n паролей
    • Устаревание пароля, через какой промежуток времени, что бы заставить пользователя сменить пароль
    Для разработчиков реализована команда, которая позволяет генерировать права.
    Генерация карты сайта. Карта сайта генерируется каждые 30 минут.
    Генерация rss ленты для новостей, если нужно будет и для других механизмов это не составит труда, что бы сгенерировать для конкретного случая.
    А помимо этого существуют заготовки по оптимизации изображений и не только, о заготовках мы не поговорим, а лишь опишем пока что об оптимизации изображений которая уже успешно работает.
    Сейчас мы поговорим коротко о небольших изменениях.
    Редактор, нам не очень нравился существующий wysiwyg редактор в cms и поэтому мы его заменили, а так же сгруппировали всё это дело и теперь готовы вам его представить.
    1627465341990.png
    Все кнопки имеют группировку
    1627465375823.png
    1627465443423.png

    1627465464609.png
    1627465480907.png
    Вы можете выполнять любые функции без проблем, так же мы оставили лишь необходимые размеры шрифтов, но вы можете это без проблем настроить как хотите всё выведено для удобства вашей конфигурации
    1627465626374.png
    Помимо всего этого, мы можете настроить экстра классы оформления как для ссылок, так и для текста но мы используем стандартные
    1627465714224.png
    Так же помимо того, что имеется встроенная система вложений вы можете управлять своими картинками как вам будет удобно это делать.
    1627465800201.png
    Вы можете задать стиль, выровнять, добавить оформление, заменить, поменять размеры изображения или вовсе воспользоваться расширенным редактором.
    1627465876998.png
    Вам не нужно больше заботиться о графических редакторах, у вас всё это доступно во внутреннем редакторе обвязки от оформления текста и ссылок заканчивая обработкой изображений. Помимо всего этого вы можете выключить или изменить параметры оптимизации изображений. Так например изображения в формате jpeg мы сжимаем до 85% качества, по стандарту в Page Speed от Google, но вы можете изменить, добавить свои параметры или вовсе отключить эту функцию. Это функция работает только если у вас VPS т.к для этого необходимо будет поставить следующие инструменты:
    • jpegoptim -
    • optipng -
    • pngquant -
    • svgo -
    • gifsicle -
    • cwebp -
    Как это сделать вы найдёте и так соответствующую информацию, а такой инструмент как svgo пока что отключен из-за проблем, а webp пока что мы не используем, поэтому его устанавливать не обязательно.
    Все иконки и верхняя часть редактора будет так же изменена в будущем.
    Помимо этого у нас добавлена поддержка создания табов, что в принципе будет переделаны элементы частей на неё, а так же изменен будет подход к локализации контента заместо тех табов будет предоставляться по другому, но об этом мы поговорим позже.
    Первый пост будет добавляться/изменяться со временем
     
    Назад
    Сверху Снизу