суббота, 12 ноября 2016 г.

3. История о том, как написать систему управления проектами (ERP) своими руками. Первый хеловорд.

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


1. основа того, что я там сделал - mwce, поэтому у нас изначально есть некоторые, назовем их, правила:

сама бизнес-часть(php-скрипты) будет находится в папке build/erp, визуальная часть, то есть интерфейс, будет находиться в theme/erp.
в каждом билде( build/билд) есть определенная иерархия папок:
_dat  - папка с кешем, настройками.. в общем, всем тем, что не надо обычно вообще трогать.

configs - папка с конфигурациями, в которой, как минимум, должно быть 2 файла: 1 - connections.php (в котором содержится массив с параметрами подключения) и main.cfg (сериализованный массив с необходимыми для запуска параметрами )

inc - папка со вспомогательными классами (на данный момент, в ней есть только eController, который описывает особенности контроллеров модулей данного билда)

plugins - папка с плагинами (о разнице между обычными модулями и плагинами - позже).

Все остальное на ваш вкус и цвет. В данном случае, вкус и цвет будут мои :), поэтому пока присутствует в нем только папка main, где находится первый модуль, сопсно, главной страницы.


Да, забыл сказать, тут кругом ООП и mvc, если вы не понимаете что и как, лучше полистайте сначала теорию.

..Папка с темой сайта имеет тоже 1 ограничение: в ней должна быть html/public/index.html - по сути, главная страница (точка входа) и error.html - для вывода ошибок.

2. Как это все заставить работать.

При данной конфигурации, пока все просто: заходите в build/erp/configs/connections.php и меняете там данные сервера СУБД под свои. Пока база пустая, поэтому можно создать любую и указать ее в конфиге.


3. Что используется и каковы возможности.

Ну понятно, что php + html + js. Я буду писать все это дело на mysql, точнее MariaDB (для простого проекта разницы не будет). В качестве ядра использую свою CMS mwce, в принципе, при большом желании, можно писать сайт на ms sql, класс работы с бд является оберткой над PDO так что ограничения только в фантазии и навыках. Список вшитых типов коннекта(для конфига) можно найти сверху в файле mwce/Connect.php.

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

В проекте будет использоваться 2 базы данных: одна под данные проектов, вторая под логи. Логи планируются большие и интересные. Почему 2? потому что при большом кол-ве пользователей логов будет много. Обычно в продакшене базы бекапятся и база с данными проектов будет не маленькая, да и бекапить ее нужно чаще чем логи, а место не резиновое да и чем меньше данных тем быстрее идет бекап.

Что касается перечня сторонних библиотек, что я предполагаю использовать:

  • PHPMailer
  • bootstap 3 (да, я лентяй и делать дизайн не особо хочу)
  • jquery 3.1
  • dialog ui 
  • ckeditor
  • jquery.qtip(?)

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


В общем, как только Вы все настроете, запустите сервер, зайдете не главную страницу и увидите, логин-форму и приветствие. На данный момент, это пока все.

4. Следующие шаги, что нас ждут:

Прежде чем начать разрабатывать уже саму ERP сначала придется посидеть над разработкой управления этой самой ERP. Нужно научить ее узнавать группы пользователя, самого пользователя, его роли. Затем, сделать небольшую админку, где можно будет управлять страницами и плагинами, да и самими пользователями. После чего раздать первые права, научить систему кешированию оных... В общем, все только начинается.









Комментариев нет:

Отправить комментарий