LibrePlanet: About/Development/Proposal/Website
This proposal outlines the website's structure, functions, and features
The first step in software development is to decide whether to build-or-buy. In either case, it is necessary to know what the software must do. This proposal tries to identify the role the website plays within the Libre Planet network. The proposal views the website as a traditional website, with a complete directory structure and web files. Having a well defined structure allows webmasters to impose an automatic navigation system on the website to form a coherent browsing experience. Finally, a consistent look-and-feel is achieved through style sheets (or templates) based on the directory structure.
The directory structure will probably never exist because most website programs use a backend database server to store the web pages. Usually this means the page's file name is also the page title. This poses a potential name conflict between the directory structure and the page's author. In order to satisfy both, the program should store both the page's physical name and an overriding title. A page can therefore be accessed by name (directory structure), but displayed by its title.
A page author (editor) is restricted to creating a page according to the directory structure, but free to give the page any appropriate title. The page name is further restricted by the navigation system, which will automatically link to the required new (non-existent) pages. This means an editor will be pointed to related pages that need to be created. Pages will mostly be created from the root directory vertically (down) and horizonally (across).
Since websites are about content, the directory structure may also be used to define the content detail. The root directory content is most general and broad, while the leaf pages are specific and narrow. The proposal suggests a correlation between directory level and content detail, but does not define it.
So far, the proposal has not offered anything new with respect to typical websites. With network programs, however, there is usually no concept of directory structure and editors are free to create random pages. The result is inevitable page name clashes and increasingly less descriptive page names. By imposing a virtual directory structure on the page namespace, we are able to reduce name conflicts and move pages within the structure.
The directory structure only avoids name clashes between directories, not within any given directory. The situation arises where the same page name applies to two or more distinctly different, but related content. Thus the file 'book review' may be reviewed by another 'book review' file. Clearly, both file contents are related (one describes how to review, the other is the review), but only one can have the name.
This situation is called a namespace clash and solved by creating several namespaces. We can now have a book and review namespaces where book:book review and review:book review both have the same name, but in different namespaces. The navigation system can link between the two namespaces using the current page name, so the review:book review will link to book:book review. Similarly, the order namespace may also have order:book review, so we can navigate between book, review, and order using the same book review page name.
Having described the purpose of defining a directory structure, we propose applying it to a Group website. A website must fulfill several roles:
- Raise public awareness
- Recruit members
- Create groups
- Teach members how to publicize, recruit, group, and teach (PRGT).