Сбор средств на node-booking

30 000
Всем привет!

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

В общем, я думаю, пойти этому на встречу и запустить небольшой эксперимент. Дело в том, что в последнее время я плотно занялся node.js (он меня прям с головой поглотил), и теперь планируя тот или иной компонент, я думаю о том, что общую логику нужно выносить в отдельный node-компонент, а для поддержки функционала на стороне MODX-а реализовывать только специальный клиент под него. Ведь что у нас сейчас получается? Создали какой-то интересный (или не интересный) компонент, и работать он будет только внутри MODX-а. Больше его никуда не воткнуть. Но это же не правильно. Есть определенный функционал (та же система бронирования). Она работает сама по себе. И не важно с помощью чего с ней взаимодействуют (с помощью MODX-а, битрикса, браузера и т.п.). Вот такую систему я могу взяться написать.

Чтобы было понятней о чем я вообще говорю, можно зайти на главную страницу modxclub.ru/. На самом деле это автономный node.js-чат, никак не требующий для своей работы MODX. Сохранение сообщений на modxclub.ru реализовано уже на стороне самого MODX-сайта. Когда нода получает сообщение, она отправляет запрос на сайт, где и выполняется дополнительная логика. (Если кому нужен такой для себя, пишите в личку, могу поднять для индивидуального пользования, будет ваш собственный чат, только сейчас он не сохраняет в себе никакие сообщения, типа полностью анонимный. ). Вот так же и здесь планируется: сама базовая логика системы бронирования будет реализована на уровне автономного node.js-приложения, но его можно будет интегрировать с сайтом, чтобы добавить индивидуальной логики.

Цена вопроса на все — 30 000. Взнос можно сделать любой (хоть 3 рубля). Для донаторов от 1000 рублей после выпуска компонента каждому будет приобретен компонент в модсторе. От 10 000 рублей — объемная помощь в интеграции на вашем сайте.

UPD: Судя по всему финансировать никто не хочет. ОК, займусь другими задачами. Сбор средств отменил.
Fi1osof
22 января 2017, 14:23
modx.pro
2
4 291
+6

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

