Release New Fun: Difference between revisions

From GCD
Jump to navigation Jump to search
Line 42: Line 42:
* Authentication
* Authentication
* Sessions
* Sessions
** Stale sessions are not automatically garbage-collected, so we need to implement that, or find an available implementation.


=== Look and Feel ===
=== Look and Feel ===

Revision as of 00:56, 25 October 2008

GCD Web Site Release: New Fun

This is the main page for the first release of the new GCD Web Site, code-named New Fun. This page will holds general release-specific information plus links to documents on specific aspects of the release.

[back to the Web Site Project Page]

Release Goals

  • To implement the minimum set of functionality required to deploy to production:
    • Display capabilities no more limited than what we have now.
    • Modification capabilities similar to what we have now, but with as much as possible subject to an approval workflow.
    • Full edit access restricted by user permissions for anything that is not yet under an approval workflow.
  • To support the existing data and schema, with only the following minimal modifications:
    • Drop unused columns.
    • Migrate user management to Django's authorization framework.
    • Additional tables/columns needed to implement the full workflow.
  • To lay the groundwork for a new look-and-feel (including navigation and search capabilities) of the site which will support our growth into the new schema.
  • To thoroughly support internationalization.
    • UTF-8 support throughout the code and display.
    • Localization for all countries/languages currently involved in the GCD which have native speakers available to provide text.
  • To ship with a test suite that will support rapid but reliable future growth.

Release Timeline

Note that this list implies a rather strict separation between phases (such as feature specification and coding, for instance). It is likely that these will actually overlap in various ways, and this section will be updated to reflect that.

  • Detailed Requirements: 2008-11-02
  • Features Specified in Bugzilla: 2008-11-16
  • Test Plans: TBD
  • Test Data: TBD
  • Code Complete (includes automated tests): TBD
  • Deployment: TBD

Detailed Requirements

Throughout this section, [REQ] denotes a hard requirement, without which the release may not ship. [OPT] denotes an optional requirement, which may be bumped to a later release but is included because it is thought to not add much time over the hard requirements, or because it is particularly desirable. [OPT] requirements will mostly either become [REQ]s or move to a later release as planning solidifies. [NON] designates a non-requirement- a feature that is explicitly deferred to a later release, but is mentioned here for clarity.

Django Middleware

The following Django Middleware functionality needs to be integrated:

  • Authentication
  • Sessions
    • Stale sessions are not automatically garbage-collected, so we need to implement that, or find an available implementation.

Look and Feel

Fonts and Font Sizes

Colors

  • Color scheme will be adjustable through default and user-contributed style sheets.
    • Support for user-contributed style sheets is not part of this release, but internal code should allow it.
  • Default colors:
    • Must work well with common forms of color-blindness.
    • Background: TBD
    • [other color roles TBD]

Navigation

Global Navigation

Local Navigation

Supplemental Navigation

Search

The Search Box

  • [REQ] Of the form "Search [menu] for [textbox] (Go)"
  • [REQ] Search zones:
    • Series / Issues
      • [OPT] Trailing numbers (including comma-separated lists and ranges) will be parsed as issue numbers, causing a sets of issues to be returned instead of series. See mycomicshop.com (among others) for an example.
    • Publishers / Imprints
      • As with the current OI, this should return both top-level publishers and imprints, and just make it clear in the results which is which.
    • Sequences
      • TBD: Search all supported sequence fields (all credits, title, character, features) and partition the results in presentation? This is ideal if search narrowing is implemented.
    • [OPT] Issues
  • [OPT] Parse terms as follows:
    • Split into words, search for any of the words.
    • Double quotes may be used to group phrases.
    • A + immediately before a term (word or phrase) requires it.
    • A - immediately before a term (word or phrase) excludes it.
    • [OPT] A * immediately before a term (word or phrase) indicates "starts with". Only one term may be starred.
    • [OPT] A ** immediately before a single term (word or phrase) indicates an exact match. Only one term may be present.
    • TBD: Escape sequences?
  • TBD: Continue to have explicit "by name" vs "by year" sorting, or assume reasonable defaults depending on the search zone and allow the user to change the sort in the result set?

