building, collaborating and scaling drupal distributions for federated organizations
TRANSCRIPT
Building, Collaborating and Scaling Drupal Distributions for Federated Organizations
Alex Schedrov Team Lead, Software Architect at FFW Craig Paulnock Assoc. VP of Digital Product, YMCA of the Greater Twin Cities John Kennedy Product Manager, Acquia
#openy
ALEX SCHEDROVTeam Lead, Software Architect
I’m from Ukraine.
9 years in web development.
I dream about own music band 🎸
http://dgo.to/@sanchiz
http://fb.me/schedrov
http://sanchiz.net/en
CRAIG PAULNOCKAssociate VP of Digital Product
and Innovation
20 years WebDev, PM, Prod.I’m daydreaming about snowboarding right now🏂
http://dgo.to/@cpaulnock
https://linkedin.com/in/craigpaulnock/
JOHN KENNEDYOpen Source Product Manager
I’m from Australia.
15 years in Cloud & Open SourceI dance West Cost Swing 🕺
http://dgo.to/@johnkennedy
https://www.linkedin.com/in/johnakennedy/
https://twitter.com/CommerceJohn
CONTINUATION
http://bit.ly/openy-baltimore-2017
DrupalCon Baltimore 2017 session about Open Y distribution where we examine how we are leveraging open source, Drupal 8 with one of the largest federated non-profit organization in the world, the YMCA.
United States
874 Associations
2,700 locations
20 M Members
Worldwide
130 Countries
11,000 locations
58 M Participants
What is OpenY?
A philosophy that collaboration drives
innovation and impact
A community of YMCAs and technology
Partners
An open-source platform for marketing, ecommerce
and digital products
EVALUATE OPEN YSANDBOX.OPENYMCA.ORG
Username: admin Password: openy
The sandbox is the fastest and most convenient way to experience Open Y. All changes are reset every two hours.
We will update Sandbox with the latest Open Y stable release.
CORE TEAMThe core team consists of Y team members who are responsible for the Open Y distribution, maintenance and roadmap.
This team is tasked with the goal of ensuring Open Y meets the needs of the associations and the people we serve.
Acceleration Funding
Community and volunteers
YMCA of Greater Houston
YMCA of Greater Seattle
YMCA of Greater Twin Cities
Other Committed YMCAs
HOW OPEN Y IS BUILT
EXAMPLE FEATURE
User stories and requirements are
reviewed by Open Y core team
Personal Training on ymcamn.org
Feature is Decoupled
Submitted as “Pull Request”
Feature is reviewed by Open Y core
team
Feature is merged into the Open Y codebase
EXAMPLE USER STORY
As a member of the YMCA, I will be able to purchase personal training packages from the website so I can attend a training session.
WHY?What is the expected functionality? What should the user be able to do?
Who is the targeted audience?
What is the significance of this, what does the given feature or functionality achieve?
A user story typically describes a business requirement and consists of 3 parts:
WHO?WHAT?
composer create-project ymcatwincities/openy-project MY_PROJECT --no-interaction --no-dev
INSTALLATIONLatest stable
composer create-project ymcatwincities/openy-project MY_PROJECT --no-interaction --no-dev
composer create-project ymcatwincities/openy-project:8.1.x-development-dev MY_PROJECT --no-interaction --no-dev
INSTALLATIONLatest stable
Latest development
composer create-project ymcatwincities/openy-project MY_PROJECT --no-interaction --no-dev
composer create-project ymcatwincities/openy-project:8.1.x-development-dev MY_PROJECT --no-interaction --no-dev
INSTALLATIONLatest stable
Latest development
cibox.tools docksal.io
Development environment
*github.com/acquia/blt* - not part of OpenY
composer create-project ymcatwincities/openy-project MY_PROJECT --no-interaction --no-dev
composer create-project ymcatwincities/openy-project:8.1.x-development-dev MY_PROJECT --no-interaction --no-dev
INSTALLATIONLatest stable
Latest development
cibox.tools docksal.io
Development environment
*github.com/acquia/blt* - not part of OpenY
PROJECTgithub.com/ymcatwincities/openy *bit.ly/openy-github
Installation profile and all OpenY features.
github.com/ymcatwincities/openy-project *bit.ly/openy-project-github
Composer project(wrapper) for easy installation process.
PROGRAMS STRUCTURE
Customers can explore all available programs and categories provided by the Y.
sandbox.openymca.org/programs/swimming
MEMBERSHIPMembership calculator - page where customers and potential members can explore all available membership types and proceed with checkout.
sandbox.openymca.org/join
LOCATIONSLocations finder - place where customers can find all branches, camps and offsite locations.
Contain various filters that allow to narrow down search results.
sandbox.openymca.org/locations
Branch page itself contains all necessary information about branch, such as branch hours, address, phone, latest blog posts and etc.
BRANCHESsandbox.openymca.org/locations/east-ymca
SCHEDULESSchedules page provides easy and quick access to the timetable of classes and sessions.
This page also provides quick access to the registration and main information about classes.
sandbox.openymca.org/schedules
Content
Landing Page
Y structure and schedule Locations
Membership
Example: Homepage, Schedule, About
Used for adding different pages to the websites that will display Open Y components.
Blog Post
Blog posts are used to add content to the webiste, like news, stories and updates.
Alert
Alerts are used to add very important messages to the website that should be prominent.
Program
Category
Activity
Class
Session
Example: Swimming, ChildCare, Kids and Family, Health & Fitness
Example: Drop-In Swim, Swim Lessons, Personal Training
Example: Swim Lesson - Adult, Small Group Training - Youth
Example: Small Group Training - Yoga, Swim Team - Beginning
Example: Lap Swim(every Monday at 9:00AM)
Branch
Camp
Facility (offsite location)
Example: West YMCA, Downtown YMCA, White Bear Area
Example: Day Camp, Family Camp, Summer Camp
Example: Bear Creek Elementary, Cottage Lake Park
MembershipExample: Family, Couple, Youth, Adult, Senior
USER GUIDECurrent documentation is at GitHub.
The code comes with a Guided Tour feature that will help to introduce people to Open Y administration.
langcode: en status: true dependencies: module: - menu_ui id: openy-menu-overview label: 'OpenY Menu Overview' module: openy_menu routes: - route_name: entity.menu.collection tips: main-navigation: id: main-navigation plugin: text label: 'Main Navigation Block' body: 'This Navigation Block is what appears in the header, or "top" of your page. This is where you have all of the links on your site for pages like Locations or Schedules. This is the block we will edit later to add or make changes to the main navigation on your Open Y site.' weight: 2 attributes: data-class: 'menu-label:contains("Main navigation")'
github.com/ymcatwincities/openy/blob/8.x-1.x/modules/openy_features/openy_menu/config/optional/tour.tour.openy-menu-overview.yml
DEMO CONTENTUsing Migrate module and «embedded_data» plugin we generate demo content from YAML files.
Moreover it may be removed any time (migrate rollback).
THEMEThe included theme, called Rose, currently comes with three color pre-sets based on YMCA branding standards and can be customized using Drupal Core module - Color.
In-place documentation in the CMS that will walk user through User Interface and explain basics.
In-place docs1.
In-place documentation in the CMS that will walk user through User Interface and explain basics.
In-place docs1.
Video/text tutorials that give customers understanding of how to configure Open Y, setup various features and use distribution.
Tutorials2.
Installation Wizard3.
Installation wizard that should allow customers to setup new Open Y site and a few clicks.
In-place documentation in the CMS that will walk user through User Interface and explain basics.
In-place docs1.
Video/text tutorials that give customers understanding of how to configure Open Y, setup various features and use distribution.
Tutorials2.
Installation Wizard3.
Installation wizard that should allow customers to setup new Open Y site and a few clicks.
Migrations4.
Migrate content from old website withou development effort. In addition tutorials for custom migrations.
In-place documentation in the CMS that will walk user through User Interface and explain basics.
In-place docs1.
Video/text tutorials that give customers understanding of how to configure Open Y, setup various features and use distribution.
Tutorials2.