Владимир
19 января 2017, 10:04
0
Извиняюсь за оффтоп,
автономный node.js-чат
не будет в свободном плавании в виде пакетика?
    Fi1osof
    19 января 2017, 10:06
    +3
    Будет. Только позже. Когда мы обкатаем весь необходимый функционал.
    Здоров Александр
    19 января 2017, 10:10
    +2
    будет ли привязка бронирования номеров, созданных как ресурсы Modx, а не внутри самого компонента
      Владимир
      19 января 2017, 10:13
      +1
      Присоединяюсь к вопросу.
      Всегда представлял себе бронирование точно как и продажу товара.
      PS от себя дополню вопрос
      1. Для бронирования будут доступны именно ресурсы (не важно что там представлено, событие или что то иное)?
      2. Бронирование будет учитываться в виде отчетов (админка), тогда-то то-то было забронировано и т.п.? т.е. еще раз параллель с магазином
      3. Оплата бронирования онлайн? если да, то подробнее
      4. Уведомления для пользователей и менеджеров ..?
        Fi1osof
        19 января 2017, 10:33
        +2
        Не скажу сейчас как именно будет все реализовано, но будет обеспечена поддержка в том числе и минишопа. То есть можно будет нужные сущности завести в виде MS-товаров, и далее весь его функционал в помощь (способы оплаты, уведомления и т.п.).
        Более подробно желаемый функционал будет изучаться в случае успешного сбора средств и запуска проекта в работу. Все знают, мы MODX знаем достаточно хорошо, чтобы сделать все в лучшем виде. С недавних пор мы ведь даже юзер-интерфейсы делаем, чтобы удобней было пользоваться нашими компонентами.
        Fi1osof
        19 января 2017, 10:24
        +1
        Если надо, то да. Это и есть допфункционал поверх компонента на уровне самого MODX-а. Проще это объяснить на примере той же регистрации через социальные сети: есть у вас аккаунт в соцсети, вы регистрируетесь через него, и на сайте создается профиль пользователя с привязкой к этому пользователю. Потом при повторной авторизации сайт определяет, что профиль принадлежит такому-то пользователю в самом сайте и авторизовывает его. То есть здесь работа идет в связке двух сущностей. И в дальнейшем, в зависимости от полученных прав, вы можете, например, со стороны сайта запостить что-то на стену этого пользователя. Так же и здесь, основной функционал будет на стороне node-модуля. Со стороны сайта можно будет создать новый объект или получить имеющийся, далее по API выполнить необходимые действия и/или получить на сторону сайта уведомления о действиях на стороне модуля. У нас уже есть наработки по работе с WS-серверами средствами PHP по протоколу ws(s)://, и со стороны node.js отправлять запросы на сайт совсем не проблема. Так же нет проблем сейчас с node-хостингами. Любой боле менее современный хостинг предоставляют эту услугу. На том же бегете и таймвебе есть точно.
        Вот скрин для примера:


        UPD: этот скрин с zone.ee/
        за 6 евро в месяц можно еще node.js приложения добавлять. плюс можно самому ограничить лимит потребления памяти, максимум 512 мб
          Владимир
          19 января 2017, 10:37
          +1
          Понятно. Просто мой вопрос именно вот о чем:
          Насколько создаваемый компонент близок (из коробки, без доп вложений) к функционалу который лично я вижу как:
          Ресурсы MODX (или тикетсы, неважно), т.е. документы которые можно выбрать по, например, назначенному шаблону (шаблонам), участвуют в бронировании. Для админа это должно быть так же как с товаром в Минишопе (для примера).
          UPD ответ я вижу уже вы написали выше. Как то одновременно получилось.
            Fi1osof
            19 января 2017, 10:55
            +3
            UPD ответ я вижу уже вы написали выше. Как то одновременно получилось.
            Это потому что предложение и ожидания совпадают.
        Andrei D.
        19 января 2017, 11:36
        +2
        Подобный компонент вижу так:

        Есть объекты для бронирования: ресурсы, тикеты, кастомная таблица и тд
        node.js отдельно и работает со своей бд, где только строки бронировки (проверка на дату, пользователя и тд), либо с кастомной таблицей в modx самих бронировок
        Если брать miniShop2:
        Пользователь выбирает объект для бронирования, node проверяет доступность, если все хорошо, то дается возможность оплатить. На события msOnCreateOrder и msOnChangeOrderStatus для статуса «оплачено» node сохраняет бронировку у себя

        UPD. желательно, чтобы функции проверки для отправки в node можно было задать на странице в менеджере
        Т.е. по типу field -> value -> comparison
        И в самом node.js установить уже методы сравнения

        UPD2. но это уже получается не просто букинг компонент, а универсальный modx-node.js коннектор)
          Fi1osof
          19 января 2017, 11:51
          +3
          Немного корректировок:
          1. В node.js используется крутой механизм подгрузки и переопределения компонентов, например var booking = require($path_to_module);
          По умолчанию будет использоваться автономный модуль работы без каких-то внешних систем. Но его можно будет легко переопределить другим модулем типа var booking = require($path_to_extra_module); в котором прописано var extra_booking = require($path_to_module); export extra_booking; (Это в общих чертах). И в этом переопределяющем компоненте будет перехват штатных событий и взаимодействие с MODX-сайтом (типа запросить имеющийся объект, отправить уведомление и т.п.).
          2.
          работает со своей бд
          Мы умеем читать конфиги MODX-а и работать с базой сайта, включая префиксы таблиц. В MODX-модель компонента мы добавим нужные классы и мап-файлы, чтобы легко можно было средствами xPDO работать с таблицами компонента напрямую, при желании.
          3. Даже при работе с сайта напрямую в ноду, не придется выполнять никаких лишних проверок доступа пользователя (авторизован или нет) и т.п. Мы пересылаем запрос на сам сайт с передачей кукисов, так что даже получая запрос из браузера не напрямую, а через ноду, MODX будем воспринимать это как прямой запрос себе из браузера, так что все авторизации и сессии пользователей будут учитываться как есть.
          but1head
          19 января 2017, 12:54
          +5
          Интересно, тоже делаю универсальный обработчик socket.io + node.js + modx
            Fi1osof
            19 января 2017, 13:01
            +2
            Технологии диктуют.
            Alexander V
            19 января 2017, 20:12
            0
            А связаться с желающими вы не пробовали? Ведь были же запросы на компонент.
              Fi1osof
              20 января 2017, 06:03
              +1
              Я им ссылки дал.
              Viktor
              20 января 2017, 04:45
              0
              На сколько сложно будет использовать этот модуль по сравнению с обычными модулями (установил, вызвал, поправил)?

              Чем будет отличаться этот модуль от обычных?
                Fi1osof
                20 января 2017, 06:07
                +1
                Народ и обычные-то модули не особо поправляет, хотят чтобы просто поставил, конфиги подправил и все. Здесь ориентир на то же самое будет (конфиги править). В мозги лезть не надо. Единственная сложность возникает — это на хостинге надо node.js и composer иметь.
                  Viktor
                  20 января 2017, 06:15
                  +3
                  Тогда не лучше будет сделать модуль без node.js? В этом, собственно, заключается второй вопрос — чем будет модуль на node.js лучше обычных?

                  Я понимаю, когда изучаешь новое, появляется желание творить, но раз уж делаем для modx, лучше делать без обузы и лишних телодвижений.
                    Fi1osof
                    20 января 2017, 06:35
                    +2
                    В моем понимании не лучше. Я хочу выйти за пределы MODX. Не уйти от MODX, а расширить сферу, не ограничиваясь одной платформой. Для примера представьте, что с телефона можно было бы звонить только на телефоны того же производителя, и нельзя с самсунга позвонить на ксиоми и наоборот. Это же бред? Так почему у нас модули должны быть заточены только под MODX. Я вам скажу так, что здесь сложность падает на плечи разработчика, а не конечного пользователя. Конечный пользователь только выигрывает от универсальности и большего охвата. Еще один яркий пример: платежные системы. В том же модсторе под них лежит куча модулей. Так вот, то, что лежит в модсторе, не является как таковой платежной системой, это только тонкий клиент. Сама же платежная система не заточена конкретно под MODX и не работает только на нем. Так же и здесь, я буду писать теперь обособленные самостоятельные модули, которые можно использовать много где, а не только на MODX. Но к ним в обязательном порядке писать клиента под MODX. И все довольны.
                    Опережая чей-то возможный вопрос «А почему такой универсальный компонент не писать на базе самого MODX-а?», я отвечу:
                    1. MODX сложнее в переносе. Если вы его из одной папки в другую перенесете, он у вас уже работать перестанет, надо конфиги править. node.js-проект этим не страдает, его просто перекидываешь в любую папку (или на любой другой комп, где стоит подходящая версия node.js) и все, запускаешь.
                    2. node.js один компонент можно запустить сразу кучу инстансов, просто указав разные порты. Это круто. Имея тот же модуль чата, можно из одной папки запустить несколько сотен отдельных комнат.
                    3. Установка компонентов там и там — просто небо и земля. В ноде прописал нужный компонент в package.json, выполнил npm install и все (или вообще просто npm install package). После этого в любом месте кода пишешь var module = require(module); и полетело.

                    В общем, я несколько лет пишу компоненты под MODX, делал не мало интеграций с различными сторонними системами, и знаю что делаю.
                      Viktor
                      20 января 2017, 06:43
                      0
                      Окей. Придется VPS под этот модуль покупать?
                        Fi1osof
                        20 января 2017, 06:55
                        0
                        Я уже писал выше, что сейчас хостинги дают node.js. Это становится так же естественно, как git. На том же бегете можно в саппорт написать и они поставят ноду, у нас Саша Марков запрашивал, ему без проблем поставили.
                          Василий Наумкин
                          20 января 2017, 07:34
                          +3
                          modx.pro/hosting/5662-update-modhost.pro/

                          Полтора года уже как на modhost.pro это всё по умолчанию включено.
                            Fi1osof
                            20 января 2017, 07:39
                            +1
                            Вот и я про то же, что это давно уже из серии мастхэв.
                  Юрий
                  20 января 2017, 08:09
                  0
                  Здравствуйте!

                  Крайне заинтересован в разработке данного модуля, поскольку активно использовал Onebooking, однако, хотелось бы более активного его развития, поэтому делаю ставку на данный модуль. Не могли бы Вы только уточнить: node-booking будет заточен только под часовое бронирование или также будет существовать возможность посуточного бронирования? Поскольку Onebooking использовался для небольшой гостиницы, то надеюсь посуточный вариант также будет присутствовать. И небольшие пожелания/предложения:
                  1) Возможность оплаты онлайн (с возможностью автоматического аннулирования бронирования в течение некоторого времени, в которое не осуществлена оплата)
                  2) Отправка посетителю инвойса (pdf) на электронный ящик с данными о бронировании
                  3) Наличия скидок на определенные дни недели
                  4) Возможность экспорта бронирований в Excel

                  Благодарю за внимание!
                    Fi1osof
                    20 января 2017, 08:22
                    +1
                    Добрый день.
                    И посуточно можно, и по часам, и даже по минутам можно.




                    1) Возможность оплаты онлайн (с возможностью автоматического аннулирования бронирования в течение некоторого времени, в которое не осуществлена оплата)
                    2) Отправка посетителю инвойса (pdf) на электронный ящик с данными о бронировании
                    4) Возможность экспорта бронирований в Excel
                    Да.

                    3) Наличия скидок на определенные дни недели
                    Это скорее на плечах движка магазина, того же minishop или shopmodx.
                    Здоров Александр
                    17 апреля 2017, 22:11
                    0
                    Вечер добрый. есть подвижки по идее или все вдохновение ушло на чат?
                      Fi1osof
                      18 апреля 2017, 04:50
                      0
                      Добрый.

                      У топика статус стоит «Отмененный». Никто деньгами не вкинулся, а задач других хватает с головой. Но совсем не исключено, что когда-нибудь появится.
                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                      26