(Difference between revisions)
|
|
| Line 69: |
Line 69: |
| | | | |
| | '''Modules''' | | '''Modules''' |
| - |
| |
| | Contributed modules are located in @./sites/all/modules/contrib@. | | Contributed modules are located in @./sites/all/modules/contrib@. |
| | Custom modules are located in @./sites/all/modules/custom@. | | Custom modules are located in @./sites/all/modules/custom@. |
Revision as of 12:19, 29 March 2011
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. 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.
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
5. Backup solution
6. Additional Materials