Nowadays, websites are the most important components of a business, and the tools for creating and deploying websites are becoming more flexible and easy to use. However, creating complex web applications using non-standard methods of interaction (for example, blogs) is not a trivial task. Very often, every application in an organization may require adaptation. In this article, we use the fictional organization International Business Council (IBC). IBC unites its employees and business partners into an interactive community, but the existing website does not meet the new business requirements and needs to be upgraded. The new, upgraded website should have a document repository, discussion groups, specialized working groups, a conference planner, descriptions of scheduled sessions, a session completion function, as well as perform other tasks.
The task of users is to increase the company’s offers by improving strategic and tactical decisions. The user community is organized around the basic concept of working groups. Several times a year, members of the community meet at conferences. At these conferences, problems are identified, which are then solved in the period between meetings. The website is used to provide information about community activities, such as conferences, as well as a way to monitor the process of completing tasks set at meetings.
The existing website is based on a document repository, providing a way to share documents and notify community members of upcoming events. However, the website does not facilitate user interaction, especially in the context of Web 2.0 sites with improved features such as web magazines, discussion groups, RSS feeds, etc. The goal of the development team is to stimulate user interaction and provide an integrated publishing environment to support community activities.
problems
Since this will be a secure website, we need a session management system to support the termination of sessions and a mechanism for confirming the document on the terms of use of the site, which perform their functions before it becomes possible to access the site. We also want to support the principle of direct control when it comes to editing content – if there is an action to add a piece of content, it is necessary that the interaction control be placed next to the corresponding content.
Other problems of the existing website are the inconsistency of the visual language, navigation and information architecture. The content is often hidden inside documents placed in the repository and there is no indication of what is in the document. So you should download and view it. As a result of the analysis, the development team concluded that the document repository model is an erroneous model for implementation. We need a content management system with much broader capabilities.
design process
Our design process was iterative and proceeded from analysis to prototyping and trial testing. At the earliest stages, we connected end users to the process with the help of questionnaires, design alternatives and prototypes of various degrees of readiness. We wanted to focus our solutions on both business goals and the needs of end users. Even before defining the functional requirements and starting the development process, we found that the earlier we connect users, the faster we will be able to understand what would be useful and which solutions are the right ones. Without putting much effort, we have collected very valuable information, while at the same time causing users to feel directly involved in the design process. In addition, we have gained the trust of the user community.
Another component of understanding the project is understanding the information architecture. For example, thanks to users, we learned that one of the most important requirements is access to three main areas:
– information about working groups;
– information about past and upcoming conferences;
– access to information about all members of the community.
According to the feedback from users, it also became clear that a clear, clear and simple architecture was needed.
We have identified three classes of users (or characters) coming to the site: customers, team leaders, and administrators. These characters define our design and decision-making process. Having studied what information is important and how it is related to the main classes of users, we were able to create a content architecture, its hierarchy, ways of presentation and ways of interaction of each class of users with this information. For example, information about conferences may contain issues on the agenda or sessions, planning of these issues, topics covered at the conference, and issues resolved between conferences.
During the analysis, additional functionality began to appear. For example, to support an active community, we decided to allow discussions and comments on content, support for contextual feedback and interactive interaction. A new important requirement of users was the use of a unique, but at the same time neutral, brand or visual identifier. Since the website provides a neutral place where a variety of users come to interact, a pronounced visual connection with any company or environment could cause an undesirable reaction.
development environment
To simplify the development process, we decided to use an existing content management system that would help generate a timely solution. Most content management systems could support the basic functions we needed, but there was an obvious need for detailed configuration. A fully finished implementation was not enough. We decided to take as a basis a lot of work done by the open source community. In the end, we used tools of this type.
We had several requirements for the development environment, for example, the ability to make changes to the code and test the changes made offline. After testing the changes, we wanted to make this code available to the development team. Such an iterative development cycle forced us to use a remote version control system CVS, which allowed us to synchronize with members of our development team and manage a source code base that we could all use together.
To support the project and use all technologies in the Integrated Development Environment (IDE), we chose Eclipse. Eclipse provides a large number of extensions and integrates very closely with the Concurrent Versions System (CVS). Eclipse Perspectives provide several views and editors that support current activities. In our case, such an activity was editing PHP modules and HTML fragments. Eclipse also tracked local changes in our code. That is, even if you do not perform incoming file control in CVS, you can still restore earlier versions of the file on your local machine. This Eclipse functionality ensures that you will never lose the source code. By creating a centralized development and testing environment, we could optimize the work with the code and other members of the group – time should be spent on writing and testing code, and not on managing files and other resources on your system.
The choice of a content management system influenced the need to use other tools. In the case of Drupal, this meant using PHP, HTML and Cascading Style Sheets (CSS) for page development, as well as MySQL for server storage.
requirements
We have identified a set of requirements that helped us in choosing a content management system. If any of these functionalities were not implemented, we wanted the system to be able to easily expand to include them. These requirements include:
– separation of content and presentation;
– built-in content commenting;
– built-in content editing;
– thematic discussion groups;
– access rights management;
– search for content;
– authentication before viewing any content;
– session management, including termination, as well as agreement with the terms of use;
– support for community interaction through discussions;
– a simple training course for working with a content management system;
– a simple interface for the administration of the content management system (for transmission to the client).
open source content management solutions
There are many ways to manage the content of your website, ranging from a simple mechanism of web logs (web log, blog), allowing limited publication of content, to a fully functional integrated application system, on the basis of which you can create your own content management system. If there are a large number of options in the field of open source systems, it may not be easy to choose the right one.
In the end, we chose Drupal. However, it is useful to justify the reasons for our choice. In the next section, we described some of the candidate systems, including Drupal, Mambo, Typo3, Ruby on Rails, Movable Type, WordPress and TextPattern.
Drupal
Drupal is a software that allows an individual or a community of users to easily publish, manage and organize a variety of content on a website. Tens of thousands of people and organizations have used Drupal to set up many different types of websites, including: