Meego Wiki
Views

Application developer site/Documentation

From MeeGo wiki
< Application developer site(Difference between revisions)
Jump to: navigation, search
(User design)
(Environment overview)
 
(8 intermediate revisions not shown)
Line 20: Line 20:
== Environment overview ==
== 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.
+
Michael R. Shaver from Intel is responsible for hosting. Developer.meego.com is hosting at Oregon State University (OSU)
'''Production and staging environment'''
'''Production and staging environment'''
Line 26: Line 26:
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 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.
+
Production site is mapped to document root "/data/sites/hthome/developer.meego.com/htdocs" 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.
+
Staging site is mapped to document root "/data/sites/hthome/dev.developer.meego.com/htdocs" and uses " dev_dev_mego " database/name. Folder is linked to repository and has latest state of the site.
'''Development environment'''
'''Development environment'''
Line 204: Line 204:
==Users, Groups & Permission==
==Users, Groups & Permission==
-
'''User design'''
+
'''User design'''<br/ >
Only site administrators can create new user accounts.
Only site administrators can create new user accounts.
-
===Group and Permission design===
+
'''Group and Permission design'''<br/ >
DMC has 4 user groups as following:
DMC has 4 user groups as following:
-
* administrator
+
*'''administrator'''<br/ >Administrators have all permissions on site control
-
> Administrators have all permissions on site control
+
*'''editor'''<br/ >Editors have following permissions: view advanced help popup, view advanced help topic, add content to books, administer book outlines, create new books, show book reorder link, show core Outline links, create guide content, create guide_external content, create promo content, create section_head content, create section_head_view content, delete own guide_external content, edit any guide content, edit any guide_external content, edit any promo content, edit any section_head content, edit any section_head_view content, edit own guide_external content, edit own section_head content, edit own section_head_view content, administer external guides, create note content, create page content, edit any feed_item content, edit any note content, edit any page content, revert revisions, view revisions, access private content, edit private content, mark content as private
-
* editor
+
*'''site manager'''<br/ >Site managers have following permissions: view advanced help popup, view advanced help topic, add content to books, administer book outlines, create new books, show book reorder link, show core Outline links, delete any guide content, delete any promo content, delete any section_head content, delete any section_head_view content, administer external guides, administer menu, administer content types, delete any note content, delete any page content, administer meta tags, create url aliases, access private content, edit private content, mark content as private, access administration pages, access site reports, administer taxonomy, access user profiles, administer permissions, administer users
-
> Editors have following permissions: view advanced help popup, view advanced help topic, add content to books, administer book outlines, create new books, show book reorder link, show core Outline links, create guide content, create guide_external content, create promo content, create section_head content, create section_head_view content, delete own guide_external content, edit any guide content, edit any guide_external content, edit any promo content, edit any section_head content, edit any section_head_view content, edit own guide_external content, edit own section_head content, edit own section_head_view content, administer external guides, create note content, create page content, edit any feed_item content, edit any note content, edit any page content, revert revisions, view revisions, access private content, edit private content, mark content as private
+
*'''user manager'''<br/ >User managers have following permissions: view advanced help popup, view advanced help topic, add content to books, access user profiles, administer permissions, administer users
-
* site manager
+
-
> Site managers have following permissions: view advanced help popup, view advanced help topic, add content to books, administer book outlines, create new books, show book reorder link, show core Outline links, delete any guide content, delete any promo content, delete any section_head content, delete any section_head_view content, administer external guides, administer menu, administer content types, delete any note content, delete any page content, administer meta tags, create url aliases, access private content, edit private content, mark content as private, access administration pages, access site reports, administer taxonomy, access user profiles, administer permissions, administer users
+
-
* user manager
+
-
> User managers have following permissions: view advanced help popup, view advanced help topic, add content to books, access user profiles, administer permissions, administer users
+
-
 
+
-
h2. Login (ssh) - host address
+
 +
