Additional Website Requirements
Hosting
We have discussed the site's requirements with Prairienet and they are capable of hosting the site. Prairienet restricts patrons to 100 Megabytes (MB) of storage. Although additional space may be available for an additional fee, we fear that this amount will become an issue as the site becomes populated with content. Additionally, Prairienet does not guarantee its backup system, which is a tremendous concern with a site as significant as Amasong.
The site would require Prairienet's Advanced Hosting plan, with a MySQL Database. There is a $25 setup fee for the database, and hosting costs $180 per year. We are happy to negotiate service requirements with Prairienet, and will setup the site on any host meeting the requirements.
We can't pass up the opportunity to note our own hosting service. Zanlus charges $250 per year for a level of service that will meet your needs. It includes web and mail hosting, MySQL services, and guaranteed backups. We also guarantee 5 Gigabytes (GB) of storage and 10 GB of transfer per month. We feel that this is a superior option and is in line with Amasong's desire to support local businesses and organizations.
Performance Tuning
Drupal is a flexible, advanced CMS. As with any CMS and multimedia-rich site, load times will be longer than a static HTML site. Several mechanisms exist to improve load times and reduce load on the server. Drupal supports caching for anonymous users. Caching stores the assembled anonymous version of a page, thus removing the need to make multiple database queries to assemble the content. It intentionally does not work for users who are logged in, as customizations may exist on a per-user basis. Drupal also supports combining and compressing CSS files (page style data). This reduces the number of files transferred to load a page, as well as the amount of data transferred. Additional compression may be enabled in the web server's configuration. Due to technical reasons these two items are mutually exclusive.
Careful design can also improve load times. By utilizing file formats and resolutions suitable to the application, the amount of data necessary to be transferred on a page can be reduced. A fast-loading main page can minimize user frustration by giving them quick initial access to your site. Many site visitors will only pass by the main page while examining search engine results. An optimized main page will allow them quick access to the site, possibly prompting further exploration. Optimizing this most frequently viewed page also can alleviate the server load during high-traffic times. Many page elements only need to be downloaded once. These elements, such as CSS, logos, and javascript files, are referenced by pages throughout the site. Once the user downloads them, subsequent pages use the version in their local browser's cache.
More advanced caching and performance strategies exist. Utilizing Lighttpd and FastCGI in place of Apache and mod_php can reduce server load and latency. There is also support for exporting the site to static HTML. This again is primarily of benefit to anonymous users, as this eliminates the possibility of dynamic content. When content is edited, the associated module regenerates the modified files in the static version of the site. This enhancement, while promising, is still in the early stages of development. It is in production use on some sites, but is not appropriate for widespread use at this time.
The last option available is optimizing of the Drupal templates and content rendering systems. Drupal is designed to be general-purpose and flexible. As with many CMS's, this leads to a lot of unnecessary HTML and CSS to support this flexibility, as well as extra scripting to handle the a variety of output styles. By streamlining these areas, significant performance increases can be realized. However, the process can be time-consuming and may prevent seamless upgrades to new versions of Drupal and associated modules.
We can provide the Amasong web committee with a report detailing load times for pages and their content for key pages on the site at their request.
Search Engines & SEO
Many factors influence the ranking of a site by a search engine. One area of concern with a CMS-driven site is having the same content accessible via multiple URLs, as search engines sometimes penalize for this. In all cases this can lead the popularity of the content being split across all the URLs. This can lead to poor ranking for all the URLs.
We utilize a multi-part strategy to minimize, and often eliminate, this problem. First, we always use Drupal's clean (friendly) URLs. Search engines and users alike prefer URLs to be descriptive of the content being served. We then utilize HTTP 301 permanent redirects (provided by the GlobalRedirect module), to force all pages to load using their clean URL, rather than their internal (node/##) format. By using a permanent redirect, search engines can convert popularity for the old URL to the new one. Second, if it is desirable for the site to load using multiple sub-domains (i.e. www.amasong.org, amasong.org, or bigtypo.amasong.org), or it has done so in the past, we use the redirect capabilities of the web server to issue the appropriate HTTP 301 redirect message, thus forcing all the desired sub-domains to redirect to a single one. For a live example, see
http://www.stnicholasurbana.org
http://stnicholasurbana.org
http://typo.stnicholasurbana.org.
Sub-domains may also be excluded from the redirect (e.g. http://mail.stnicholasurbana.org). Also try http://www.stnicholasurbana.org/node/2 to see the page redirects at work.
Being indexed by a search engine for certain keywords is dependent on the the page's content. The title, META tags, headers, and body must have those keywords in them for maximum effectiveness. Additionally, ranking is based on sites that link to a page using a given keyword. As such, it is difficult to achieve high rankings for all keywords; the process takes time. By having member, partner, and affiliate sites link to you and use your keywords you can increase your ranking. For instance, rather than calling a link to the Amasong website “Amasong”, the link “Amasong, Champaign-Urbana's Premier Lesbian/Feminist Chorus” would have much greater impact. A simple strategy towards this end may be for Amasong to request that members post such links in their blogs, along with a post describing Amasong and the new website. Some search engines give blogs lower weights when determining rankings, due to abuse of the system in the past, so this strategy alone may not be sufficient to achieve the desired results.
E-Commerce
Drupal has a variety of modules relating to e-commerce. The modules support most e-commerce features, including: storefront/inventory, shopping cart, shipping calculation, and payment processing. It is also possible to configure the e-commerce system to accept online donations. In addition to selling physical goods, the e-commerce modules support selling electronic goods. This functionality would allow Amasong to expand its sales beyond CD's, allowing patrons to purchase and download sheet music and audio files. If Amasong chooses to support this option, we advise that you consider the impacts and risks of electronic distribution.
For payment processing we recommend Paypal or Google Checkout. Paypal is well-supported in Drupal. It alleviates many of the responsibilities of e-commerce, namely handling credit card information. Customers' financial information never touches any portion of the Amasong website. Paypal charges no monthly merchant fees, however there is a per transaction fee. For purchases under $3,000, this fee is 2.9% of the purchase price, plus $0.30.
Google checkout is similar to Paypal in that Amasong would not have to deal with customer financial data. Their fees are also much lower than Paypal: 2% plus $0.20 per transaction. However, support in Drupal is virtually non-existent. We can add support for this option if Amasong desires it (listed as Customized E-Commerce). The cost-savings of Google Checkout are somewhat offset by the extra development time required for the Customized E-Commerce. There are also trade-offs in functionality. The method we have in mind for Google Checkout does not include the shopping cart or inventory features of the e-commerce package. However, it is lighter-weight (affecting download time) and comes with the additional benefit of allowing Amasong to sell tickets to events online.
If Amasong does not feel that either option adequately meets their needs, we will work with you to find a processor that does.
Advertising
Independent of the e-commerce functionality, it is possible to add discrete, context sensitive advertisements to the entire website, or to particular pages on the website. Such advertisements typically do not detract from the viewing experience and can provide a source of revenue for the organization. This revenue could be used for many things, including (but not limited to) offsetting website development costs, paying web hosting, site maintenance, and upgrade. One technology organization utilizing such ads earns an average of $200/month from this type of advertisement. Advertisements can be included or excluded from pages as needed. A moderate approach to displaying advertising is to only display them on the internal sites and to authenticated users. This allows for revenue generation without having ads on the public facing site. Besides Google Ads, there are a range of different options for advertising. For example, BlogAds provides niche advertising for different interest groups such as “lesbian” or “feminist”.
Drupal Multimedia Modules & Methods
The Drupal community has produced a variety of special-purpose modules for multimedia. While many of these are quite interesting, their features do not always align with a site's needs. As such, we prefer to utilize the multimedia extensions to the Drupal Content Creation Kit (CCK). The primary module in this toolkit is the Content module, which allows administrators and site designers to create arbitrary content types. Other modules in the toolkit expand the capabilities of the CCK by adding support for new fields: a collection of data and display parameters. There are add-on modules that provide fields for multimedia: audio, video, and images. By combining the CCK with the Views toolkit and Drupal's built-in content aggregation, a knowledgeable designer or administrator can design custom content types with a presentation uniquely suited to the task. Once created these content types can be utilized by users and content creators as if they were a standard, built-in type. For an example of an image gallery implemented in this manner, please see: http://www.stnicholasurbana.org/gallery
The St. Nicholas Gallery utilizes a couple of advanced features. When a user uploads an image, the original is saved on the server. It then creates a thumbnail for display in the lists. A javascript add-on called thickbox is utilized to display the full-size image as an overlay. Thickbox scales the image so that it fits within the constraints of the user's screen. And, most importantly, if a user does not have javascript support, the page simply loads the image in the current window, just like a traditional gallery. This is important to insure accessibility.
Images can be supported using the Imagefield add-on module for CCK. The ImageCache module is recommended in addition to this for performance reasons. Display formats and organization can be tailored to the needs of the organization
We recommend the use of the FlashVideo module to provide video support in the CCK. Flashvideo allows a content editor to upload a video, which is then automatically converted to the Flash format. This reduces OS/browser dependency issues, as the video will then play on any system supporting the appropriate version of Flash. This is how video uploads to YouTube work.
There are many alternatives to the CCK method described above and we are happy to explore them with you. One alternative to the above proposal is to use the Embedded Media Module for the CCK. This module allows for multimedia content uploaded to a third-party website (i.e. YouTube), to be embedded in a Drupal page. This reduces the disk space and bandwidth required for the Drupal site. Be advised that there are drawbacks. Some of these third-party sites, like YouTube, require the user to assign them copyright for all content they upload as part of the terms-of-service. Also, the site becomes dependent on the availability and accessibility of the third-party site for proper functioning of the multimedia areas of the website.
