Design Document

Supported User Roles

There are four user roles to be supported by Mozilla Developer Center (MDC), with primary focus being on Web Developers and Mozilla Front End Developers and secondary focus given to Mozilla Internals Developers and MDC Contributors.

note: an individual may fit into one or more user roles

Web Developers

The web developer is a user with a primary task of delivering a web-based application (either static or interactive) to meet some end-user need. This user is looking for a strong resource with documentation & how-to articles that will assist in the development of their project.

Skills

  • Very experienced in browsing web resources for information
  • At least some experience in developing web pages or web-based applications

Tasks

  • Develop web pages or interactive web-based applications that make best use of available technologies
  • Engage with web development community to get/give assistance and learn/develop new techniques to use
  • Stay current on emerging technologies

Content Interests (prioritized)

  1. New, emerging web technologies (AJAX, SVG, <canvas>)
  2. Popular, established web technologies (CSS, X/HTML, XML, DOM, JS)

Mozilla Front End Developers

This user is either an individual looking to contribute to the Mozilla Project by working on "front end" code, by extending a project through an extension, or someone looking to create a XUL application for some end-user need. The user may be looking for getting started information, documentation, how-to articles or advanced technical information about the technologies.

Skills

  • Very experienced in browsing web resources for information
  • Experienced in developing web pages
  • At least some programming experience (in a scripting or compiled language)

Tasks

  • Learn how to develop front-end code for Mozilla applications / extensions
  • Learn how to develop interactive web-applications using Mozilla technology
  • Find / explore documentation on Mozilla technologies
  • Engage with Mozilla development community to get/give assistance and learn/develop new techniques
  • Stay current with latest technologies

Content Interests (prioritized)

  1. Emerging Mozilla technologies (Cairo, Toolkit API, XULRunner)
  2. Mozilla technologies used in XUL development (XUL, JS, RDF, XML, DOM, CSS)

Mozilla Internals Developers

A developer working on Mozilla project "internals" code (C, IDL, RDF) or some project code which will use a XUL based user interface component. This user's primary interest is to find reference documentation & how-to articles that will assist in the development of their project.

Skills

  • Very experienced in browsing web resources for information
  • Very experienced in programming in C or a similar language

Tasks

  • Find / explore documentation on Mozilla code base
  • Engage with Mozilla development community to get/give assistance and learn/develop new techniques
  • Stay current with latest technologies & code base changes

Content Interests (prioritized)

  1. Mozilla code base
  2. Mozilla technologies used in internals development (C, RDF, XML)
  3. Mozilla technologies used in XUL development (XUL, JS, RDF, XML, DOM, CSS)
  4. Emerging Mozilla technologies (Cairo, Toolkit API, XULRunner)

MDC Contributors

A user who is responsible for ny combination of writing, editing, reviewing or translating the content of MDC to ensure that it is accurate, complete and up to date.

Skills

  • Familiar with using web browsers and likely familiar with web-based applications
  • Possibly, though not neccessarily, experienced in technical writing
  • Possibly expert experience in one or more technologies

Tasks

  • Review recent changes to MDC resources for clarity, accuracy and content
  • Translate MDC content into other languages
  • Create new MDC resources

Content Interests (prioritized)

  1. what's been added / changed
  2. what content needs to be reviewed
  3. what content needs to be added to MDC
  4. news about the status of MDC and changes to the infrastructure

Information Architecture

MDC is, at its core, a collection of content provided in a system that is built to support the goals and tasks of the supported users. This section of the design document is intended to describe the information architecture that we wish to expose to users through navigation systems, internal nomenclature, and implicit ontologies (yes, yes, despite the fact that ontologies are overrated).

This information architecture proposes that any document ("content") can be classified (as a "content-type") and categorized in order to provide multiple navigation and organizational schemes. Further, there will be classifications for the categories ("category-types") to provide further structure. The architecture allows:

  • any content is of a single content-type
  • any category is of a single category-type
  • any content to exist in 1..n categories
  • users to navigate within content-type (with content sorted by category)
  • users to navigate within category (with content sorted by content-type)

(note: MDC is actually implimented as a wiki, two wordpress blogs, and some static pages; as such, all of the sorting options may not be immediately available)

Content Types

Documents are sorted into content-types in order to provide a mechanism for users to sort by the type of thing they are looking for (ie: tips & tricks vs. API reference) which in turn provides supports for various user tasks (ie: "How can I use CSS on my website?" vs. "What parameters does this method take?").

Users should be given a clear indication of the difference in content-types, and be able to use that indication to find the information that they are looking for.

There are four types of content: news & events), articles, reference, and external resources.

  • News & Events
    • announcements about new releases, API changes, working groups, etc
    • event listings for public meetings, conferences, discussions, etc
    • this content is stored within the DevNews weblog
  • Articles
    • commentary or discussion of a technology or tool
    • HOW-TOs, guides, tutorials and worked examples
    • prognostication, musing or any other thought-piece
    • this content is stored within the MDC Wiki
  • Reference Material
    • code documentation (manually or automatically generated)
    • process documentation
    • product documentation (including release notes & roadmaps)
    • developer tool manuals (?)
    • this content is stored within the MDC Wiki
  • External Resources
    • annotated links to trusted external resources
    • this content is provided by WebWatch weblog
  • Samples (when "raw" feature is available -- should be sooner rather than later)
    • ready-to-use examples to explore and/or download & use
    • this content is stored within the MDC Wiki

Category Types

In addition to being of a content type, conent can be part of 1..n categories. Categories offer a mechanism for semantic organization, and multiple categorization provides a mechanism for a flexible ontology.

To further organize things, categories are typed as into category-types which serve as ways to sort content by user audience (ie: newbies vs. experts) and user goal (ie: build an extension vs. learn about the release process). The architecture proposes three category types: reference libraries, technology topics and developer topics.

  • Reference Library
    • contains reference content for a specific topic (ie: SpiderMonkey, Mozilla Development Process)
    • topics can be created for code libraries, processes, tools and products
  • Technology Topics
    • contains article content, external resources, and links to references
    • focuses on a specific technology-based topic (ie: DOM, AJAX)
  • Developer Topics (articles, examples, links/references)
    • contains article content, external resources, and links to references
    • focuses on a non-specific set of processes or methodologies (ie: Accessability, Making an Extention)

Presentation & Implementation

MDC will be implemented as a set of MediaWiki wikis (one per language) and two WordPress weblogs. The MediaWikis will house the primary content (articles, reference material and samples) and the weblogs will be used for content that is being regularly updated (news & events, external resources).

The MediaWiki and weblogs will all be presented as a single information hub, and should have a consistent look & feel. Design elements should be reused so that to a casual user, the difference between wiki and weblog is minimal.

The following mockups and descriptions are meant to give guideance about the presentation of the information architecture, but not neccessarily to influence the final "look-and-feel" of MDC.

Types of Pages

The layout of MDC pages will be determined by the type of content on that page. Below are links to block layouts and descriptions of how the various pages should look. The layout differences should be accomplished by a combination of Wiki skins, WordPress templates and CSS.

Common Elements

All MDC pages will feature some or all of the following common elements (TBD: there may be some implementation limitations here), and although the content will change depending on the page, the elements should always look the same:

Scenarios & Walkthroughs

Some sample scenario walkthroughs to guide the implementation and design of the site.

Mockups & Design Thoughts

General scratch pad, random links of inspiration, etc:

Document Tags and Contributors

 Contributors to this page: Sheppy, Psharma6, Dria, Salem, Nickolay, Beltzner, Callek
 Last updated by: Sheppy,