==Login (ssh) - host address==
developer.meego.com@otc02.sl.ssgisp.com
developer.meego.com@otc02.sl.ssgisp.com
-
h2. Version control - host address
+
==Version control - host address==
This project is under public GIT repository hosted at gitorious.org. See: http://meego.gitorious.org/meego-web-infrastructure/meego-developer-website
This project is under public GIT repository hosted at gitorious.org. See: http://meego.gitorious.org/meego-web-infrastructure/meego-developer-website
-
h2. Database - host address
+
==Database - host address==
Unknown
Unknown
-
h2. CRON jobs
+
==CRON jobs==
CRON are run by Acquia network.
CRON are run by Acquia network.
-
h2. PHP
+
==PHP==
-
h3. configuration
+
*'''configuration: '''<br/ >Unknown
 +
*'''libraries: '''<br/ >Unknown
-
Unknown
+
==Apache (additional tweaks)==
-
h3. libraries
+
*'''configuration: '''<br/ >Unknown
-
 
+
*'''Allowoverride: '''<br/ >Unknown
-
Unknown
+
*'''Server signature: '''<br/ >Unknon
-
 
+
*'''modules: '''<br/ >Unknown
-
h2. Apache (additional tweaks)
+
-
 
+
-
h3. configuration
+
-
 
+
-
Unknown
+
-
 
+
-
h3. Allowoverride
+
-
 
+
-
Unknown
+
-
 
+
-
h3. Server signature
+
-
 
+
-
Unknown
+
-
 
+
-
h3. modules
+
-
 
+
-
Unknown
+

Latest revision as of 08:42, 6 April 2011

Contents

1. 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. Developer.meego.com is hosting at Oregon State University (OSU)

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 "/data/sites/hthome/developer.meego.com/htdocs" 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 "/data/sites/hthome/dev.developer.meego.com/htdocs" 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.

2. 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.

3. 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.
  • meego_doc
    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.

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.

4. Detail description of content structure

Content types

  • Api page
    The API pages are simple pages, used to display API content
  • Book page
    A book page is a page of content, organized into a collection of related entries collectively known as a book. A book page automatically displays links to adjacent pages, providing a simple navigation system for organizing and reviewing structured content.
  • Event
    All events retrieved from main site by RSS/XML feed.
  • External guide
    Places a teaser into guide sections, allowing to link to external guides.
  • Feed
    Subscribe to RSS or Atom feeds. Creates nodes of the content type "Feed item" from feed content.
  • Feed item
    This content type is being used for automatically aggregated content from feeds.
  • Guide
    Guides include both internal guides and external guides. Internal guides are written by internal users while external guides are other resource references.
  • Note
    Notes are simple pages, used in such places as Developer notes and Release notes. They provide a left hand navigation structure on their list pages.
  • Page
    A page, similar in form to a story, is a simple method for creating and displaying information that rarely changes, such as an "About us" section of a website. By default, a page entry does not allow visitor comments and is not featured on the site's initial home page.
  • Promotional block
    A Promotional block can be used to place a content teaser into a section head or on the home page with different text or images then are found in the content itself.
  • Section head
    The Section head type is used to show a selection of content in a block layout.
  • Section head with lists
    The Section head type is used to show a selection of content in blocks around a dominant content list.

Views

  • content_list
    Enhances the default listing content interface by giving advance filters
  • feeds_community_blogs
    Displays items imported via feeds from the meego.com blog RSS feed.
  • feeds_community_events
    Displays 2 coming up events from meego community
  • feeds_defaults_feed_items
    Show feed items for a feed node. Use together with default importer configuration "Feed".
  • guide_list
    Displays guides by terms (All, Popular and Latest)
  • guide_list_embed
    Short version of guide_list
  • note_navigation
    Provides the sidebar navigation for the notes section
  • Notes
    Displays notes content
  • related
    Displays related items on a specific node
  • sh_list

Blocks

