standard Content management system

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.


Due to the increase in the use of dynamic websites, the need for reliable and standardised Content Management Systems (CMS) is growing rapidly. In the past, many of the websites produced were static with little need for regular complex changes. Nowadays however, the need for the content of certain websites to be changed and, importantly, changed easily, on a regular basis by non computing professionals is common place. For such everyday needs a content management system is introduced.

In the past, people often produced systems for only one PC or a small network however, since the internet revolution systems are often web based and widely used. To make such systems reliable, I will argue that there is a need for clear and consistent standards for the production and use of CMS's. Such standards would ensure consistency and reliability thus enabling management and modification to be easily achieved.

In this paper I will discuss where there is a lack of standardisation and what standards are needed for each part of the CMS. Based on test results of existing web systems and desk based research, I will analyse the need for and adherence to existing standards. To underpin my arguments for these standards I will walk the reader through the production of a prototype system that adheres to the standards I am proposing and demonstrates the benefits of such adherence.

CMS is based on web browser. The browser is one of the translators which translate machine language to human readable language. Different organisation made browser to provide some extra facilities. Although the basic World Wide Web Consortium rules are followed by the browsers however the web content could differ browser to browser. For an example a "CELLSPACING" should supported by the "TABLE" tag for spacing between the cells but the W3C standard does not define what would be the default value of the space. In this case one browser could have its default value as 1 which other could have 0. So, the spacing would differ from browser to browser. Not only the different browser, different browser version could also affect the look and feel of a CMS. I have developed a CMS and the browser was Internet Explorer (IE) V.8. But while I checked in IE 6, the site is totally changed.

Similarly, different operating system could affect the CMS's. People are using various Operating System (OS) for their needs. To name a few, Vista, XP, Fedora, RedHat, Ubuntu, Mac are well known OS. IE6 is used in windows XP which is default browser, Linux based OS like Fadora, RedHat, Ubontu are using Firefox as a default browser. Similarly Mac OS using there own browser Safari as a default browser. Different operating system using different DOM, so that it could varies the actual look and fell which is more important from a user perspective. Not only look and feel it could produce some errors (e.g. JavaScrip Error).

Technology is growing rapidly at the present time. Developers are finding new ways to use the browser. They are also quite successful in some cases. One of the most recent popular technology is the mobile phone. People use this device everywhere. The mobile phone is not only for making and receiving calls; it is used now for multipurpose. Internet is introduced and browser is made for it. However most of the websites are not compliant in mobile browser. Similarly some Television (TV) company introduce web browser in TV. People can watch TV as well as can browse website. They have some limitation of browsing. So there are some technological barriers as well.


CMS is an application which can manage a web site; it includes editing, deleting and updating the contents of a system. Nowadays many companies use CMS to manage their websites. However, the CMS need to be standardised. Many CMS's are available on the internet as free software and most of the software is developed for the need of businesses. Most of them do not have quality standard. In this paper I will explain what international standard is needed for a CMS.

World Wide Web Consortium (W3C) is an international consortium where creates the web standards and guidelines. (W3C, 2007). All web standards such as HTML, CSS, XML and many more are research and make the standard and guideline from this organisation. This standard is an international standard, so that if every developer can cope with this standard and use those in his work, it would be more reliable, efficient and a common standard where all developers can understand.

Every language has its own structure. For an example, Hypertext mark-up language (HTML) has a structure which can be documented in Document Object Model (DOM) (Koch, P. 2001). It mentions how to start the element tag and how to end also which element will be in between which tag. Suppose in a table, the td /td tags should be in between tr and tr tag. If we change the order, the whole code will messed up. Another example for web standard is in an image tag; an attribute "alt" is missing which is not acceptable in W3C standard.

There are some cascading style sheet (CSS) compatibility arise which is one browser can accept this property but another one is not accepting. It would be clear if I give an example, in CSS3; there is an element named ":target" which is accepted almost every browser accept all version of IE. Similarly there is an element named "selector" which is acceptable in from IE7 and other popular browser but can not accept the lower version of IE. So browser compatibility is one of the great issues to standardise a CMS. (quirksmode, 2009)

Suppose some one of the developer developed a software, after few months or years later that software needs to be modified but the developer who is not available. In that time if the software followed the standard and well commented before, it would be easy to understand the code and the business logic to another developer.

Background and Literacy Review:

Every technology needs some time to be precise and reliable. Day by day it goes to stable and there will be new ideas and technology will also develop depending on the earlier technology. "Since 1994 the World Wide Web Consortium has published specifications designed to make a better and easier Web, for end-users, as well as for application developers." (Max F.) . This specification is used by the developer to make sure the development and the knowledge is to be stable.

