Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление
  2. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб L-Shop [Open Source]

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем D3lph1, 9 мар 2017.

  1. Автор темы
    D3lph1

    D3lph1 Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    D3lph1
    [​IMG]
    Доброго времени суток, друзья! Готовы представить вам L-Shop (можете называть его cms. Я не люблю эту аббревиатуру, поэтому буду называть ее просто - система). Так вот, как ясно из названия L-Shop - это магазин для продажи товаров на ваших серверах. На данный момент текущей версией является 0.4.0. Это бета, и в ней могут присутствовать какие-то баги, недоработки. Пишите, исправим.
    Основные характеристики, функционал:

    • Полная адаптивность. Даже на маленьких экранах использовать магазин удобно
    • Регистрация, авторизация.
    • Подтверждени регистрации через Email. Включается в настройках.
    • Сам магазин ассинхронен чуть менее, чем полностью.
    • Продажа внутриигровых блоков, предметов, привилегей.
    • Выдача товаров происходит по средствам плагина shopping cart reloaded.
    • Интеграция с платежным агрегатором robokassa.
    • Мультисерверность.
    • Разделение товаров на каждом сервере по категориям.
    • Новостная система.
    • Статические страницы.
    • Поддержка Sashok724's Launcher'а. UUID.
    • Скин система. Возможность устанавливать скины и плащи, в том числе и в HD.
    • Мониторинг серверов по средствам RCON.
    • 3 основных режима работы: покупки могут совершать только гости .(неавторизованные пользователи); только авторизованные пользователи; и те и те.
    • 2 вида оформления заказа: быстрая покупка из каталога и покупка после наполнения корзины.
    • (Профиль) Пополнения баланса пользователя.
    • (Профиль) Просмотр внутриигровой корзины.
    • (Профиль) Просмотр истории платежей.
    • Разделение на предметы и товары.
    • Защита от перебора паролей по средствам "заморозки" пользователя на некоторое время.
    • Защита форм ReCAPTCH'ой.
    • Управление некоторым функционалом магазина как из панели администратора, так и из CLI.
    • Встроенный API для интеграции магазина с различными cms.
    • Система собирает и формирует статистику продаж, прибыли.
    Немного о технической стороне проекта:
    • Система написана на php-фреймворке Laravel (Версия 5.4.24)
    • Основные стили написаны с использование препроцессора sass
    • Сборка файлов происходила при помощи сборщика проектов gulpjs
    • Файлы стилей и js - код собираются в 2 минимизированных файла app.min.css и app.min.js, дабы уменьшить количество запросов к серверу
    Разработчиками являются 2 человека: я (php, js), и WhileD0S(https://vk.com/whiled0s) - он отвечал за дизайн и верстку (html, sass, css, js). Вы можете обратиться к нему для заказа верстки для своего сайта.
    Отдельное спасибо пользователю MicroNovaX за feedback.


    Установка:
    Системные требования смотрим тут: https://laravel.ru/docs/v5/installation (Начиная с версии 0.4.0 обязательным также является php-расширение GD Library).
    1) Установить менеджер зависимостей composer (https://getcomposer.org/).
    2) Скачать архив с https://github.com/D3lph1/L-shop и распаковать его в любое удобно место на сервере.
    3) Перейти в директорию с распакованным L-Shop и выполнить команду composer install. Дождаться окончания процедуры установки зависимостей (Файлов много и весят они не мало (Для сайта), поэтому скачивание может быть продолжительным).
    4) Достать дамп таблиц из папки database/dump. Произвести импорт файла в БД.
    5) Переименовать файл .env.example в .env
    6) Открыть файл .env и произвести настройку:
    + APP_NAME - Имя приложения.
    + APP_URL - Адрес сайта

    + DB_HOST - Адрес сервера базы данных.
    + DB_PORT - Порт сервера базы данных.
    + DB_USERNAME - Имя пользователя базы данных.
    + DB_PASSWORD - Пароль пользователя базы данных.
    + DB_PREFIX - Префикс таблиц. Если не знаете что это, оставьте как есть.

    + MAIL_HOST - Адрес почтового сервера *.
    + MAIL_PORT - Порт почтового серевра.
    + MAIL_USERNAME - Имя пользователя почты.
    + MAIL_PASSWORD - Пароль пользователя почты.
    + MAIL_ENCRYPTION - Алгоритм шифрования соединения (Доступны: ssl, tls. Второй предпочтительней).
    + MAIL_FROM_ADDRESS - Адрес автора писем.
    + MAIL_FROM_NAME - Имя автора писем.

    * Я рекомендую использовать gmail в качестве сервиса. С ним у меня не было никаких проблем (Единственное что нужно сделать, это установить чекбокс на этой странице: https://myaccount.google.com/lesssecureapps).
    7) Создать нового пользователя. Сделать это можно командой "php artisan user:create username email@gmail.com password123 --activate --admin", где username - имя пользователя, email@gmail.com - email пользователя, password123 - пароль. В l-shop уже зарегистрирован администратор, вы можете войти под его аккаунтом (Имя пользователя: admin пароль: admin). Не забудьте потом удалить его или изменить данные.
    8) Перейти в Администрирование > Управление > Безопасность и выполнить то, что там написано в разделе "Генератор ключей".
    10) Перейти в Администрирование > Управление > Безопасность и указать ключи RECAPTCHA.
    11) Перейти в Администрирование > Управление > Платежи и указать данные от сервиса ROBOKASSA.
    12) Перейти в Администрирование > Управление > Оптимизация и обновить кэш маршрутов и конфигов. Это должно положительно сказаться на производительности приложения.

    Информация для robokassa:
    Result URL: http://example.ru/payment/result/robokassa
    Success Url: http://example.ru/payment/success/robokassa
    Fail Url: http://example.ru/payment/error/robokassa
    Метод отсылки данных: любой.​

    Если вы планируете использовать API L-Shop обязательно смените секретный ключ. Сделать это можно в разделе Администрирование > Управление > API.

    После проделанных операций, рекомендуем установить Directory root вашего веб-сервера в папку public.
    Если вы планируете вносить изменения в код проекта, то для удобства, вам потребуется включить режим отладки. Сделать это можно выставив элемент APP_DEBUG в файле .env в значение true.
    Во время разработки, мы использовали сборщик проектов Gulp.js (http://gulpjs.com/), чего и вам советуем. Если вы собираетесь видоизменять стили и js код системы, то вам потребуется установить его.
    Но перед этим, конечно же, нужно будет поставить npm (Для этого устанавливаем nodeJS).
    Далее, переходим в директорию с проектом и выполняем команду "npm install", дожидаемся окончания загрузки и установки компонентов (Тут сразу вспоминается мем про папку node_modules и черную дыру, возможно, кто-то видел).
    Отлично, теперь вы можете видоизменять стили и js, как вам захочется и, после того как закончите, нужно будет прописать команду gulp styles и gulp scripts. Gulp все соберет и минимизирует и, в результате, получаться 2 файла: public/css/app.min.css и public/app.min.js
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    0.1.0 (от 09.03.2017):
    • Бета - релиз системы.
    0.2.0 (от 02.04.2017):
    • Добавлена возможность продажи привилегий.
    • Добавлена страница настройки профиля пользователя. На этой странице авторизовавшийся пользователь сможет: менять пароль (Включается/отключается в админ-панели); сбрасывать логин-сессии своего аккаунта, дабы выйти из аккаунта на всех устройствах.
    • В админ-панели теперь можно вручную разлогинить пользователя.
    • В админ-панель добавлен раздел Статистика > просмотр статистики. В нем вы можете посмотреть информацию о продажах и доходах вашего магазина.
    0.2.1 (от 09.04.2017) Hot fix:
    • Исправлены баги.
    • Поправлена верстка.
    0.2.2 (от 11.04.2017):
    • Добавлена интеграция с Sashok724's Launcher (Так же написан гайд. Посмотреть его можно в разделе Администрирование > Информация > Документация > Гайд по интеграции Sashok724's Launcher).
    • Возможность использовать "Белый лист" ip адресов. Туда следует добавить адрес лаунчсервера, дабы разрешить проверять данные пользователей только ему.
    • Рефакторинг кода.
    • Исправлены ошибки.
    • Улучшена стабильность.
    0.2.3 (от 14.04.2017):
    • Добавлен раздел Администрирование > Другое > Отладка.
    • На этой странице присутствует тестовая отправка письма.
    • Теперь товары удаляются рекурсивно, если удаляется предмет, к которому этот товар привязан.
    • Начата реализация кеширование. Реализовано кеширование статистики в админ-панеле.
    • Пофиксил баги.
    • Отрефакторил код.
    0.3.0 (от 18.04.2017):
    • Добавлена API-регистрация + документация к ней.
    • Реализована система статических страниц (Добавление/редактирование/удаление). Для удобного редактирования страниц используется WYSIWYG - редактор Trumbowyg. Большим преимуществом статических страниц является то, что они полностью кешируются. Это означает, что при запросе таких страниц, системе не нужно выполнять запрос к базе данных. Время "жизни" кеша можно настроить в Администрирование > Управление > Оптимизация.
    • Добавлена возможность сброса пароля. Пользователь вводит свой email, ему на почту приходит сообщение с ссылкой, перейдя по которой, он может сменить пароль на другой. (Эта функция включается в разделе Администрирование > Управление > Безопасность).
    • Теперь подсказки в админ-панели можно закрыть. Система "запоминает" ваш выбор.
    • Добавлены сообщения об отсутствии товаров, предметов, страниц в админ-панели. Теперь, если в какой-либо категории отсутствуют товары, пользователь видит сообщение об этом.
    • Администраторы могут очистить кеш приложения (Раздел Администрирование > Управление > Оптимизация).
    • Ряд новых опций для более тонкой настройки магазина.
    • Документация обновлена.
    0.3.1 (от 27.04.2017):
    • Самым серьезным нововведением данного патча стала реализация новостной системы. Администраторы смогут Добавлять/удалять и редактировать новости в удобном пользовательском интерфейсе, используя, уже известный нам, WYSIWYG - редактор Trumbowyg. Пользователь сможет ознакомится со списком новостей с помощью выдвижной панели. Кнопка находится в верхнем правом углу. Посетители магазина смогут получить доступ к новостям с любой странице сайта. Первоначальное количество подгружаемых новостей регулируется в админ-панели в зависимости от ваших потребностей. Следующие "порции" новостей будут подгружаться, по нажатию на соответствующую кнопку.
    • Подправлена верстка в некоторых местах.
    0.3.1b (от 03.05.2017):
    • Исправлена уязвимость.
    0.3.2 (от 16.05.2017):
    • Добавлена возможность продажи привилегий на неограниченный срок.
    0.4.0 (от 25.06.2017):
    • Новая версия фреймворка Laravel (5.4.11 => 5.4.24). Обновлены зависимости.
    • В магазине реализована собственная скин-система (Поддерживающая в том числе HD скины и плащи). Эта функция включается-отключается в настройках. Смена скина и/или плаща будет доступна каждому авторизованному пользователю. В связи с этим обновлена документация по интеграции лаунчера sashok724 с магазином.
    • Добавлена система банов. Пользователей можно блокировать на определенный срок или перманентно из админ-панели с указанием(или нет) причины. Бан будет распространятся во всей системе, в том числе API, а также, в лаунчере sashok724's, если используется интеграция с ним.
    • Очередная порция консольных команд. Среди них - команды для блокировки/разблокировки пользователей. Документация по CLI обновлена.
    • Добавлена страница 500 ошибки (Упс... Кажется, что-то пошло не так). Теперь при возникновении внутренней ошибки сервера пользователи будет лицезреть оформленную страницу (Только в том случае, если отключён режим отладки).
    • Отключена возможность удаления администратором "самого себя" из панели администрирования.
    • Добавлены всплывающие подсказки (popover'ы) по всему сайту. Они призваны помочь лучше ориентироваться в магазине не только пользователям, но и администраторам.
    • К товарам теперь можно указывать приоритет сортировки. Число, по которому, будет происходить сортировка товаров в магазине. Изменить тип сортировки так же можно в панели администрирования > Управление > Основные настройки.
    • Асинхронный поиск по пользователям в админ - панели так же стал одним из нововведений.
    • В настройках появилась возможность настраивать страницу, на которую будет перенаправлен пользователь после регистрации.
    • Реализован мониторинг серверов. Сбор информации происходит по средствам RCON.
    • Множество мелких улучшений и исправлений.

    После установки не забудьте посетить Администрирование > Информация > Документация. Там вы найдете некоторое количество, надеюсь, полезной информации.

    "Опробовать" систему можно по ссылке: http://delphi.hol.es.
    GitHub репозиторий (СКАЧАТЬ): https://github.com/D3lph1/L-shop/

    Понравился магазин? Вырази благодарность разработчикам "звездочкой" на GitHub'е!​

    Вы можете обратиться ко мне в вк (указан в профиле рубаккитта) за технической поддержкой, которая осуществляется, естественно, на платной основе :lol:.
     
    Последнее редактирование: 7 июл 2017
  2. Хостинг MineCraft
    <
  3. Alta-Host

    Alta-Host Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Big_Energy
    Однозначно годно, laravel хороший фреймворк.
     
  4. GHOST-MEN

    GHOST-MEN Активный участник Пользователь

    Баллы:
    76
    Skype:
    TrolFace_007
    Имя в Minecraft:
    Edward007
    10/10 - мне понравилось
     
  5. Santa

    Santa Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Santa64
    посмотри в сторону composer'а
    Чтоб проще происходила установка. Так же будет проще подключать твой магазин, делать миграцию библиотек. Ну и советую еще писать тесты.
     
  6. mops1k

    mops1k Старожил Пользователь

    Баллы:
    123
    Skype:
    bednyj.mops
    В целом молодцы. Вы правы cms это нельзя называть пока в "системе" не появится хотя бы лента новостей и статические страницы. Laravel хороший фреймворк =)
    Похоже мы запустили волну магазинов на фреймворках) Теперь ждем магазин на Yii2 и ZendFramework :D
     
  7. Negezor

    Negezor Участник Пользователь

    Баллы:
    36
    Что уж мелочится без Node JS, современный стак, что уж там :)
    Лучше не стоит.
     
  8. Автор темы
    D3lph1

    D3lph1 Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    D3lph1
    Стесняюсь спросить, где в словосочетании Content Manage System (система управления контентом) заложено то, что система должна обладать возможностью добавления новостей и статических страниц? L-Shop спокойно может называться cms, ибо в нем присутствует функция управления этим самым контентом (добавление/редактирование серверов, предметов, товаров, пользователей). Если рассуждать вашей логикой, то какой-нибудь presta shop или Open Cart тоже не являются cms'ками, ведь, в них нет ленты новостей.
    Мы не планируем добавлять в систему ленту новостей, ибо такая цель не ставилась. Это, в первую очередь, магазин. А в качестве cms для основного сайта людям, наверное, будет удобнее использовать webmcr, dle и тд...[DOUBLEPOST=1489145007,1489144731][/DOUBLEPOST]
    L-Shop и так "подтягивает" зависимости при помощи composer'а. Может, ты имел ввиду добавить L-Shop на
    Packagist? Не вижу в этом смысла.
     
  9. lexa_kiker

    lexa_kiker Старожил Пользователь

    Баллы:
    123
    Skype:
    lexa_kiker
    годно:good:
     
  10. mops1k

    mops1k Старожил Пользователь

    Баллы:
    123
    Skype:
    bednyj.mops
    Как показывает практика, пользователям удобнее иметь "все в одном"
     
  11. Fiks75

    Fiks75 Активный участник Пользователь

    Баллы:
    66
    Без регистрации возможны ли покупки?
     
  12. Will Orion Z

    Will Orion Z Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    willorion
    У тебя глаза на затылке? Щас поправим...
     
  13. Fiks75

    Fiks75 Активный участник Пользователь

    Баллы:
    66
    Ссори. Увидел. Теперь спрошу то, чего не вижу: Выдача предметов и блоков. А как насчет выдачи привилегий командой? Поддержка UUID имеется?
     
    Последнее редактирование: 10 мар 2017
  14. Автор темы
    D3lph1

    D3lph1 Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    D3lph1
    Выдачу привилегий планируется в будущих(ближайших) версиях. За выдачу также будет отвечать плагин shopping cart reloaded.
    На самом деле, не очень понимаю, для чего магазину хранить uuid пользователей. Ведь, он не взаимодействует с игрой напрямую, как это делают лаунчеры. Поправьте меня, если я не прав.
     
    Последнее редактирование: 11 мар 2017
  15. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    uuid делать не имеет смысла, по крайне мере сейчас...

    Я бы сделал ещё этой системе ваунчеры, покупку приватов и пр, что умеет выдавать плагин shopping cart
     
    Последнее редактирование: 11 мар 2017
  16. Cames

    Cames Старожил Пользователь

    Баллы:
    153
    Skype:
    sky_meg
    Го запустим челендж на разработку такой лабуды на всех хайповых фреймворках (Express, RoR, Django).[DOUBLEPOST=1489225137,1489224800][/DOUBLEPOST]Шутки шутками, а может кто-либо из нынешнего РБшного поколения разработчиков захочет создать что-нибудь новое, а не очередную CMS, которую будет использовать и контрибьютить 3 калеки. Вот тогда это был бы шаг вперед, а не в сторону. За несколько лет на форуме я не увидел ни одного годного продукта, который был бы готов к продакшену из коробки. У всех какие-то недоделки.
     
    Последнее редактирование: 11 мар 2017
  17. Negezor

    Negezor Участник Пользователь

    Баллы:
    36
    Смысла отказываться не вижу, но самому поучаствовать наверное не получится, забит график заказов...
     
  18. Автор темы
    D3lph1

    D3lph1 Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    D3lph1
    Зачарование происходит путем заполнения поля 'extra' при создании нового предмета так, как это описано в плагине shopping cart reloaded.[DOUBLEPOST=1489240628,1489239712][/DOUBLEPOST]
    При чем тут "хайповость" фреймворка? Laravel был выбран не из-за того, что сейчас так модно, а из - за скорости разработки. Если сейчас код магазина около 12к строк, то без фреймворка эта цифра была бы в разы больше.
    Да, проект еще сырой, будет дорабатывать. Написано же, что версия 0.1.0. Выложил его на РБ, чтобы получить хоть какой-то фидбэк от пользователей, узнать, что им интересно и хочется видеть в будущем.
    Ну предложи идею, возможно, реализуем. Или напиши сам, в конце концов.
     
  19. Cames

    Cames Старожил Пользователь

    Баллы:
    153
    Skype:
    sky_meg
    Глупо оценивать размер проекта. Да и если там 12к строк кода без html, то ты где-то свернул не туда.

    Да кроме нас с тобой и еще пары ребят вряд ли кто-то будет что-то делать.

    Идей на этом форуме полно. Можно брать любую и делать.
     
  20. Автор темы
    D3lph1

    D3lph1 Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    D3lph1
    Что-то я действительно интересной не видел.
     
    Последнее редактирование: 11 мар 2017
  21. Negezor

    Negezor Участник Пользователь

    Баллы:
    36
    Это конечно печально, что некоторые до сих пор не пытаются отойти от велосипедов и изучить программирование на ином уровне.
     

Поделиться этой страницей