Drupal case study: Behind the scenes of website of University of Tartu

Post on 28-Jan-2015

109 views 2 download

Tags:

description

Story about migrating public website of one of the oldest universities in Europe from proprietary CMS to Drupal 7. Presented by Mekaia (http://mekaia.com) at DrupalCamp Baltics 2012 (http://www.drupalcamp.lv/).

transcript

Migrating from proprietary CMS to Drupal 7

René Lasseron

Behind the scenes University of Tartu

DrupalCamp Baltics 2012

18 emp1 internSince 2000

3 500 emp17 000 studSince 1632

Tallinn

Tartu

19962001

2009

When we started

• 80+ multilingual sites in one proprietary CMS

• Funky navigation scheme

• Fading technology and support

After 6 months

• New live site on Drupal 7

• Main university site in 4 languages

• Fresh graphics and navigation

• 70+ sites still waiting for migration

www.ut.ee

After 12 months

• 6 additional sites migrated

• Less bugs

• 60+ sites still waiting for migration

Scale and scope

• 80+ sites in one Drupal installation

- Each in 4..2 languages- One main site www.ut.ee- Other sites for Faculties, Institutes,

Colleges, other bodies- Takes about two years to migrate

them all after completing fist stage

• 300 daily content editors- 50 editors for main site- 250 for other sites - One central administrator

• Volume- 28 000 nodes on main site- 925 menu items- 20 000 document files in public folder

• Integrations with 8 backend systems

Login

• Username/password against university’s central LDAP, combined with web service

• Estonian ID-card and mobile-ID

User interface

• Most features hidden from daily editors

• Few content types

• Workbench

Few tools and content types

Re-worked tabs

Add new sub-page- Menu and parent menu element gets created automatically

Add different content to the page, even different regions- Creates automatic relations using node reference

Re-worked tabs

Re-worked tabs

Main node, defining the menuChild node, shown via view and node reference

Re-worked tabs

There’s a module for that

Multisite and internalization- Domain Access (vs

multisite)- Internalization- Custom module for

allowing same alias in different sites

- Transliteration

350 modules used

Content editing and organizing- CKeditor with custom

styles- IMCE vs Media- Linkit- Diff and revisions

- Autosave- Content lock- Link checker- Automated logout

Views and layout- Webform with

Clientside validation- Simple ads- Views (31)- Display Suite

- Context (7)- Panel (few)- Menu firstchild

There’s a module for that

Multisite and internalization- Domain Access (vs

multisite)- Internalization- Custom module for

allowing same alias in different sites

- Transliteration

350 modules used

Content editing and organizing- CKeditor with custom

styles- IMCE vs Media- Linkit- Diff and revisions

- Autosave- Content lock- Link checker- Automated logout

Views and layout- Webform with

Clientside validation- Simple ads- Views (31)- Display Suite

- Context (7)- Panel (few)- Menu firstchild

There’s a module for that

Multisite and internalization- Domain Access (vs

multisite)- Internalization- Custom module for

allowing same alias in different sites

- Transliteration

350 modules used

Content editing and organizing- CKeditor with custom

styles- IMCE vs Media- Linkit- Diff and revisions

- Autosave- Content lock- Link checker- Automated logout

Views and layout- Webform with

Clientside validation- Simple ads- Views (31)- Display Suite

- Context (7)- Panel (few)- Menu firstchild

There’s a module for that

Integration- Feeds with many patches- LDAP

350 modules used

Other- Features (13)- Google CSE

Custom modulesTrash

Custom modulesVisually impaired

Custom modulesContent reminder

• Estonian ID-card and mobile-ID support

• Italic titles

• User bulk operations

• Media support for www.uttv.ee

Work in progress on publishing these on drupal.org

Custom modulesOthers

Public interface

• Omega base theme- http://drupal.org/project/omega

• HTML5/CSS3

• 960.gs 12 col grid

• Nice “primary region” feature

• Mobile adaptive

• One theme for main site, sub-themes for sub-sites

• Trying to create mental hierarchy in Drupal

- It’s everywhere around us

• Persisting menus when drilling down on Views

- Menu position http://drupal.org/project/menu_position

• Menu structure based user access

- Main site: 50 editors, 28 000 nodes, 4 languages

- Failed with Workbench Access- Waited for first release of Access

Control Kit

What we struggled withHierarchy and Access control

• Need for one place to manage tens of thousands of files with folder hierarchy and access control

• Media vs elFinder vs IMCE

• IMCE- Existing folder hierarchy- Existing access control- No paging

What we struggled withFile management

What we struggled withDrupal UI with long and deep menus

What we struggled withMigration

Preserve all- Content- Hierarchy and menus- Files

- Users- User’s relation to content- Content ID’s- Aliases

What we struggled withMigration

Automatweb- Highly hierarchical- Hundreds of content/object types- Content often combined

#something# includes. Example:

!!!!!!!!!!!!!!!!

Hello,'visitor

#welcome(text#

Please'download'#file(1#'or'see'#link(3#'or'send'us'some'feedback:

#feedback(form#'

#contacts(table#

!!!!!!!!!!!!!!!!

Deployment and performance

• Development, test and live sites

• Kept in sync using Features, Git

• Separate HTTP and MySQL servers

• Boost module

• HTML and Apache level Yslow and Google Page speed recommendations

Who did it and what’s next

• Professional customer

• Mekaia: 1 Project manager, 2 backend programmers, 1 front-end coder. 7 persons during one year.

• Graphics design: Velvet

• IA: Kristjan Jansen

• Tools such as Git, Asana, Jira, Liquid planner, Harvest, Google Docs, Skype

• Pushing the limits with 60 additional sites

• Contributing to drupal.org

René Lasseron rene@mekaia.com

Niine 11 Tallinn 10414 Estoniahttp://mekaia.com