1 Introduction
1.1 State of the Art
In the beginning of 1990s, the web was nothing like in these days. Developers used simple text editor to build static pages. Users browsed web pages using a historical browser, such as Mosaic [27]. Most non-technically oriented people did not even know there is something called the web. Times have changed and now the Internet is much more important than ever before. Web technologies are accessible, cheap and widely used. Many companies now prefer online solutions to former desktop applications. Common users have realized that they have a lot of content to present and share. Today, the Internet serves as a great tool for sharing different content between users. Users take as granted web presentations and portals, online shopping and banking, full-text search, or social networks.
With the rise of the Internet, many companies and individuals have begun to present and propagate themselves on the web. Traditionally, a programmer or an internet agency was required to create and maintain a website. Managing a website without knowledge of at least HTML [16] and CSS [8] technologies was nearly impossible. This approach is ineffective, time-consuming and expensive for the company. Later, in the end of 1990s, a first CMS application emerged [47]. A CMS system is a type of web-based software that simplifies management of a website. This system allows easy content editing, templates and automated indexing of content for search. More advanced features of a CMS are e.g. specific modules, content preview, user roles and permission.
1.2 Goals of the Study
The first and the most important goal of this study is to propose design of a new content management system. Important fields such as architecture, database design, various concepts and user interface design are discussed. Proposed concepts and features are demonstrated on author's genuine solution, a content management system called Urchin CMS. This project has already started in January 2011 and is still being continuously developed and improved. The system serves as both an experimental platform and a valuable tool for website development. The limiting factor for development is time, as author both has a full-time job and studies at the university.
Secondary goal of this study is to discuss multiple ideas for key concepts. This contains comparison of the most important concepts with other approaches and existing solutions, e.g. massively used open-source content management systems, such as Drupal [10] or Joomla [24]. Pros and cons of these systems are mentioned as one of the reasons leading to the development of Urchin CMS. This study could also serve as a rough guide for architects or developers of content management systems. This work covers all important areas of the design and architecture.
1.3 Project Name
Before discussing project's architecture and features, three important names connected to the project should be clarified. This project began as a simple group of classes repeating in projects without any name or title. Later, a first version of framework emerged directly from these classes and has been assigned a working name Web Component Framework. After that, development of a new content management system has started. This system was built upon the WCF framework and assigned a working title Urchin CMS (or just Urchin). During the development of Urchin CMS version 2.0, the underlying framework was revised, simplified and then renamed to Web Component Framework: Simple.
1.4 Urchin Overview
Urchin CMS is a multi-purpose modular content management system. The system supports multiple presentations and languages, multiple users with different roles and advanced content handling. Advanced concept of components and elements provides great flexibility and effective management of the website content. Components are shared between presentations, there is no need to create and maintain duplicate content. Permission management for pages, modules and actions allows different access rights for each user. This is particularly useful in connection with built-in work-flow feature for approving content. Urchin CMS is a reliable, fast, and secure solution for small- to medium-size websites.
Urchin CMS installation comes with many basic modules, such as simple content, articles, news and forms. In example, dynamic form module is used to create different forms without having any programming knowledge. In addition, many new modules are planned for future development, e.g. forum, maps, products, or client section. The system is highly modular and well prepared for adding custom modules. Custom modules extend functionality according to client's specific requirements and needs.
1.5 Urchin Use
There are two main areas where Urchin CMS is expected to be used. The first area is web presentations. A web presentation features creative design and is usually focused on offering services and presenting references. The content is static with addition of few forms. Even large web presentations contain hundreds of articles but only few dynamic features (forms, comments, enquiries). Advanced functions and custom modules are usually not used. A good example of a web presentation is a small company website, personal portfolio or product micro-site.
The second area is web applications. A web application is much more dynamic and functionally oriented than a common web presentation. Visual design and user interface of a web application is important as well as functions and content the application offers. Each application of this type is customized to client's needs and business logic using specialized modules. a typical web application is in example a CRM system, an e-shop, an educational system or an intranet.
1.6 Technology Used
From the technological point of view, Urchin CMS is a web-based client-server application. This application is written in PHP 5.3 [35] programming language and uses either MySQL [28] or PostgreSQL [40] database for storing its data. The presentation layer of the application is written using XHTML [50] and CSS [8] for formatting and jQuery [52] library for client-side scripting. Urchin CMS is divided into two main sub-applications: administration and front-end. Administration is used for managing website while front-end presents website content to visitors. User uses any modern web browser to access or manage website content. Technological requirements will be discussed in detail in the next chapter entitled Architecture .
1.7 Thesis Outline
This thesis is divided into three main parts with seven different chapters.
1.7.1 Introduction
The first chapter Introduction serves as introduction to the project. This chapter defines the state of the art, study goals, and presents project overview.
1.7.2 Main Content
The following five chapters form the main body of the study. These chapters are most important and most comprehensive. Chapter Architecture describes project requirements, system architecture, important packages, and database design. Chapter Core Features and Modules is about global concepts of the system, such as pages, components, or security and permission system. Chapter Extending Modules describes modules and features that are used to manage website content of different types. Chapter User Interface Design discusses user interface design of the system and chapter Testing of User Interface Design describes testing of user interface arranged to improve user experience with the system's administration.
1.7.3 Conclusion
The last chapter entitled Conclusion discusses the project future and encloses this study. It introduces new ideas and features for future versions and shortly evaluates the whole project and discusses achievements, drawbacks and possible improvements. Most of new features have already their place on the project roadmap and will be implemented in the future.
[Pages 1-4]