Standard makes a web site more efficient, more accessible as well as easier to maintain. However, more than 95% of the existing Web pages today are not "valid". They do not follow some of the standards of the World Wide Web Consortium (W3C). (Chen S. et al, 2005).

Standard also help make the development consistent. The web based system could differ if the standard is not maintained properly. Suppose a system is developed and checked only Internet Explorer browser. Internet Explorer uses deferent DOM whereas Firefox use other. So it could be differ respecting OS, DOM, technology etc.

For example, Liu et al. (2000) recognised some important design facts of e-commerce websites. These vital design factors consist of information quality, service quality, usability, system design efficiency, and system usage. In their study, Liu et al. (2000) found that a good designed website would lead to improved customer feedback and recognition. Also a favourable view toward the site and its products. Liu et al. (2000) stated that a good designed e-commerce site is positively related to features such as information quality, learning capability, system usage, and service quality. Proposed six distinct categories or aspects of information system, including system quality, information quality, use, user satisfaction, individual impact, and organizational impact. The focuses of this current research were on technical factors that could affect consumers' satisfaction.

There are some factors we have to consider below

Different Browser type:

Nowadays, all software and business solutions are depending on web browsers. People trying to do everything in the browser based system. So that browsers are also being more smart, reliable and user friendly. For example, Internet Explorer, Firefox, Safari, Opera etc upgrading the browser version as well as developing new browser (e.g. Google Chrome). People are using the browser with their business needs, choice or comparing the user friendliness as well as depending on his budget to buy the browser. So there is compatibility issue that arise. Standards try to solve those issues of compatibility of the browsers. If everyone is trying to follow the same standard, the browsers will show similar contents.

Different Operating System:

People are using different operating systems (Tanenbaum, A. And Woodhull, A.,2001). The popular operating systems are available such as Windows Vista, Windows XP, Mac as well as some open source free operating systems such as Ubuntu Linux, Fedora core, RedHat Linux etc. Operating systems have their own types of Browsers and version which could not support another operating system. Most of the times those are affect the website if there are any errors made in the system.

Different Technology:

Nowadays, technology is modifying dramatically. People used television to watch TV programmes, Video, as a monitor. But it is also used as a browser. People can browse some websites from there TV. There was an article in London Lite newspaper which title was "PCs and TVs become one" (Pinniger, B., 2009). It's showed that some TV company provided some specific websites (e.g. ebay, Youtube) as a feature of this TV which can be browse by the remote control. So, for the different technology, the website could not be compatible for TV.

Why validation: Validation is the process of checking if something satisfies a certain standard. To measure the compatibility of the product so that it can be modified to satisfy the standard. Validation is needed for maintaining the standard for the particular product to meet the criteria, reliable and satisfy the standard.

Resources and Planning:


Project related

  • Finding a real world problem
  • Requirement gathering
  • Usability Issues addressing
  • Data collection
  • Data analysis
  • Usability Test
  • Findings of usability
  • Technology choose
  • Risk management plan
  • Entity Relationship diagram
  • Data flow diagram
  • Object oriented analysis
  • Design data model
  • Write functional Specification
  • Write Design Specification
  • Write test plan
  • Design
  • Implementation
  • Testing
  • Maintenance

Technology Related

  • PHP, ASP.Net, Java etc
  • MySQL, MSSQL or Oracle Database
  • HTML
  • CSS
  • JavaScript

Other resources

  • Computer
  • The validators
  • Microsoft project
  • Macromedia Dreamweaver
  • Requirement for any real world problem



