How I converted Mises.org to Web 2.0 (Part 1)

Published Mon, Oct 1 2007 2:39 PM | David V

During the period of late August - mid September 2007, I redesigned the architecture of Mises.org from the ground up from a largely-static "web 1.0" era site to a future-oriented database and user driven "web 2.0 enabled" site.  In the next few posts, I will present a somewhat-technical overview of my changes and share the tools and applications which I created.  I hope that this will help the users and contributors of Mises.org as well as anyone contemplating a similar conversion. 

Part one: Overview 

First, let's look at a high-level overview of my goals, some implementation challenges, and how I resolved them:

Building an online community

Goal: create an online community - including forums, blogs, and live chat

Challenge: Distinguish between approved and professional content and user-contributed content

Solution:

  • Create the community site on a new mises.com domain to complement the existing mises.org site. 
  • By branding the two sites differently, we make it clear which site represents "official" content and which is created by users.
  • Community Server provides blogging and forums, phpFreeChat provides chat functionality.

Goal: create a user profile-management system to tie together the mises.org and mises.com sites.

Challenge: A single integrated authentication system is necessary to tie together the new content-management system behind mises.com with a variety of legacy application mises.org

Solution: Use the built in ASP.Net 2.0 authentication framework to share membership information between sites.

Separating content from presentation

Goal: Allow all content to be presented under any template.  For example, a biography can be dynamically presented in the about, web resources, or publication section depending on context

Challenge:  the site content existed in a variety of web applications and formats.  For example, articles, e-Books, mp3s, store products, PDF's.

Solution:  (Detailed in a future post.)

  1. Migrate text content in static files to the database
  2. Collect metadata from all binary files referenced in the database
  3. Tag all content with the collected metadata.
  4. Assign all content a unique identifier
  5. Dynamically load content-specific controls based on the type of object requested.  For example, video files render a video player, text files show in browser, external URL's redirect.

Sharing and personalizing content

Goal: Create a library of reusable controls which can be used across web applications to present views of various site data

Challenge: There are many different kinds of data - lists of links, books, resources, media, etc.

Solution:  Create a standard set of "Sidebar" controls, and populate them with self-contained user controls which can be reused across all Mises domains.

Goal: Allow all content to be syndicated via RSS

Solution:  Use RSS Toolkit to dynamically generate RSS/podcast feeds based on a variety of parameters. More here and here.

Goal: allow users to tag, save, and share all content on the site

Solution:

  • Tagging: Create a tagging framework which allows users to tag any content.  Make tagged content available within the site as well as via RSS feeds. (Detailed here.)
  • Favorites: Any page can be saved to a list of personalized favorites or sent by email.
  • Social bookmarking: Standard metadata makes social bookmarking easy.

Goal: Enable users to customize the site's content and appearance

Solution

  • Customizable homepage: convert user controls to web parts to allow users to select their preferred data view from a web part catalog. (Detailed in a future post.)
  • Themes: (See below)

Creating the "Web 2.0" look

Goal: Visualize documents from a variety of source and formats via tag clouds

Solution:

  • Aggregate tag clouds, as well as statistics on user-contributed tags can be viewed centrally.
  • As users tag documents, the site creates a "personal tag cloud" for each user
  • To do: Integrate subject-specific tag clouds into the site

Goal: Make navigation more simple and intuitive

Solution: Replace a drop-down menu with dozens of redundant selections with a main menu containing of a few categories and then provide detailed links in section-specific sidebars

Goal: Implement the "Web 2.0" look

Solution: New theme: gradients, large uniform fonts, simple color palette, standard feed icons, rounded content containers.

Goal: Allow customizable user themes.

Solution:

  • Mises.com runs Community Server, which has themes built in. 
  • For Mises.org migrate all formatting to use the ASP.Net 2.0 Themes feature
  • (To do:) allow users to choose their own theme.
Filed under:

Comments

# Rubén said on October 22, 2008 5:35 AM:

Thank you. I am looking forward to seeing many of these changes in action. I have already browsed through the web page enough to notice a few minor shortcomings.