The Journey of Ithaca College into Drupal 8

  • Slides: 45
Download presentation
The Journey of Ithaca College into Drupal 8 Joel Travieso Four Kitchens drupal: jts

The Journey of Ithaca College into Drupal 8 Joel Travieso Four Kitchens drupal: jts 86 Eric Woods Ithaca College twitter/drupal: woodseowl

Team & Partners Molly Israel, management David Cameron, product Katherine Malcuria, design Eric Woods,

Team & Partners Molly Israel, management David Cameron, product Katherine Malcuria, design Eric Woods, development Brian Bessire, strategic Nellie Wallace, content IC Leadership Joel Travieso, lead Brian Lewis, front end Brandy Jackson, project . . . many others: www. ithaca. edu/crc/blogs/work_in_progress/meet_the_team/

Transforming ithaca. edu

Transforming ithaca. edu

The Problems Outdated and bloated content Problematic information architecture Out of maintenance CMS Custom-built,

The Problems Outdated and bloated content Problematic information architecture Out of maintenance CMS Custom-built, self-hosted infrastructure No process for evolving web presence No product champion for web

The Process Strategic investment from leadership Research and discovery to understand requirements Partnering with

The Process Strategic investment from leadership Research and discovery to understand requirements Partnering with experts Build foundations Learn and grow Research and discovery to guide implementation Iterative design and build Release and iterate

People > Process > Tools

People > Process > Tools

People Development 3 - 4 Developers 1 - 2 Designers Product owner Scrum master

People Development 3 - 4 Developers 1 - 2 Designers Product owner Scrum master

Process: Agile / Scrum Simple Principled Routine Light on formalism Rules Lots of convention

Process: Agile / Scrum Simple Principled Routine Light on formalism Rules Lots of convention Etiquette Daily standup Bi-weekly sprint Communication planning Retrospectives Release Mondays

Tools Communication Zoom Slack Trello Jira Zeplin + Sketch Distributed Automation Git. Hub +

Tools Communication Zoom Slack Trello Jira Zeplin + Sketch Distributed Automation Git. Hub + PRs Circle. CI Local Dev Docker + Drush Node (Php. Storm) Pantheon + Terminus Jira Stories become Git. Hub branches / PRs, stories grouped in weekly releases

Automation

Automation

Git. Hub Workflow STORY S STORY 2 1 subtask 2 release subtask 3 3

Git. Hub Workflow STORY S STORY 2 1 subtask 2 release subtask 3 3 release

Git. Hub Workflow Some useful practices ● 1 -1 correlation with tickets ● Clear

Git. Hub Workflow Some useful practices ● 1 -1 correlation with tickets ● Clear descriptions ● Documented review steps ● Discussion threads ● ● Status labels Require approved review and Circle. CI pass to merge ● Fully linked to tickets, test site, documentation, etc.

Continuous Integration Scheme FEATURE BRANCHES MULTIDEVS DEV RELEASE BRANCH TEST MASTER BRANCH PROD

Continuous Integration Scheme FEATURE BRANCHES MULTIDEVS DEV RELEASE BRANCH TEST MASTER BRANCH PROD

Code flow Commit on. . . MASTER RELEASE FEATURE MULTIDEVS DEV TEST PROD

Code flow Commit on. . . MASTER RELEASE FEATURE MULTIDEVS DEV TEST PROD

Other tools ● Composer for dependency management ● Terminus for remote interaction with Pantheon

Other tools ● Composer for dependency management ● Terminus for remote interaction with Pantheon ● PHP Code. Sniffer and ESLint for PHP/JS linting ● Behat for testing ● Local environment setups and documentation for Docker / local host

Bounded Versatility

Bounded Versatility

Two Products Website Content Management

Two Products Website Content Management

Adaptivity

Adaptivity

Emergence of Systems Design System Atomic Design, Pattern Lab Presentation System Emulsify, Twig Content

Emergence of Systems Design System Atomic Design, Pattern Lab Presentation System Emulsify, Twig Content System Paragraphs Module

Content Components COPE Semantic Content Management Create Once Publish Everywhere Fields Paragraphs Content Types

Content Components COPE Semantic Content Management Create Once Publish Everywhere Fields Paragraphs Content Types

Design System Atomic Design A systematized approach to developing website pattern languages Know your

Design System Atomic Design A systematized approach to developing website pattern languages Know your roots: Read http: //atomicdesign. bradfrost. com/ “As the craft of Web design continues to evolve, we’re recognizing the need to develop thoughtful design systems, rather than creating simple collections of web pages. ”

Atomic design Atoms Organisms > Molecules

Atomic design Atoms Organisms > Molecules

Patterns with People Workflow Tools Gather the right people Sketch + Zeplin Find and

Patterns with People Workflow Tools Gather the right people Sketch + Zeplin Find and share patterns Pattern Lab / Emulsify Build things Twig Iterate Paragraphs module

A Pattern Development: Design

A Pattern Development: Design

Tools: Pattern Lab View atomic design components http: //patternlab. io See components interact Test