Most of the blocks are handled by Context module which has advanced ways to configure display settings.

  • Apache Solr Search: Filter by content type
    Apache Solr Search engine
  • API Reference
    Displayed when browsing API documentation. Has advanced JS functionality to keep link tree usability.
  • Upcoming events
    Gets displayed at front page. Content is generated by Views module
  • feeds_community_blogs*
  • Search form
    Displayed when listing guides
  • related: Block
    Displayed when viewing a guide
  • ApacheSolr blocks
    Displayed in search results page
  • Nice menu
    Primary links rendered by Nice Menu module. Displayed site wide
  • Search form
    Displayed site wide
  • Primary links
    Displayed in footer region. Content is generated by Menu module
  • Guides (level 1)
    List guide's child menu links in footer region. Generated by Menu Block module
  • Footer links
    Static menu list in located at footer region. Generated by Menu module
  • Footer copywrite
    Contains copy texts at footer region below the links
  • Developer notes
    Contains list of the notes generated by Views
  • Release notes
    Contains list of release notes generated by Views

Taxonomies

  • Guide category (Guide, External guide)
  • Difficulty level (Guide, External guide)
  • Devices (Guide, External guide)
  • Tags (Guide, External guide)
  • MeeGo versions (Guide, External guide)
  • Notes categories (note)

Navigation menus

  • API Reference
    This menu is used to store menu links of MeeGo platform's documentation
  • Footer links
    This menu is used in footer region to provide copywrite links like "Privacy Policy" etc.
  • MeeGo sites*
    This menu is used as a JS drop down menu at header

Themes

  • MeeGo developer is a custom theme which is based on tao theme. Rubik is used as admin theme which also is based on tao theme.

5. Backup solution

Unknown!!!

6. Additional Materials

Third party services

Acquia Network
Site is using Acquia Network to use external search index (Apache Solr). Acquia Network works as CRON runner and monitoring service. Michael R. Shaver is holding currently the Acquia Network account which is the main contact person in terms of Acquia Network subscription.

Google Analytics
Site was having before two GA tracking codes (Activeark's and MeeGo's) but we agreed to use only one (MeeGo's) in condition that Activeark will be able to see the statistics. See bug https://bugs.meego.com/show_bug.cgi?id=13307

Activeark's account email address is google@activeark.com, under account meego.com

Users, Groups & Permission

User design
Only site administrators can create new user accounts.

Group and Permission design

DMC has 4 user groups as following:

  • administrator
    Administrators have all permissions on site control
  • editor
    Editors have following permissions: view advanced help popup, view advanced help topic, add content to books, administer book outlines, create new books, show book reorder link, show core Outline links, create guide content, create guide_external content, create promo content, create section_head content, create section_head_view content, delete own guide_external content, edit any guide content, edit any guide_external content, edit any promo content, edit any section_head content, edit any section_head_view content, edit own guide_external content, edit own section_head content, edit own section_head_view content, administer external guides, create note content, create page content, edit any feed_item content, edit any note content, edit any page content, revert revisions, view revisions, access private content, edit private content, mark content as private
  • site manager
    Site managers have following permissions: view advanced help popup, view advanced help topic, add content to books, administer book outlines, create new books, show book reorder link, show core Outline links, delete any guide content, delete any promo content, delete any section_head content, delete any section_head_view content, administer external guides, administer menu, administer content types, delete any note content, delete any page content, administer meta tags, create url aliases, access private content, edit private content, mark content as private, access administration pages, access site reports, administer taxonomy, access user profiles, administer permissions, administer users
  • user manager
    User managers have following permissions: view advanced help popup, view advanced help topic, add content to books, access user profiles, administer permissions, administer users

Login (ssh) - host address

developer.meego.com@otc02.sl.ssgisp.com

Version control - host address

This project is under public GIT repository hosted at gitorious.org. See: http://meego.gitorious.org/meego-web-infrastructure/meego-developer-website

Database - host address

Unknown

CRON jobs

CRON are run by Acquia network.

PHP

  • configuration:
    Unknown
  • libraries:
    Unknown

Apache (additional tweaks)

  • configuration:
    Unknown
  • Allowoverride:
    Unknown
  • Server signature:
    Unknon
  • modules:
    Unknown
Personal tools