Концепция сайта
Основная цель сайта - быть отправной точкой для изучения фреймворка Laravel. На сайте должно быть:
- Обновляемая документация по фреймворку, доступная для изменения всем пользователям, с аппрувом изменений модераторами.
- Статьи по фреймворку, которые пишут пользователи, с возможностью комментирования. Комментарии - древовидные (обсуждаемо).
- "Знаете ли вы, что". Мелкие советы или любопытные фишки, которые неудобно оформлять в статью.
- Место, где можно задать вопрос (Q&A-система или форум).
- Место для общения (чат).
- Репозиторий пакетов для Laravel, с отзывами и комментариями.
Контент (страница документации, статья, пост на Q&A или форуме) должен уметь линковаться - чтобы формировать блоки "смотрите также" в документации, статьях и постах Q&A.
Весь контент создают пользователи. Регистрация открыта, способность писать пользователь получает после подтверждения мейла. Пользователь может иметь права:
- Администратор. Может назначать и снимать права пользователей, редактировать контент. И иметь все права Модератора.
- Модератор. Может аппрувить контент к показу, снимать контент с показа, (?)редактировать контент, банить пользователей.
- Забанен. Может только читать, как незарегистрированный пользователь.
TODO - подумать, нужна ли карма, и нужны ли дополнительные роли.
Пользователи могут обмениваться личными сообщениями.
Оригинал документации - https://github.com/laravel/docs . Перевод документации: https://github.com/LaravelRUS/docs . Апдейт перевода осуществляется пулл-реквестами в этот репозиторий.
Перевод на гитхабе должен односторонне синхронизироваться с БД. Переводчики должны понимать, какой именно файл нуждается в переводе и что именно внутри файла надо поправить. (эта часть реализована - http://sharedstation.net/content/rus-documentation-contribution-guide)
Статья имеет свойства:
- принадлежность к версии фреймворка (любая, ветка 4.х, 5.х, или конкретная)
- (?)уровень сложности материала
- участие или нет в цикле статей и порядковый номер в цикле
- набор тэгов из предустановленного списка.
- флаг "черновик"
У статьи один автор, но могут быть соавторы, которых может назначить автор. Сообщение об этом приходит в ЛС.
У статьи должны быть комменты. Возможно, древовидные.
Статью можно лайкать (заносить в избранное). Этого должно достаточно для построения рейтинга статей, минусовать статьи не обязательно. TODO продумать этот момент.
Мелкие "фишки" фреймворка, которые часто упускают из виду. Объем - до (?)300 символов. Может быть описанием любопытного хелпера, или постановка проблемы и ссылка на статью. Пишутся пользователями, аппрувятся модераторами. Выводить - лучше под хэдером, возможно, в футере.
Для начала это может быть форум. Нынешний laravel.ru работает с fluxbb - значит, расчитываем на работу с ним. Понадобится кросс-авторизация - логинимся на сайте и автоматом логинимся на форуме. Со временем можно сделать своё, что-то типа laravel.io
Возможно, не нужен совсем. Сейчас есть https://gitter.im/LaravelRUS/chat и он вполне справляется с задачей.
Нужно парсить packagist на предмет пакетов для laravel. Периодически чекать пакеты, чтобы видеть динамику - какие пакеты обновлены, над какими работают авторы. Удобно делать это через packagist. (готово)
Пакет должен иметь свою страницу, где пользователи могут оставлять комментарии.
Пакеты можно лайкать, как и статьи.
Число комментариев, число лайков и число прилинкованных статей должно выводиться в списке пакетов, также из этих параметров надо сделать сводный рейтинг пакета, чтобы показывать его в списке "пакеты, заинтересовавшие сообщество".
Обсуждение - https://gitter.im/LaravelRUS/laravel.ru