Tools: Pattern Lab View atomic design components http: //patternlab. io See components interact Test responsiveness of design Easily iterate on designs “Pattern Lab helps you build thoughtful, patterndriven user interfaces using atomic design principles. ”

A Pattern Development: Patterns Molecule Atom

A Pattern Development: Patterns Molecule Atom

A Pattern Development: Patterns

A Pattern Development: Patterns

Tools: Paragraphs Module Componentize content types https: //www. drupal. org/project/paragraphs

Tools: Paragraphs Module Componentize content types https: //www. drupal. org/project/paragraphs

A Pattern Development: Paragraphs Content type Paragraph type

A Pattern Development: Paragraphs Content type Paragraph type

Tools: Emulsify Theme starter kit Simple: `npm start` Fast: Browser sync http: //github. com/fourkitchens/emulsify

Tools: Emulsify Theme starter kit Simple: `npm start` Fast: Browser sync http: //github. com/fourkitchens/emulsify “Component-driven prototyping tool using Pattern Lab v 2 automated via Gulp/NPM. Also serves as a starterkit Drupal 8 theme. ”

A Pattern Development: Twig + Emulsify Drupal Template Emulsify Pattern

A Pattern Development: Twig + Emulsify Drupal Template Emulsify Pattern

Patterns over Time Living style guide Refactoring to patterns Refinement

Patterns over Time Living style guide Refactoring to patterns Refinement

Governance

Governance

Federated Governance Sections (ithaca. edu/xxx) Academics Resources Topics (ithaca. edu/xxx/xxx) About Sites (ithaca. edu/xxx)

Federated Governance Sections (ithaca. edu/xxx) Academics Resources Topics (ithaca. edu/xxx/xxx) About Sites (ithaca. edu/xxx) Academics Resources About Business School Site Human Resources Site About Site Park School Site Housing Site Diversity Site Music School Site Health & Wellness Site People Site HSHP School Site Library Site About Section About Site Diversity Site Visit Topic Action Items Topic History Topic Campus Climate Survey Topic etc. Pages (ithaca. edu/xxx/xxx) About Site History Topic H&S School Site Extended Study Site Finance Site Years of Challenge Page On The Move Page Fitness Center Site etc.

Scenario SECTION SITE Each level has: ● Members TOPIC PAGE SUBPAGE www. ithaca. com/section/site/topic/page/subpage

Scenario SECTION SITE Each level has: ● Members TOPIC PAGE SUBPAGE www. ithaca. com/section/site/topic/page/subpage ● Roles ● Content

The group module ● Close to a full release for Drupal 8, while Organic

The group module ● Close to a full release for Drupal 8, while Organic Groups not yet stable ● A group, as a custom entity: ○ Contain other entities (including other groups) ○ Has members ○ Has internal permissions ○ Has internal roles ○ Can be of a particular Group type and have particular properties https: //www. drupal. org/project/group

Site Hierarchy PARAGRAPH TYPES SECTION (GROUP TYPE) Section Content SITE (GROUP TYPE) Section Content

Site Hierarchy PARAGRAPH TYPES SECTION (GROUP TYPE) Section Content SITE (GROUP TYPE) Section Content TOPIC (GROUP TYPE) Section Content SECTION LP (CONTENT TYPE) SITE LP (CONTENT TYPE) TOPIC LP (CONTENT TYPE) PAGE (CONTENT TYPE) SUBPAGE (CONTENT TYPE)

Legacy Content

Legacy Content

Content Migration LEGACY HOLDING SITE WWW Moderation 1. 2. 3. 4. 5. 6. Migration

Content Migration LEGACY HOLDING SITE WWW Moderation 1. 2. 3. 4. 5. 6. Migration Manager performs migration Legacy - Holding of Topic X Migration Manager assigns Topic Manager role for Topic X Manager names other Topic X Members perform content moderation on Topic X Manager informs Migration Manager that Topic X is ready Migration Manager performs migration Holding - Production of Topic X

Indexing legacy content LEGACY CRAWLER CSV FILE MIGRATION WWW 33 K LEGACY CONTENT ●

Indexing legacy content LEGACY CRAWLER CSV FILE MIGRATION WWW 33 K LEGACY CONTENT ● Title ● Body ● URL

Redirecting to legacy LEGACY CONTENT ● Title ● Body ● URL Redirect to original

Redirecting to legacy LEGACY CONTENT ● Title ● Body ● URL Redirect to original content page LEGACY

Future

Future

Release, Review, Revise, Repeat Internal Test Now MVP Launch Winter Migrations 2018 https: //www.

Release, Review, Revise, Repeat Internal Test Now MVP Launch Winter Migrations 2018 https: //www. ithaca. edu/crc/blogs/work_in_progress

Thank you! Joel Travieso Four Kitchens drupal: jts 86 Eric Woods Ithaca College twitter/drupal:

Thank you! Joel Travieso Four Kitchens drupal: jts 86 Eric Woods Ithaca College twitter/drupal: woodseowl https: //www. ithaca. edu/crc/blogs/work_in_progress

Title Heading Text

Title Heading Text