📜 ⬆️ ⬇️

NPJ - an effective tool for project management and documentation

Record keeping on your work network has long been a good tone for any self-respecting and professional system administrator. The point here is not at all in official duties, but rather in direct necessity.


Especially if the network consists of more than one server and five workstations. In the case of Linux servers, this rule is really double, because there can be not two or even three ways to configure the same service.

Very often, working with an Open Source project (no matter whether its development or installation) is closely related to reading and writing documentation. We all know that a person’s memory has selectivity and tends to remove unused knowledge at the moment. The amount of such knowledge directly depends on your work experience and the size of your company's server park.
')
From my own experience, I can say that a couple of dozen well-written (personally) documents on setting up “typical” solutions make life much easier and relieve painful memories forever. There are no more thoughts about what I forgot this time to prescribe and what nuance that I once met cannot emerge from the depths of my memory. I will not deny that there are probably super-professionals who remember everything and always, but I don’t know such people. The gurus with whom I had to communicate no-no, yes, and spoke in response to the question “Something was like this ... I don’t remember exactly.”

Why am I doing all this? And the fact that the habit of writing (at least even for oneself) documentation on setting up services that have problems, about the intricacies and peculiarities encountered can be called a very useful habit and a much needed practice. This is a logical continuation of the habits of many people - to record in the PDA, documents and other less convenient sources for searching information.

