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.
До скорых встреч и удачи. Надеюсь это не громкие слова и всё таки мы в скором времени с вами встретимся.
 
Последнее редактирование:

На каком уровне?
Не знал что php уже можно писать на низком уровне.
Можно, когда ты пишешь без юза сторонних фреймов - можно назвать на уровне нативного языка и все "библиотеки и утилиты" пишешь самостоятельно - "низком уровне"
Есть ли смысл ? Точно нет.
 
Последнее редактирование:
Можно, когда ты пишешь без юза сторонних фреймов - можно назвать на уровне нативного языка и все "библиотеки и утилиты" пишешь самостоятельно - "низком уровне"
Серьезно?) или это рофл?)
 
Можно, когда ты пишешь без юза сторонних фреймов - можно назвать на уровне нативного языка и все "библиотеки и утилиты" пишешь самостоятельно - "низком уровне"
Есть ли смысл ? Точно нет.
Каждый уважающий пэхэпэшник в начале своей карьеры должен написать свою cms на чистом пхп
Иначе он не поймет что так делать нельзя)
 

    Logan22

    Баллов: 23
    И при этом объявить композер, ООП, гит... ошибкой человеческой циклизации)

    Mex-Vision

    Баллов: 5
    За жизу =)

    Deazer

    Баллов: 16
    Какой язык не выбери, везде так же.
Рофл))) речь была об уровне функционала управления сайтом, а не об уровня кодинга)

Ага на ассемблере написал)
 
Изменения, пропущенная информация и многое другое
Здесь было всего так много, что многое мы и забыли описать в дальнейшем будут определенные метки темы с описанием каждой функциональности 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 пока что мы не используем, поэтому его устанавливать не обязательно.
Все иконки и верхняя часть редактора будет так же изменена в будущем.
Помимо этого у нас добавлена поддержка создания табов, что в принципе будет переделаны элементы частей на неё, а так же изменен будет подход к локализации контента заместо тех табов будет предоставляться по другому, но об этом мы поговорим позже.
Первый пост будет добавляться/изменяться со временем
 
Как дела-с, товарищи? Двинулось дельце?
 
kick, не было идей перенести базу на авс сервисы?
 
  • Мне нравится
Реакции: MaZz
Как дела-с, товарищи? Двинулось дельце?
Разработка идёт, но не в приоритетном режиме. О изменениях и не только будет сказано чуть позже.
kick, не было идей перенести базу на авс сервисы?
Где угодно можно размещать, никто не запрещает.
 
Разработка идёт, но не в приоритетном режиме. О изменениях и не только будет сказано чуть позже.

Где угодно можно размещать, никто не запрещает.
Я наверно не совсем правильно высказался. Я имел введу amazon dynamodb
 
Эх. А ведь когда-то я тоже пытался сделать свой движок с нуля. Молодость-молодость ....
 
Я наверно не совсем правильно высказался. Я имел введу amazon dynamodb
А зачем?
Технологии нужно использовать правильно.
Не вижу смысла сайт для л2 сажать на кубер например)
 
Если проект выйдет в свет то это будет бомба, только зачем бесплатно? Любой труд должен быть оплачен, просто сделайте по доступной цене
 
Если проект выйдет в свет то это будет бомба, только зачем бесплатно? Любой труд должен быть оплачен, просто сделайте по доступной цене
Можно делать бесплатный продукт, но с оговорками. Например, предоставить весь функционал, но обслуживать платно. Да и никто не мешает принимать хотя бы донейшены. Вопросом монетизации можно крутить как угодно, вариантов море. В общем, если захотят, выкрутятся.
 
А есть новости по проекту?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Чет не вижу никого что бы ворвался и сказал "Фууу бутстрап" :D
 
Чет не вижу никого что бы ворвался и сказал "Фууу бутстрап" :D
Ну если нужен интерфейс, то bootstrap полезная вещица, тем более имеются десятки годных стилей, если че не нравится, спокойно накатываешь поверх и уже "дорого-богато"=)
 
Назад
Сверху Снизу