I have chosen some methodology to test the website. There are some tools from World Wide Web Consortium (W3C) and other popular validator to check the website which I am going to use:

  1. WDG HTML validator, validate the entire site (
  2. The W3C CSS Validation Service (
  3. W3C mobileOK Checker (
  4. W3C Markup Validation Service (
  5. XML Schema Validator (

WDG HTML validator:

Web design group (WDG) HTML validator validate the HTML file providing the link to enter alternatively can upload the file and check the common validation problem; provide the tips, accept the minor error. However, I will use the W3C Markup validator later for the final check.

W3C CSS Validation:

W3C CSS Validation service is W3C free software which helps the developer to check the Cascading Style Sheets (CSS). It can be downloaded and installed in local machines or use their web site to test the CSS. This validator checks style sheet against the grammar, properties and values defined in the CSS 2.1 specification.

W3C mobileOK Checker:

Currently people are using mobile as a computer. This is done by sending emails, chatting and shopping by a mobile phone. W3C mobileOK Checker checks the level of mobile friendliness of web documents.

W3C Markup Validation Service:

The web document is usually written with the Markup languages like HTML or XHTML. These languages have a grammar which can understand the machine. The way of checking the grammar is following or no is called validation. The markup validator can check the validation. It can check HTML, XHTML, SVG, SMIL and MathML as well as it can validate the document written with XML DTD or SGML.

XML Schema Validator:

XML Schema validator validates the XML Schema respecting the XML. It will provide the warning messages if we check show warning, it will continue schema validation after getting error if we check "Keep going" check box and can check as complete schema if we check the check box.

The methodology is some popular website that will be chosen from the web at first. After choosing the sites, above website checker from world wide web consortium and other valid source which will check either the website has W3C standard or not. The site will not be tested before by the tester so that it will not be biased. The sites will be well known and popular websites which we most probably use everyday.

Test Sites:

To test the most popular system, I have chosen some popular sites. These site are usually use in everyday. The sites are chosen with different types like social networking, e-commerce, information system, search engine, e-banking, video sharing as well as the W3C standard site. So that it would be balanced.

Firstly, Facebook and hi5 are the most popular social network sites nowadays. Its contents are changing every moment. Similarly, e-bay, the e-commerce site is used for buying and selling. People are bidding products, uploading product's images and browsing, it is quite a busy site. Google, yahoo and MSN are search engine as well as used as multipurpose. Wikipedia and BBC are most informative websites. These are the biggest information database. Youtube is the most popular site for video sharing. And W3C site is the World Wide Web consortium site which organisation is maintain the standard. So, every site is popular in his area. The main reason is to choose those site is those are popular. So they should follow the W3C standard.

Result analysis:

In the test result table, hi5 sites, Web design group validator gave 50 errors comparing with W3C markup validator provided 385 errors and 223 warnings. Similarly, ebay site got 50 WDG validation errors and 199 W3C Markup validation errors. In the W3C MobileOK Checker, it showed 87% mobile friendliness and for Ebay site, the checker could not perform check. For your information, those sites are rapidly used and most popular site in e-commerce and social network category.

On the other hand Wikipedia and BBC are the huge information systems which store information in there database and the contents are changing everyday. The W3C site I tested for my curiosity to check are they follow their standard or not. The WDG and W3C validator showed there are no errors or warnings in those sites. However the MobileOK checker could not check Wikipedia site, said unavailable for W3C site and BBC site is only 69% friendly.

The W3C CSS Validator showed 128, 87 and 70 errors for Facebook, BBC and hi5 site respectively. There was an exception and an unavailable message showed for Youtube and W3C sites.

The W3C MobileOK checker showed 100%, 95%, 87% and 84% friendliness of Google, Yahoo, hi5 and Facebook correspondingly which are quite good for mobile users.

I have not checked any XML Schema because no one provides the XML and its Schema for security reason. I will use if there is an opportunity to use XML and XML Schema in my project and I will check with the validator.

To summarize the result, the sites are well known for my friends, colleagues, family members as well as my teachers. However, most of the sites contained errors, warnings and less friendliness which should not be in professional, popular and well known sites.


Nothing in the world is 100% perfect. There could be some good things as well some bad things. We should adjust with the needs. However, it is not acceptable that we have to adjust which is not really what we need. So that people made some organisation to maintain standard such as BSI, ANSI, ISO, W3C etc. The standard will change, modify and create another standard depending on new technology. The validation process will be also change, modify and create with the new technology. For an example, W3C provide MobileOK checker to check the friendliness. After few days later they could provide TVOK Checker. So, if we maintain the original standard for the particular product, the product could not behave deferent in various medium. This study showed that the most popular website could have errors; they did not follow the standards. There are lots of standard available which can someone use for the particular use like html, css, XML schema etc. But is there is standard software which will maintain all standard which will cover all aspect then it will be easy for the developer to follow the standard. It will be an example for the novice developer as well as they could follow the standard.


  • Max F. Advances in W3C Web Graphics Standards, World Wide Web Consortium
  • Chen S. et al. (2005) "An Experimental Study on Validation Problems with Existing HTML Webpages". Proceedings of International Conference on Internet Computing (ICOMP'05), Las Vegas, 2005. pp. 373-379.
  • Quirksmode(2009) . CSS contents and browser compatibility.[Online]. Available from: .[Accessed 19 July, 2009]
  • W3C (2007) About the World Wide Web consortium (W3C). [Online]. Available from: [Accessed 12 April 2009]
  • Koch, P. (2001). The Document Object Model: an Introduction. [Online]. Available from: [Accessed 12 April, 2009]
  • Tanenbaum, A. and Woodhull, A. (2001), Operating Systems: Design and Implementation, 2nd Ed, New Jersey: Prentice-Hall Inc.
  • Pinniger, B. (2007),"PCs and TVs become one", London Lite (London 1st Edition), 23 April 2009:p12-13
  • Liu, C., Arnett, K.P., Litecky, C., (2000), Design quality of websites for electronic commerce: fortune 1000 webmasters' evaluations. Electronic Markets 10 (2), 120-129.

Coding standards for developers


For every computer engineer, they must have to include some type of coding. They have to write a computer program, SQL query and business logic to develop the software. Even to get a computing degree, coding is necessary for students. This paper will describe how to maintain coding standards as well as what will be the best practice to maintain the coding standard.

Coding standards are highly important because they will lead to having great consistency throughout the company. To a have greater consistency can lead to a code that is easier to understand, which in turn means it is easier to develop and to maintain. Less stress in developing an application should also result in more reliable application. Coding standards reduce overall cost of the applications that the company creates and maintains.

The code written here will exist for a long time; long after any one developer has finished with the code. An important goal during development is to ensure that other developers can easily take over a project with the least amount of effort.


Standardisation should aim to

  • improve overall quality of the software products
  • ease code re-use and sharing
  • provide consistency so that programmers can easily understand each other's code
  1. people make few mistakes in consistent environment
  2. people new to the company or programming language can get up to speed quickly

Furthermore, codling's standards that are not easily understood or places risk being ignored:

  1. Every standard should be described clearly together with the reasons for the standard.
  2. Standards should be consistent with common industry accepted standards
  3. Standards should not reduce creativity
  4. Standards should not restrict or constrain developers in a way the reduce productivity
  5. Standards should not be so complicated or irrelevant that they are simply ignored


No standards are perfect. Standards should be regularly reviewed to ensure that they achieving what the original intentions were.

It is unlikely a single standard will be consistent with the coding practices engaged by every developer in the company. For the lake of consistency, every developer in the company will probably need to change to confirm to an agreed standard. Of course, if anyone disagrees with a standard, this disagreement should be discussed to the company but should not simply be ignored. The standard may be amended after such debate and discussion.

A developer may occasionally come across occasions that they need to 'break' the standard for some reason. The developer should be able to 'break' standards if they feel it is needed - however, the developer must document any departure from the standards.

Code Conventions:

Sun Microsystems (1997, p1) descried "Code conventions are important to programmers for a number of reasons:

  • 80% of the lifetime cost of a piece of software goes to maintenance.
  • Hardly any software is maintained for its whole life by the original author.
  • Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly.
  • If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create."


Code reviews should be carried out from time to time to ensure that the standards are adhered to.

The Standards

All programming languages are to adhere to the standards specified in this section.


  • Comments should describe what a particular section of code does and not how it is done.
    1. The how's can be understood by the reading the code. If the how's are described, it is less useful (how's will describe faulty logic)
  • Special Key words in comments
    1. TODO: means that there is still more to do here - remind/do not forget
    2. BUG: indicates that there is a known bug or potential bug here
    3. DEBUG: specifies a section of code added for debugging purposes. (Many times debug code has been included in release software)
    4. WARNING: indicates if there is a runtime or compile time warning and whether it is available.

    Every language has its own commenting style. This is sure that comments will be in every language and is necessary. One language could have more than one commenting style. For example in PHP, we can comment a single line code with "//" or starts as "/*" and ends with "*/". But in SHELL, there is only one way to comment which is using "#" in the start of the line.

    Programs can have four styles of implementation comments: block, single-line, trailing and end-of-line. (Code Conventions, 1997a)

    With the Java example, the comments will be shown

    Block Comments:

    A block comments can comment out single line to multiple line of code. The example is below


    * This is

    * a block comment


    Single-Line Comments:

    Single line comments, comment out only one line.

    // this is one of the comment style

    /* this is a comment */

    Directory Documentation

    A README file should have file. Developer can see which files contain in this directory and what the purpose of it is. This file should cover:

    • The purpose of the directories
    • What contains of it
    • Installation direction
    • Each line should have at least one line comment
  • Every directory should have a README file that covers:
    1. the purpose of the directory and what it contains
    2. a one line comment on each file. A comment can usually be extracted from the NAME attribute of the file header.
    3. cover build and install directions
    4. direct people to related resources:
    • directories of source
    • online documentation
    • paper documentation
    • design documentation
    1. anything else that might help someone

    Consider a new person coming in 6 months after every original person on a project has gone. This lone explorer should be able to piece together a picture of the whole project by traversing a source directory tree and reading README files, Makefiles, and source file headers.


    Indent using 2 spaces for each level. Every editor has tab default which is equal to 4 spaces. Non-trivial code may have up to 5 levels of indentation. With larger indentation, substantial portion of the left hand screen will be blank and the code be contained within a narrow column on the right.

    Indent can as much as needed. The best practice is if it exits more then 4 or 5 levels, built a function/Method. However there are no rules for maximum indenting level.

    Again, the source code is contained in a narrow margin on the right, is more difficult to read.

    Use spaces instead of tabs. Most editors can change tab to space facility. Tabs are handled differently by various editors. Using tabs may mean different programmers using various editors see the code differently.

    A source line should no more than 70 Characters (Code Conventions, 1997b)

    1. Even though with big monitors we stretch windows wide our printers can only print so wide. And we still need to print code.
    2. The wider the window the fewer windows we can have on a screen. More windows are better than a wider window.
    3. We even view and print diff output correctly on all terminals and printers.

    Naming Convention

    Different companies have different naming conventions. For the new employee, they should know the naming convention of the particular company. From my experience, I follow the naming convention of my company.


    • Capitalization
    • '_'
    • Suffixes
    • Prefixes


    The capitalise variable is used to define a variable.

    Use of "_":

    Underscore "_" used basically for splitting two the words but it is normally treated the machine as a single variable. For an example if we wan to write a variable which is for user name; we can named the variable like:

    String first_name= "Abedur";

    String last_name= "Rahman";

    Suffix and Prefix:

    Normally the suffix is used for the variable name and the prefix is used to know about the object. If there are two objects like customer and another is supplier. But both have the same properties such as first name, last name. So how can we differentiate which variable is suited for whom? So if we use suffix and prefix then we could differentiate those. For an example:

    String customerName = "Abedur";

    String supplierName = "John";

    So we can clearly know that which mane is for whom.


    Function is one of the common procedures to reduce code, make code simpler and easier to understand for the developers. Some codes need to be use frequently, in this situation we don't need to rewrite the same code. We can write a function to do the same functionality for multiple uses. Similarly, sometimes we need longer coding in to another function. If we write longer code in to the function or any area which is important for the system, it is better to make a function for those longer codes, so that if any other developer or even who write the code will be easier to understand.

    Before starting the function, we have to write useful comment about the function; It could be Function name, Date, Version, Creator, Modifier and Description of the function. Different organisation has different commenting style. We have to follow the style as well.

    When a new method/function?

    • If any part of your code has become common to other parts do not copy the code. Put the common code into a function and call that function as many times you need. It makes the project maintenance and enhancement a bit easy.
    • If it is possible to isolate logic from the other part it is better to put them under a new function even when it will be used in single place. It makes the parent function more readable.

    Source File

    • File Name
    • File Header

    File Name:

    File name have to be provide the basic understanding about what the file will do. For an example if the file is for creating a user, the name could be createUser.cpp or createUser.asp or whatever language we use.

    File header:

    In the file header it should have proper comment and the include file names. The comments will provide basic understanding about the file. There is an example of file header below

    • File name: actionutil.php
    • File type: PHP
    • Author(s): Abedur Rahman
    • Version:
    • Date: Jan 24, 2007 12:13:21 PM
    • Copyright: Copyright (c) MF Asia Ltd, 2007
    • Description:

    No Magic Numbers

    • Do not use a magic numbers:

    if (status = 999)


    1. Magic numbers make codes difficult to understand and maintain.
    2. Most magic numbers are forgotten within months of the code being finished.
    • Replace magic numbers with constants or defines:

    if (status = END_OF_YEAR)


    Local Fields

    Local fields should have an understandable name, so that developer cannot confuse. To defining local fields should define before start any loop if we want use in there.

    Some language shows error even if the "j" variable defines before start the inner for loop. The best practice is to define both variables before the loop. When the "i" value is 2; loop will continue and when the program will try to define ageing "j", it will give errors as the variable is already defined.

    Database Fields

    The database fields should define with using prefix and suffix. The prefix should the table name of the database and prefix should be the field name. But many organisations use the naming convention for database.


    A method should have a summary comment just before the function name. To me, function/method should have a single exit point which makes it more readable and understandable. If a function returns from many places in a function then it does become difficult to trace the flow of the method.

    Blocks of code

    • Braces
    • Braces less

    Both ways are correct. Some peoples prefer like first example and some peoples are the second one. However, we can write without braces if there is a one line code but this should use carefully. If you think that no more line can be added for this block, then we could use this. However, I would recommend not to user braces less block. Some times it causes confusion and errors. Human mind sometime can not detect there is one line command or not.


    Nowadays, technologies are developing rapidly. People are getting use to with automated system. The needs of the automated system are captured in almost all sectors. So, development is endless. Coding style is one of the important factors of an organisation as well for the developers. The developer will move one to other organisation if they get better opportunities to other organisations. So if the standards are maintained in the code, there will be no dependency to any developer of the company. A new developer can handle the project later on if they know the same standard as well. Similarly if they join the other company and the code is maintaining the standard, then they also cope with the business logic easily. So the coding standard is one of the most important factors for the developers as well as organisation.


    • Richard Stallman, et al.(2009), GNU Coding Standards, v 1.3, Free Software Foundation, Inc.
    • Code Conventions, (1997), Java Code Convention, Sun Microsystems, Inc. California
    • Sun Microsystems, (1997), Java Code Convention, Sun Microsystems, Inc. California

    The Project Proposal

    Name: Article management System


    Article management system (AMS) will provide articles to view the users. Users can register their details in the system. Registered users can write articles as well as upload files. Users should login before upload or write articles. They can also do feedback of others articles. Feedback can be commented by the users. All modification (add article/feedback/comment etc) could only done when a registered user is logedin.

    The administrator user will get some extra menus. This menu will provide the control of users, articles, categories and files.

    Unregistered user can only see the articles.

    The interface:

    The website will have three main parts. On the left hand site, there will be category menu which will be generated dynamically. The category can be added maximum of tree level (Top level category, Subcategory and its subcategory) by the administrator.

    In the second part, there will be a list of articles shown with order which means new one will be first. The list content will have articles thumbnail picture (if available), headline and short description. The thumbnail picture, headline and "More>" button have link to go to the main articles.

    Third part will have login/logout interface. In the article detail page, it could be addresses. There will be some space for commercial advertisement.

    Menus: There will be two part of menu. If an admin user logged in, they will get both otherwise normal user will get only one menu.


    The category menu will be shown on the left hand side of the interface. This menu will be comes from database. This category has three depth levels. For an example, if the main category name is "Technology", it could have another level named "Vehicle" to specify the category. If we want more specific, it could be another level names "BMW". Administrator can add new category. They also can delete and edit as well. We can use three level depths but it is not necessary to use all of them.

    According to selection of category the article header will show in the middle part of the interface. If the category depth level is high, the articles will show with the level.

    Without clicking the category it will show all types of article respecting the publishing date.



    There will be a link near to login button which could be named as "Create an account". After clicking this link it will take the registration form. In the registration form it will take the necessary information from the user. Those will be Full name, Email address, Town/City, Post code and Country. The country will be a drop down list and "United Kingdom" will be selected default. There will be an input box to take the Captch image text for security reason. The form will be submitted by clicking the "Register" button. An email with a link will be send to the given email address for activating the account.

    Activation: to go to the email address and after clicking the link it will take the activation page and requesting the password. After enter password and submit the form the account will be active. Once you active the account, the link will not work again.

    Forget password

    If you forget your password you can recover it. There will be a link near to the login input box and it could be named as "Lost password?". After clicking the link it will take lost password form where you have to enter your email address. After entering email address and clicking the submit button, an email with a link will be send to the email address. There will be an input box to take the Captch image text for security reason.


    There will be a login option for the user and admin. User can login their account by giving the email address and password which is given in the registration process. By login into the user account they can change their profile, add new article and upload article. After login to the account a menu will appear in the bottom of the top banner.

    There will be a Sign out link in the page.

    Change Profile

    You can change your profile information from this menu. Password also can change by this link.

    Add article

    User can add article with two ways, by writing the text in the given form or uploading a document file. If you upload a document file, administrator will review that and they will upload it later.

    If you click add article from the menu, a form will be given to you. You have to enter the title of the article. There will be two text areas which are for intro text and another is full text. The intro text is short text which will be showing on the main page (a "More >>" link will be associated to see full text). The full text is for the full article.

    The category of the article should select carefully. It is better if the user enter selects the specific category.

    There will be facilities to add an image and a video link (Youtube) in to the article. Image should upload from the PC and the Youtube video will added to the article.

    Upload File: If users want to upload a document file, they need to click the upload article link. There will be an input box for article title and a browse button for the file.

    View article

    In the main page there will be a link named "More >>" or a link in the thumbnail image which will take the detail view in that article. Login user can add feedback or can add comment of a feedback. The article owner can add addresses on the right hand side.

    The image which is added in the add article process will be shown as thumbnail image in the main page and full image in the detail article. It will place on the top left corner underneath of the short text. If the image is not added, the place of the image will be filled by the text.

    The video will be shown on the top right corner. If the video is not added, the place will be filled by the text.

    Feedback area will be on the bottom of the page and comment of the feedback will be next of the feedback.


    Manage article

    The Manage article link will go to the created article list. If the user added the article it will not published unless otherwise the administrator gave the permission. When the article is added the published status will be default as "0". If the administrator makes it as "1" then the article will show in the main page. In this section every article will be shown as a list with the field Title, Published, Editor, Ordering and Video. There will be other buttons which are Edit, Save, Full view and Delete will be on the right hand side for managing the articles.

    The edit button will be used to edit the fields and the save buttons function is to save the edited text. The full view button can provide full view of the article.

    By the delete button, the administrator can delete the unnecessary articles.

    Manage Category

    The administrator can add new categories which will appear in the main page on the left hand side. An add icon will take another form to add a category. If the category is main category, then leave the first two dropdown list which named as "Main cat" and "Sub cat". Fill at least the compulsory fields which are Title Description and published.

    Alternatively if the category is a sub category then choose the appropriate category from the dropdown list which is belong with.

    The existing category can also be managed. There are some icons available which are Edit, Save, Full view and Delete for the appropriate functionality. With the Edit button, admin can edit the information of the category and with the Save button it can be save. Full view button is for viewing the full information. To delete any category, Delete button is for that.

    Category should hide and show from the main page with changing the "Published" status which are "0" for unpublished and "1" for published.

    Manage User

    Users will be managed by this module. Admin can make another user as admin by changing type. The information of the user can be changed. Admin can block the users by changing block flag status. If the block status is "0" that means user can login. If the status is "1" it means the user is blocked and if the status is "3" it means that a new user is submit the registration form but not activate yet.

    Admin can add new users by clicking Add button without registration. An information row will be on the underneath of the user list.

    There will be some icons which are Edit, Save and Delete available and the functionality as same as descried in above modules.

    Manage Files

    There will a list of files which are uploaded by the user. The administrator will check this file by clicking "The Document Icon" and he will review this. If this article is better then they will put this article with the appropriate category.

    The document file name will change while uploading this and it will replace as yyyymmddhhmmss.doc or yyyymmddhhmmss.docx. this means first four digit will be current year then next two digit will be current month then next two are date and as follows as hour, minutes, second and then the uploaded files extension.

    The row will have Name, Title, Size, Type, Uploaded date, Uploader, Viewed and params. There will be some Icons which are Edit, Save, Document and Delete next to the information on right hand side in every row. The Edit, Save and Delete Icons functionality is as usual (Descried above) and the Document Icon is for downloading the uploaded file from the server.

    Technical Specification


    This document forms a detailed technical specification for the Article Management System (AMS). The technical specification is intended for use by the technical staff, project manager, software engineers and implementation staff involve in the deployment of the project. It is also to be used by AMS to ensure that the functionality to which the appointed software contractor has committed in the contract define herein.

    Technical Standard:

    This section details prime development standards.



    The application is to be written using an appropriate Internet scripting language PHP, CSS2, HTML, XML, sh, perl and JavaScript. The application will run under Windows or LINUX.


    The application is written to operate using Microsoft Internet Explorer 7(or later) , Firefox 3 as the client, running on PCs under Microsoft Windows 2000/2003/XP/Vista, Linux (Fedora Core/Ubuntu/ RedHat) and Mac, with a screen resolution of 1024x768 pixels or greater.


    Deployment of the application will be via the Internet. A contractor will host a web-server for the application.


    As this is a real-time mission critical Internet application, the prime considerations must be bandwidth and database efficiency. It is critical that bandwidth usage is kept to a minimum, and that the database is as efficient as possible to ensure the fastest response time at the client. Wherever possible, items like style sheets and JavaScript source will be stored in linked files (which can be cached) to prevent repeated downloading of the same data. Use of cascading style sheets (CSS) should be maximised, again to reduce bandwidth requirements.

    CSS2 fixed layout tables should be used to maximise the speed at which HTML tables are displayed wherever possible.

    Use of graphics will be kept to a minimum.


    Relatively inexperienced users use the application. Screen design must be clean and clear; and as easy to use as possible, bearing in mind the limitations of HTML.

    This document will specify basic screen layouts.


    As this is an Internet application and the users internationally, security issues must be properly addressed.

    Directory Structure

    The server for the application will have the following suggested directory structure:

    • Site
    • Administrator
    • App
    • Dao
    • Model
    • Service
    • Docs
    • Images
    • Lib
    • Mvc
    • PEAR
    • Scripts
    • Tiny_mce
    • Styles
    • uploadedFiles
    • Web
    • Action
    • Common
    • Views
    • Common

    Database Structure

    As we are using MVC framework, our database field names should have the same name of the object's entity. That is if an objects entity name is like "first_name", the database name should be "first_name". So that MVC framework automatically point to the database field with the object's entity.

    Foreign key will be the same name with prefix so that it is easy to understand the table name. For an example an "address" table's id could be written in "user" table's fields as a foreign key like "ad_id". So that it is easy to understand which one is referring this foreign key.

    Program names


    The model name will be the same name of the class name which is object name. Platform name will be added as required with a dot "." (e.g. user.php). Name will be small character.


    Data object modelling (DAO) layer program name will be the object name and postfix "dao" which one you are working on that program. For an example if you are working on "User" object, you have to implement every business logics for user on that program and its name will be "userdao.php".


    In the service layer, it will manage all services provided. The name will be a common name for all service. e.g. usermanager.php


    User interfaces will be in that layer. The naming convention will be what the user interface do with this program and there will be a suffix added after which is "view". For an example if the interface is for adding user, the name could be given as "adduserview.php".


    The action program can be named depending on what action will the program do and a suffix will added after which is "action". For an example if the action program is for adding a user, the name could be written as "adduseraction.php".

    This can be used instead of the default. This provides the ability to tailor style sheets for specific customers if required. If no specific style sheet is defined, then the default is used.


    JavaScript files must have names which is program name with a '.js' suffix. Common JavaScript routines (shared by more than one program) should be named program_name.js - the underscore being an indication that it is used by more than one program. JavaScript collections that are used by a single program will not have the underscore.


    All code must be well commented - with appropriate and useful comments - particularly sections dealing with flow control and logical decisions. All comments to be signed, and date and time stamped.

    Every file containing a program, style sheet, or JavaScript 'bundle' must have a section at the top detailing:

    • Filename
    • Description
    • File type (e.g., dynamic web server program, JavaScript functions, style sheet, etc.)
    • Author(s)
    • Date
    • Copyright message

    In addition, there must be a section, in table form, for modifications to the file. The column headers are:

    • Modifier
    • Date
    • Description
    • Reason (including who asked for it)

    Any changes must also be commented in the code, with the change numbered to enable a text search to locate the modification.

    To save bandwidth, ALL comments in programs are to be hidden from the resultant (generated) HTML.


    All screens are to be designed for Internet Explorer 7, Firefox 3 or above, with the PC set to a screen resolution of at least 1024x768.

    All elements on all pages must use a class defined in the style sheet.

    Full use of the HTML tag

    Most screens are to be displayed in the same browser window. If a link needs to open a new window, these must be carefully named to ensure uniqueness where appropriate.

    All screens and their associated functionality must be designed in a modular way, so that different bits of the system can re-use the same code. Generally, screen layout control will be achieved using nested tables.

    If we are using drop down lists to control functionality (as in category), selecting an option will cause the URL to be loaded immediately, rather than clicking a submit button. This will be achieved using JavaScript.

    All dates are to be entered as a 6 character field: DDMMYY. They are to be displayed as 10 characters: dd-mm-YYYY. Times are to be entered as 4 characters HHMM, but displayed as 5: HH:MM. Where possible, date and time validation should be handled by the browser using JavaScript, and the user input converted to the display format shown above. If the user moves to a field which contains a date, the display format must change to DDMMYY. Similarly, a time field should change to HHMM. On exiting the field, the normal display format is restored.

    Every effort should be made to beautify the user's input before it is written to the database. For example:

    • All names and addresses should be in 'Title Case'.
    • All standing data file descriptions should be in 'Sentence case'. (See Microsoft Word for Windows Format/Case for an explanation of these terms)

    However, if data is entered in UPPER CASE, assume this is what the user intended, and preserve the data in the format it was entered.


    All tables used to display data throughout the system must conform to the CSS2 'fixed' table definition.

    By using this, table widths are hard-coded in the HTML, which allows the data to be displayed as each row is downloaded (rather than waiting for the whole table to be downloaded).

    The colgroup tag should be used to specify style sheet classes for columns to save on bandwidth. For this to be effective, care must be taken to ensure that parameters set for a table are sensible (particularly column widths). Data validation

    The application will use four different methods for validating data.

    JavaScript field validation

    JavaScript functions must exist to ensure that data typed into a field matches that expected for the field. For example, if a user attempts to enter alpha characters into a numeric field, the input will not register. Items which might be validated in this way include:

    • That fields with range as part of the validation specification in the data dictionary are checked
    • That date fields contain a valid date
    • That a time field contains a valid time
    • That numeric fields contain only numbers

    The 'maxlength' parameter must be used on all text input fields to ensure that input does not exceed the definition for that field in the data dictionary.

    Finally, CSS text transform directives should be employed to ensure that input is in the correct case for the field.

    JavaScript form validation

    As each form is submitted, JavaScript functions must exist to ensure that as much form validation as possible is carried out client-side. For example, it is a simple matter to ensure that compulsory fields have data. Items which might be validated in this way include:

    • That a 'date' is valid
    • That Email is valued with @ and host name (e.g. com, co, org)
    • That compulsory fields are not empty

    Server side validation

    Finally, there will always be the need to carry out some server-side validation. If errors are found, these must be reported to the user, and the form redisplayed with all entered data shown. The user can then alter the offending input and resubmit the form. This is an iterative process, until there are no further errors.

    Displaying Errors

    There are two types of displaying error are client side error and client side errors. All errors for all validation methods which are client side error should be displayed using a JavaScript alert() box. If it is not helpful to display an error message (for example, if a user is trying to enter alpha characters into a numeric field, then simply do not accept the input rather than show the error message).

    Error messages will show only one alert box. For an example if a form has some compulsory fields which are "Full Name", "Email Address", "Image text" and submitting the form without filling those fields.