What is NPJ.
For the development of documentation from the most convenient tools, you can select “NoProjectJournal” or simply NPJ. It is built on the principles of any open source project. People unite in communities (working groups) and work on any documentation. For an example of project management, I can give you a very simple, but moreover, convenient cake billing (http://npj.ru/cake). In this case, the project site is both its main page, the place where the documentation is developed, and the place where the project is supported, since NPJ is a flexible tool and can actually act in any capacity. For an example of a resource, the main purpose of which is the development and collection of documentation, I can quote npj.akeeper.ru Given the very advanced search tools for the NPJ node, this is a very convenient tool.

The essence of the amenities:
• Installation and setup usually takes 5-10 minutes.
• Architecture flexibility allows you to create almost anything on your site - from a banal blog (there is a resource where NPJ is used for keeping personal diaries of livejournal) to a serious resource for developing, presenting and managing a project.
• Pass-through authorization on the nodes of other systems (about it below) allows you to take part in the work on any nodes connected to a common network of NPJ nodes.
• On one site, it can be created as many working groups as desired, each of which is permissible to engage in its independent project.
• Workgroups can be - Public, Modeled, Hidden.
• Any page within a site can act in any capacity - from a regular document to a forum form (this will also be discussed later).
• In addition to participating in working groups, a site user always has his own personal journal and the ability to create his own documents.
• The flexibility of setting the rights system allows you to determine who, what, which one will have access to. (This concerns both documents and records of the working group, and documents with records of any user. Only you decide with what access you create a record or document.)
• Several ways to present the index and categorize all the documentation of the working group.
• Ease of searching the entire site.
• In the site, subject to appropriate access settings, you can comment on everything, and you can receive comments and respond to them directly from your email client. (No more idiotic letters “A new comment has appeared, to which you have subscribed. Follow the link to see it.” - forget it! Life has become much easier and more convenient.)
• When developing documentation, a history of its changes is kept, which can always be viewed and exactly what revisions and additions have been made. Moreover, you can always return to one of the saved versions of the document.
• The document can be announced by working groups, thus reporting on its existence. There is an opportunity to create a digest.
• Thanks to Wiki markup, writing documents is not easy, but very simple. And extremely nice.
• Interface for each group, user - is configured individually.
• An opportunity to see directly from the central page: all documents, changes in documents of all users, a tape of all users, a tape of all announcements, a list of changes in digests and so on.
• Support RSS.
• There is a bugtracker.

Above, I mentioned pass-through authorization on different nodes. The fact is that each node of “NetProjournal” has the ability to enter the united common network. This is done by clicking a couple of links in the settings. The mechanism of this system is quite simple - when entering any NPJ guest, the system finds the cookie file from the host’s (for you) host and requests your authorization from it. If your host confirms authorization, then on the guest host you will be represented as yournick @ yourhost and all your activities will cease to be anonymous. Why is it important?

Thanks to the activities authorized in this way, you can subscribe to notifications from different sites. This is one of the most useful features of NPJ. You can receive notifications about:
• Creating new documents. Including, to receive in the letter all new document, with all marking.
• Changes to existing documents.
• Announcements on sites (about creating new groups, communities, and developments).
• New comments to the entries, including responding to these comments directly from your favorite email program.
• Other notifications.

Particularly noteworthy is that any page of the magazine can act in completely different qualities. For clarification, it is necessary to tell a little about the architecture of this system. The essence of the “NetProjektZhurn” architecture could be described as “here's clay for you, and you should sculpt that comes to mind”. This means that each page is editable and can either contain information in itself or be (for example) a table of contents for the section. You can create a link in the body of the page to an object that does not exist. And immediately after saving the created page, you can go to this link and immediately create a document that will be located on it. And only you decide it will be a document or another table of contents, directory, index, guest book or something else.

A potential “minus”, which quite soon catches the eye - the inability to upload files to the server through a web interface. In other words, if you want to place a link to a file in a document or somewhere else, then you will have to use the help of other services to place this file on the server.

Another detail that I would like to draw attention to. NPJ is written using OOP concepts, and therefore adding functionality is not difficult. For example, the necessary changes were made to my NPJ system, which allowed using one common user base both for this system and for the phpbb2 forum. This turned out to be very convenient, and the implementation did not take even two days.

How NPJ looks and works.
To install the NPJ node does not require extraordinary efforts. Everything is going smoothly and the system gets, as they say, out of the box. The project website (http://www.npj.ru) contains detailed installation information and you can always download the latest version of the system there. To get started, it is best to study the page npj.ru/npjdev/release . NPJ requires: Apache (perhaps it will also work with other web servers), MySQL, as well as PHP. On the project site there is no information about the minimum required computer configuration for installation. However, I installed npj on linux machines of the following configuration (p3, 256 mb ram, 10 gb hdd) and did not notice any problems in the work.

I will not describe the process of configuring a new node, since it has already been said above - comprehensive information is on the developers website. (which is the same NPJ node) The only thing I will turn your attention to two settings. If you want to receive notifications by mail, you will have to create an email account for NPJ and provide pop3 access to it. The settings for this are specified in the config_tunes.php file. And if you want to take part in the work on other nodes with the pleasant little things that were described above, enable the integration of your node into a common network. This is done by two clicks on the administration page - npj.example.ru/manage/nns .

After installation, you will have one group at your disposal, called node @ hostname by default, as well as a personal area accessible to all users.

Figure 1. An example of the personal space.
Figure 1. An example of the appearance of personal space.

You can choose several options for the site design for you, as well as defaults for those users who have not made their own presets. The first is done in the settings of your profile, and the second, respectively, in the settings of the site. By default, the “simplifica” style is set, but many prefer the more ascetic “academic” style. I, however, do not like either one or the other, since their functionality does not suit me. I use “minikui”, which you can see in the picture. Its main advantage is the convenience of quick access to a variety of functions and properties of the page. For example, to my shame, I did not understand how, in the “academic” style, to achieve fast and convenient (and most importantly constant, regardless of the page you are viewing) access to the search.

There are other reasons to look into user preferences. For example, there is a choice between using wiki / waka markup and a more visual editor in the style of MS Word.

In the personal area, you can keep your diary (like the same livejournal) and, for example, thus log for yourself the development on the site. There you have the opportunity to create your own documents that are not tied to any working group. Strictly speaking, working groups are not a required attribute at all if the node was not created with the goal of providing a project that many people are involved with. I know quite a few cases when NPJ was installed on their own local machine and used exclusively for personal purposes.

As soon as you see all this wealth, the question arises - how to use it all. Unfortunately or fortunately, NPJ has a fairly high “level of entry”, so at first users have a lot of questions about how to interact with the node. Here comes to the rescue the expression that has already sounded above - each page of the node is a “clay”, from which you can “sculpt” anything. To understand what I'm talking about, just double-click on any page on the site. For example, on the central. And if you have administrative rights - get a window for editing the page.

Figure 2. You can start to create from here.
Figure 2. You can start to create from here.

From this point on, you can change the main page of your site to any extent beyond recognition. Use the link to the description of various tags and markup - www.npj.ru/node/chastyevoprosy/zapisizhurnala/wikisintaksis . There are unwritten standards for the design of the main page. However, it is not necessary to follow them. You can see how the front pages can look just by traveling across different sites.

Figure 3. Typical design of the main page.
Figure 3. Typical design of the main page of the site.

When the central page is finished, depending on whether you are going to start a working group or not, you can go to the editing of working groups or simply get to work in your personal space. For information, the workgroup can exist in a hidden form for a single user. This is very useful when your site is public and there are a lot of people on it, and for some reason you don’t want to disclose the information you work with. (I used this to keep records on the entire network of the company on my site, which is accessible to the entire Internet.)

Working groups at NPJ nodes are in fact the division of rights between site users. They exist to determine the policy of issuing (displaying) information with which members of the group work, as well as to determine the access rights of each member. Groups can be public, moderated, as well as, as already mentioned, hidden.

Figure 4. Consider the group more closely.
Figure 4. Consider the group more closely.

Members of groups may have different rights, from readers to managerial (administrative). Of course, within their own groups. If the user is a manager even if the main workgroup node @ is the name of the node - this does not mean that he becomes the node administrator.

If you have created a working group (or decided to use an existing one), you can immediately proceed to the design and filling it with materials. To do this, just go to the group page, which, as a rule, looks like the name of the node / name of the group and, just like on the central page, click on it twice. The already familiar editing window will open.

The design of the first page of the working group may consist of a rubricator of materials, an alphabetical list, etc. And to use (for example) the rubricator, you only need to add the code to the page, the rubrics will be displayed automatically. (Of course, if you enter documents, you will need to specify the rubric for the document.)

For a sample of the features described above, let's create a link to two objects on the new workgroup page. Suppose we mean that the first link is a document, and the second is a table of contents.

Figure 5. Getting kneaded "clay".
Figure 5. Getting kneaded "clay".

After saving, we will see our links underlined by a dotted line and a question mark at the end. When clicking on this question mark, we will be asked to create a non-existent object.

Now we will fill in the first page with the text, and on the second we will make a table of contents.

Figure 6. Two incarnations of identical pages.
Figure 6. Two incarnations of identical pages.

As you can see, from the fact that the pages we intended for different purposes - their essence has not changed. We can add in the first document the table of contents of some new section. And we can, on the contrary, on the second created page write the text and place (for example) a picture.

At any time, you can view the code of almost any page (and not only your site). To do this, just type npj.example.ru/page/source and you will get the specified page in the wiki markup.

I hope you now understand that each NPJ page of a node is a template that can contain everything that you want. In fact, this can be represented as a bunch of html files that are interlinked with each other in the manner that you yourself considered necessary. From the heap of ordinary html texts, they are distinguished only by ease of use, ease of editing and other “usefulness”, which have already been voiced above.

Using NPJ at work.
What specific documentation to keep in NPJ, you decide. From myself I can share the scheme, thanks to which the problem of answering a question (to the authorities or to myself) has disappeared forever: what is where and how it works. This scheme was used by us in the company “City-Info”.

Figure 7. The structure of the working group "City-Info".
Figure 7. The structure of the working group "City-Info".

As can be seen from the figure, in fact, all areas of work of the company's system administrators service are covered here. Of course, some of the information is not displayed on the diagram and is included in the “other” clauses, but also of what is displayed more than enough for understanding. The arrows show links between sections. In fact, there are many cross-references inside the documents, but it is not possible to display this on the diagram.

In the same place, we developed documentation that was subsequently provided to customers and customers. NPJ allowed not only to carry out such works together, but also to track changes in the document. It also provided space for debates on the introduction of certain changes. Subsequently, the development of a whole package of documentation was to begin there, since it was this tool that was considered the most suitable for carrying out such work (development involving geographically remote users), but by that time I had left the company.

I will not tell you how the documentation compiled in NPJ helped us in our work.It is enough that we have forgotten what “guessing” is or doubting something. Just open the browser and all the detailed information before your eyes.

Findings.
There are exactly as many ways you can think of an NPJ application. Maybe you would prefer to write in your own journal interesting finds “for the future”, and in documents save (for example) especially successful configuration files or their description. Maybe you will create a separate working group, where you will keep all the documentation on your network. Or maybe you will dedicate your site to the support of a project that you are currently developing or are just planning to do.

Many subtleties of NPJ work were beyond the scope of the article. There are several reasons for this. First, despite the fact that I have been using this system for a long time, for me, not all the subtleties are disclosed. Secondly, a lot of things left out of the framework of the article relate to the rarely used and not everyone will be interested. For example, the use of “Communities” within which you cannot create documents. This is such a discussion form, but I did not find any use for it, so I missed it in my story. And the most difficult problem in using NPJ, understanding how it works, I hope, I helped you to resolve.

One thing I can tell you for sure, after you get used to using such a convenient tool in your work - it becomes an indispensable assistant. And this is not surprising.You do not spend time searching for a place to save thoughts or a whole document, do not suffer from the construction of a beautiful structure, do not suffer from an incorrectly working search that does not want to give the required result - you just do your job.

akeeper Korshunov Alexey.
First published in the journal "System Administrator".

Source: https://habr.com/ru/post/5396/


All Articles