Meego Wiki
Views

Application developer site/Documentation

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Team and developers)
(Introduction)
Line 1: Line 1:
= Introduction =
= Introduction =
-
== Design Overview ==
 
-
Unknown
 
-
 
== Team and developers ==
== Team and developers ==
'''Current team:'''
'''Current team:'''

Revision as of 12:03, 29 March 2011

Contents

Introduction

Team and developers

Current team:

  • Teemu Lukkari (production manager)
  • Graham Honeywill (account manager)
  • Quang Pham (drupal developer)
  • Mika Matikainen (concept designer, graphic designer)
  • Ronan MacLaverty (product owner from Nokia)
  • Michael R. Shaverty (Drupal developer and hosting provider from Intel)

Other persons involved before:

  • Mikael Kundert (drupal developer)
  • Andrew Burcin (drupal developer)
  • Jakub Suchy (drupal developer, API docs)

Project managing tools

Project was initially managed in Redmine hosted by Activeark. Redmine's issue tracking was replaced with MeeGo's Bugzilla at http://bugs.meego.com. In Bugzilla, site bugs are categorized under product "developer.meego.com".

Drupal source is managed by using GIT. *Source code is public and should be available at Gitorious*. See link for the repository: http://meego.gitorious.org/meego-web-infrastructure/meego-developer-website

Environment overview

Michael R. Shaver from Intel is responsible for hosting. There is plans to move hosting at Oregon State University (OSU), the status can be followed in bug #12683.

Production and staging environment

Production and staging environment are in the same server. No passwords are used, instead we are using SSH public keys which should be provided to Michael when server access is needed.

Production site is mapped to document root " /home/developer.meego.com/www/developer.meego.com " and uses " dev_meego " database/name. Folder is linked to repository and should contain latest stable snapshot of site.

Staging site is mapped to document root " /home/developer.meego.com/www/dev.developer.meego.com " and uses " dev_dev_mego " database/name. Folder is linked to repository and has latest state of the site.

Development environment

No centralized development environment provided. Development happens locally.

System architectural design

Intel is currently responsible of hosting. The contact person for hosting is *Michael R. Shaver* from Intel.

  • Server works in operating system Nginx
  • Firewall settings are unknown
  • There is no load balancing currently (might possible to need one)
  • Apache2 is used as HTTP server
  • No alternative caching configured
  • MySQL 5.1.41 database
  • PHP 5.2.13

Database architecture

Site uses Drupal's default structure, collation, storage engine.

Staging site is not using shared tables.

Production site is using following database settings:

$db_prefix = array(
  'default'   => '',
  'users'     => 'meego.',
  'authmap'   => 'meego.',
  'openid_associations' => 'meego.',
  'profile_fields'   => 'meego.',
  'profile_values'   => 'meego.',
);

Note! When synchronizing content from production site, you will be required to set node.uid to value 1 and clear cache to ensure availability of content. Nodes doesn't get loaded when user is not available (uids are different in production since we're sharing users table!).

Software architecture

Site is using Drupal's distribution *Pressflow* , because of better performance. Project uses PHPTemplate as template engine.

Modules

Contributed modules are located in @./sites/all/modules/contrib@. Custom modules are located in @./sites/all/modules/custom@. Modified contributed modules are located in @./sites/all/modules/modified-contrib@.

Most of custom modules are generated by Features module, but they might contain also alternative code in .module files made by developers.

Search

Site is using external search indexing from Acquia Network which provides apache solr search index.

Discussion of Alternative Designs

System Interface Description

Detail description of modules (patching / update)

Custom modules

meego_api_reference Includes API page node type and couple variables related to options and path pattern. Generated by features.

meego_base Provides base structure/functionality of the site like node type "page" and its CCK field + alternative content list for content editors and list of related block. Generated by features and added some alternative implementation related to context registry.

meego_community Community related stuff. Node type "event" with CCK fields "event date" and "event link". Generated by features and added some alternative implementation for providing community content from external sources.

> Fully custom module which provides drush command for importing API documentation of MeeGo platform.

  • *meego_guide*

> Contains two node types "guide" and "guide_external" and big set of CCK fields and module dependencies. Generated by features and added some alternative implementation for making a redirect for external guides + view lists for guides.

  • *meego_notes*

> Has node type "note" and few views lists. Generated by features.

  • *meego_search*

> Contains variable settings related to Apache Solr search. Generated by features and contains alternative implementation related to search.

  • *meego_section_head*

> Contains node types "promo", "section_head" and "section_head_view" and large amount of CCK fields and couple views lists. Generated by features.

h2. Contributed modules

  • *Features + Context + Strongarm*

> Features, context and strongarm is used for tracking site structure by code. This makes site structure more easy to change structure between different environments.

  • *Acquia Network Connector modules + Apache Solr*

> Acquia network is used to provide Apache Solr search indexing

  • *Book + BookMadeSimple*

> Book and BookMadeSimple modules are used for keeping guide menu structure separated from other menu links (primary links).

  • *Feeds*

> Feeds is needed to import planet and blog entries from RSS feed

  • *GeSHi*

> Used to provide colored code formatting in code snippets in node bodies

  • *Embedded Media Field*

> Installed for allowing users to add YouTube videos to guides. However, Video Filter is used to add videos into content.

  • *Nodewords*

> Installed to allow content editors edit keywords and description of page.

  • *Automated Logout*

> To prevent user being logged in automatically.

  • *BUEditor*

> BUEditor is used instead of WYSIWYG editors because it's a simple way format text without messing up the HTML code by WYSIWYG editors

  • *Clone module*

> Allows content editors to clone node content.

  • *Diff*

> Installed to allow users see differences between two versions of content.

  • *Global Redirect*

> provides basic cleanup of urls - redirection of alternative aliases, removal of trailing slashes, forces access via clean urls...

  • *Insert*

> Used to put images into node bodies

  • *Job Scheduler*

> Required by feeds for the import of community information, such as blogs / planet

  • *LESS CSS Preprocessor*

> LESS makes CSS styling more easy by allowing several dynamic features. See more information from http://lesscss.org

  • *Menu Block*

> Generates dynamically first level of links under guides section. This block is used in footer.

  • *Menu Firstchild*

> Makes links to main menu which actually links to first child page.

  • *Menu Trails*

> Makes guides and api pages to look like they would be in guide category or reference api sections even if they're not added into menu at all.

  • *Nice Menus*

> Nice Menus is used for main menu which hovers 1st level links and displays 2nd level links below.

  • *Private*

> Allows content to be added by less skilled writers which can be hidden, after edit set to public.

  • *URL Replace Filter*

> Automatically replaces and references in node content fields to the development / staging servers with the live server url.

  • *Video Filter*

> Makes easier to embed YouTube videos inside content.

  • *Query Path*

> _I believe this is unused, was going to be tested for import of forums - andb_

  • *Node Radioactivity*

> Tracks the popularity of guides to promote popular content in guides sections.

  • *Active Tags*

> A cleaner, easier to use interface for adding tags to nodes

  • *External Links*

> Makes external links to be opened in new window and adds an external link icon to indicate link being external.

  • *Plus 1*

> Makes guides to be voted so content editors knows which guides are helping application developers.

Detail description of content structure

Backup solution

Additional Materials

Personal tools