NPJ

NPJ / НПЖ (Net Project Journal Software / НетПроектЖурнал) — CMS c открытым исходным кодом, распространяемая под GNU GPL. Написан на PHP, в качестве базы данных использует MySQL. Сфера применения — организация общения и совместной работы над документами группы людей, вне зависимости от их географического положения, также может эффективно использоваться для блогов и новостных ресурсов.

Идеология 
Разработчики НПЖ попытались совместить в рамках единого проекта концепции wiki-сайта и блога. Регистрируясь на узле npj, пользователь создаёт аккаунт и получает в своё распоряжение пространство для создания документов в концепции wiki (размещаемых на сайте и редактируемых непосредственно на нём с помощью вики-механизма), а также персональную «ленту», в которую может делать блоговые записи. Одним из видов блоговых записей, доступных в системе, являются так называемые «анонсы» документов — при создании и редактировании любого своего документа пользователь получает возможность тут же создать и разместить в ленте краткое уведомление о документе. Как записи в ленте, так и документы допускают комментирование.

Для документов в НПЖ действуют все те же возможности, которые предоставляются движком WackoWiki — перекрёстные ссылки, вики-разметка, создание кластеров (каталогов и подкаталогов) документов. В качестве средства редактирования документов и записей поддерживается одновременно три механизма: аналогичный WackoWiki онлайн-редактор, использующий вики-разметку, WYSIWYG-редактор со стандартным набором оформительских возможностей (подобный редактору записей ЖЖ), либо прямой ввод html-текста. Поддерживается хранение всех предыдущих версий документов и механизм сравнения версий.

Помимо личных аккаунтов, система позволяет создавать группы, в которых могут регистрироваться многие пользователи. Группа имеет собственную ленту, механизм администрирования, управляемый её хозяином, и собственные документы, доступные всем членам группы. Механизм групп разработан в расчёте на использование по принципу «группа=проект», то есть в группе регистрируются пользователи, совместно работающие над некоторым проектом. Соответственно, они имеют доступ к набору документов проекта и используют ленту для анонсирования изменений в проекте и публичной (внутри проекта) переписки.

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

Понятие «друга», принятое в большинстве блог-движков, в НПЖ заменено на два различных понятия: «корреспондент» и «конфидент», заключающие в себе функции «дружественности» по отдельности. Например, в «Живом журнале», объявив кого-либо «другом», пользователь одновременно получает два неразделимых эффекта — начинает видеть журнальные записи «друга» в своей ленте и даёт «другу» доступ к собственным записям со статусом «только для друзей». В НПЖ пользователь объявляет кого-либо «конфидентом», если хочет, чтобы тот имел доступ к записям ограниченного доступа, или «корреспондентом», чтобы видеть его записи в своей ленте. Один и тот же пользователь может быть объявлен только «конфидентом», только «корреспондентом», либо обоими сразу (во втором случае эффект будет такой же, как при объявлении «друга» в других блогах).

Ядро НПЖ поддерживает создание группы узлов, связанных между собой и обеспечивающих авторизованную работу пользователей, зарегистрированных на одном из узлов, на всех узлах группы.

История проекта 
Разрабатывать NPJ начала команда, занимавшаяся до этого развитием wiki-движка WackoWiki. Наиболее активно разработка велась в 2004—2005 годах. Первоначально движок выпускался под несвободной лицензией, что было связано с обязательствами разработчиков перед спонсором проекта.

В июне 2005 года выпущена текущая версия NPJ 1.9 — наиболее развитая из всех выпущенных. Она вышла уже под лицензией GNU GPL. Сайт проекта  представлял собой работающий узел НПЖ со свободной регистрацией и содержал несколько сотен активно используемых учётных записей. Параллельно разрабатывались несколько проектов на основе НПЖ, в частности, багтрекер.

Начиная с 2006 года активность разработки резко снизилась. Версия 2.0 так и не была выпущена. До 2008 года сайт npj.ru продолжал функционировать, но со временем превратился, главным образом, в место для размещения спама. С 1 сентября 2008 года на официальном сайте появилось сообщение о том, что проект заморожен «в связи с отсутствием ресурсов на разработку», содержимое сайта перенесено на зеркало и оставлено в режиме «только для чтения».

В начале 2008 года было объявлено о разработке NPJ next — нового поколения движка NPJ, которой занялась другая команда разработчиков, взяв за основу NPJ 1.9. На данный момент опубликовано незначительное количество изменений в исходном движке.

Возможности версии 1.9 

После установки на NPJ сервере формируется узел, который можно интегрировать в NPJ-сеть с другими узлами NPJ.

На каждом узле NPJ доступны следующие возможности:
 создание новых пользователей/аккаунтов (содержащих персональный журнал-блог, и пространство для хранения документов)
 настройка профилей пользователей с аватарами
 создание в каждом журнале сообщений и документов
 возможность объединения сообщений в ленты
 контроль версий документов пользователей
 гибкие настройки прав доступа для сообщений и документов:
 возможность указать от 1 до 4 групп ваших конфидентов, которые могут читать сообщение
 полноценная система ACL в документах (для каждого документа есть до 8 различных «действий», права на которые можно настраивать по отдельности)
 создание сообществ и рабочих групп
 сообщества предназначены для глобальной рубрикации сообщений по определённой тематике
 сообщества предназначены только для публикации сообщений
 рабочие группы предназначены для совместной работы по какой-то проблеме или теме
 рабочие группы позволяют также создавать документы, и выстраивать иерархию взаимоотношений в РГ
 объединение сообщений в ленты, такие как:
 личная лента
 лента корреспондентов
 лента сообщества
 лента всех пользователей узла
 лента рубрики
 лента анонсов
 и др.
 работа с wiki-разметкой, обычным текстом и WYSIWYG-редактором
 рубрикация записей по древовидному рубрикатору
 полнотекстовый поиск (с определёнными ограничениями)
 подписка на любой документ, кластер документов, ленту и т. п.
 публикация документов и сообщений через почтовый клиент
 возможность ответа на комментарии из почтового клиента
 RSS-вид для любой ленты
 анонсирование событий и документов
 внедрение в документы тонко настраиваемых динамических элементов — «экшнов», таких как:
 ленты новых сообщений и списки последних изменений в документах
 списки документов в определённых кластерах или рубриках
 ссылки на текущий документ и автооглавление текущего документа
 текст другого документа или его автооглавление
 списки пользователей и другие действия, описанные в документации
 поддержка единой схемы адресации любого элемента системы

После интеграции узла в NPJ-Сеть вы получаете следующие дополнительные возможности:
 возможность идентифицировать пользователей с других узлов на своём (не совместим с OpenID)
 возможность пользователям вашего узла быть идентифицированными на других узлах (не совместим с OpenID)
 репликация новых сообщений и комментариев с других узлов на ваш
 возможность репликации сообщений и комментариев с вашего узла на другие узлы

Сайты по теме 

http://npj.ru/  - сайт разработчиков системы NPJ
 http://npj.ru/npjdev/release  - страница загрузки NPJ 1.9

http://dev.olspire.com/  - сайт разработки новой версии NPJ (будет называться NPJnext)
 https://web.archive.org/web/20090526083450/http://dev.olspire.com/Dokumentacija - структурированная и дополненная документация по NPJ 1.9

https://web.archive.org/web/20080608071159/http://ahe.org.ru/npj/ - о применении NPJ

См. также 
 Diaspora (социальная сеть)
 Netsukuku

Статьи об NPJ 
NPJ — эффективное средство для ведения проектов и документации - «Системный администратор»

Свободные системы управления сайтами
Свободное программное обеспечение, написанное на PHP