Narrowing Results

  • [REQ] Code structure must support adding functionality of this sort.
  • [OPT] Narrow with another search (same search box functionality), ANDed to existing search. Will require more details if this is to go into this release.

Advanced Search

  • Support searching every field to some degree.
  • Complex searches along the lines of Bugzilla's Boolean charts should be deferred to a later release.

Display

Publishers

Series

Issues

Cover Galleries

Internationalization

  • All text encoded in UTF-8.
  • Database migrated to UTF-8 encoding.
  • Layouts friendly to LTR and RTL languages / bi-directional display
    • Bi-directional display will be needed if, for instance, the overall page is localized to an RTL language, but the user is viewing a record with data in an LTR language. Or vice versa.
    • CSS relating to any non-default justification / alignment must reside in a separate document that may be replaced in order to switch layout. TBD: Is this the correct way to handle this? Find examples.
  • Layouts robust to character / word / phrase size changes.
    • Parts of the existing "new" layout rely on a specific width of text to avoid overflowing an area of the page. These assumptions should be removed.
  • All label text should be set up for localization.
  • TBD: Front page strategy
  • TBD: Strategy for possible future article pages- not an issue for this release, though

Localization

  • TBD: Need list of locales to be supported in this release, and translators for them.
    • German (Jochen Garcke)

Accessibility

  • [REQ] Must support screen readers (alt text, labels, etc.)
  • [REQ] Must render decently on an 80-column text browser.
  • See also mobile browser support.

The Front Page

Branding

  • [REQ] The GCD logo shall be displayed in the upper left-hand corner of every page (TBD: upper right-hand when localized to RTL languages)?

Advertising

  • [REQ] Space must be available at the bottom of most pages for Google Ads, as seen on the current site.
  • [REQ] Prominent space must be available on the home page for the CBLDF ad.
  • TBD: Google ads at the bottom of the front page?

User Profiles and Preferences

  • [REQ] Architectural support for user profiles and preferences (per user and per session).
  • [OPT] The ability to set preferences.

Editing

Approval Workflow

Error Reporting

  • [REQ] All pages must have a link to Error Tracker (Bugzilla)
  • [REQ] All pages should have a link to the technical Bugzilla (TBD: Should we instead add a technical component to the Error Tracker? That would make end-user bug reporting much simpler. We could keep the technical Bugzilla internally.)
  • [REQ] Links should always populate the URL field with the URL of the page holding the link, except for the the front page, which should leave the field blank. Any other administrative pages should also leave the field blank.
  • [REQ] Links from pages representing publishers, series or issues should put those entities in the Summary field.
  • [REQ] Links from cover galleries should auto-select the covers component instead of the default data errors component (users can still change it).

Migration Tools

  • SQL script to drop unused colums and migrate user data in to Django tables.
  • Python script to migrate passwords from plain text to encrypted.
  • Reprint parsing will be off by default *unless* it can be enabled in such a way that Action Comics #1 loads within the performance requirements.
    • Users logged in with Editor or Administrator privileges will be able to turn on reprint parsing on a page-by-page basis.
    • Opportunistically: Users with Editor or Administrator privileges may be able to turn on the faster version of reprint parsing globally through a preference, which will be set to off by default.

Browser Support

Desktop Browsers

Desktop browsers are the initial primary audience.

  • IE >= 6.0 (Windows)
  • Firefox >= 2.0 (Windows, Mac OS, Linux)
  • Safari >= ? (Windows, Mac OS)

Mobile Browsers

Mobile browsers must be kept in mind, but full / optimal support may be deferred to follow-on release.

  • Opera ?
  • [TBD: What is on iPhone, Blackberry, Treo?]

Performance

  • Comparable to the current site when it seems snappy? TBD. Need actual numbers for both simple and complex pages.

Feature Specifications

Detailed feature specifications will be recorded in Bugzilla under the New Fun milestone so that they may be assigned to developers and tracked.

Test Plans

Test Data

View-Level Tests

Layout and Navigation Tests

Performance