The Client

Jobs for the Future (JFF) is a national nonprofit that works to ensure educational and economic opportunity for all. JFF develops innovative career pathways, educational resources, and public policies that increase college readiness and career success in order to build a higher skilled workforce. With over 30 years of experience, JFF is the national leader in bridging education and the workforce to increase mobility and strengthen the economy.

The Pathways to Prosperity (P2P) Network — a collaboration of states and regions, Jobs for the Future, and the Harvard Graduate School of Education — initiative aims to ensure that more youth complete high school, attain postsecondary credentials with currency in the labor market, and launch careers while leaving open the prospect of further education.

The Organization’s Objectives and Goals:

To help achieve their overarching mission, JFF wanted to launch a community website for the P2P Network that would add value to the network’s diverse group of member stakeholders, which include:

  • K-12 education,
  • Community colleges,
  • Business and industry employers,
  • Chambers of Commerce, and employer associations,
  • The general workforce,
  • Economic development agencies,
  • State agencies (Departments of Education, higher education systems, and Departments of Labor)

Since the P2P Network’s member stakeholders are spread across 12 states in the continental United States, JFF needed to build a community website where member stakeholders (who pay a fee to join the network) could stay connected and ask questions, share resources, stories, and experiences and insights. This website would also need to serve as a space where members could continue working towards designing and implementing better-integrated career pathway programs for students. In addition, the website needed to be both attractive and functional.

Jobs for the Future, Pathways to Prosperity Home Feature
Why Drupal was chosen: 

Jobs for the Future uses Drupal for some of their other website properties, and they wanted to be able to take the new system we created and easily integrate it with other websites at the organization.

Plus, Drupal’s scaling capabilities and flexibility made it a perfect fit.

Describe the project (goals, requirements and outcome): 

Together, JFF and Cheeky Monkey Media identified two primary goals for the website and outlined a series of clearly defined deliverables.

Goal # 1

To provide information and resources to support the work of Network members.

Deliverables:

  • Visually appealing, information rich responsive design that quickly and easily provides access to the latest and greatest articles, information and discussions taking place on the website/portal regardless of what kind of device the user is using.
  • A resource repository that provides members access to downloadable PDFs and Microsoft Office documents, videos, and links to external sites. JFF site administrators need to be able to manage this repository easily and efficiently.
  • A blog that will be used to highlight the work members are doing and the lessons they’ve learned, as well as providing news and information on events, and highlighting new content on the website.
  • A community forum where users can post questions or share success stories.
  • An events page or calendar that lists events of interest for members.
  • An effective search feature where members can easily find the information and resources that will help them the most.

Goal # 2

To serve as a platform for connecting members with one another.

Deliverables:

  • A blog that allows for comments and feedback.
  • A community forum where users can provide feedback on posts and have collaborative discussions towards solving issues and challenges.
  • A directory of network members that provides full contact information and geographic location.

The Results

The project was completed on time and according to budget.

And, although the client is still in the process of gathering their metrics, people at the organization have indicated that they are impressed with the site and other teams are interested in having similar websites created. Pathways to Prosperity has also received excellent feedback from users who say that the site is exactly what they needed that lets them learn from other members.

On the agency side, the biggest “Wow” we received on this project was how pleasantly surprised our client was with how easy it was to work with us remotely. JFF is based out of Boston, MA (USA) and Cheeky Monkey is based out of Kelowna, BC (Canada). East coast meets West coast. Initially, JFF was concerned about our time zone differences and the vast miles in between, but we quickly laid those fears to rest.

Technical specifications

Drupal version: 
Drupal 7.x
Why these modules/theme/distribution were chosen: 

We started this project with the base set of tools that we use on lots of projects: a responsive theme based on Zurb Foundation, google fonts, and a mix of front end tools like require.js, intention.js, and underscore.js. Some of the contributed modules we took advantage of were: Views, Panels, Calendar, Message stack, Search API, Twitter API, Geocoder, and Geofield.

For the member forum, we put together a few contributed pieces that gave us a nice section of content where users can post new topics, respond to topics, bookmark topics, and subscribe to updates on topics. They can also @mention other users in the member database, search just the forum, and can create unique kinds of content like polls.

We also sectioned off:

  • A couple blogs (1 public, and 1 private), mainly built on the article content type,
  • An events section that uses a calendar view and an event content type,
  • A member view that displays members on a map, and
  • A resources area that also uses views and a resource content type, and has a bit of taxonomy attached to it to help organize and search them more effectively.

We utilized multiple search API indexes (a total of 5) for the range of different places that are searchable within the site and that are public vs private. In addition, we have a general search and more specific resource, forum, and member search indexes as well as a public ‘PFPS’ index that is used solely for certain types of resources available to the public.

The last bit of work completed for this project was developing a Single Sign On System that would allow current JFF users on other JFF properties as well as new members to all authenticate properly from our new Pathways to Prosperity site and other legacy properties.

We decided to use a Central Authentication Service (CAS) and employed the CAS contributed module as the backbone of our work.

For this feature, the client wished to make the CAS authentication be a bit more hidden and not specifically show the user that they were logging in on another domain when they logged in. So, we customized how CAS was working and used the Services module to create endpoints where we could do some of the user creation, lookups, and updates through the backend.

Basically, this means that instead of the user getting sent to a different site to log in, and then back again, and receiving a bunch of different messages (if they were entering Pathways to Prosperity from one of JFF’s other web properties), they just got a redirect message, but it doesn’t look and feel like they are leaving the site. All of the underlying things like registration, forgot password links, updating user information all happens behind the scenes.

Share any challenges and how you resolved them.

The Resource Repository and the Search Function

Originally the resource repository filter was going to be faceted search, but this didn’t allow us to create a very good user experience or for the hierarchy of the terms to be filtered the way the client wanted. So, we switched our idea and decided to use an exposed filter form that allows you to pick all the terms the user wants to apply and add the search term before the user clicks an apply button. We also added an open/close button so the user can see the underlying terms beneath a term without selecting that parent term. For mobile, this whole filter area was collapsed to save space but has the same functionality.

In terms of the global search, we wanted to make sure the user knew what they were searching so they weren’t confused when they were on the blog, in the resources area, or in the forum. Our solution was to provide a select element next to the search input to let them choose whether they were searching for all the content or just a type of content. This lets the user see exactly what they are going to search before they hit the submit button.

The Forum

The forum was very much an unknown as to how it would work when going into the project. We ended up giving the clients a few examples of how other forums worked and came up with a list of features that they could say yes or no to (on what they thought was most important to them in the final version). We then came up with a plan and design for how to present those features and dove into developing the forum.

The Sub Menu

The submenu was also difficult, particularly because it had to take into consideration whether the user was logged in or anonymous and which project they were exploring and then update the menu appropriately.

This was made more challenging because we had to think about the main menu and how we would show the sub menu items for the logged in Network menu vs the non-logged in PFPS menu and the About item, etc. We ended up creating a new submenu bar that would quickly indicate first which section the user was in (Network or PFPS) and would also give the user the appropriate submenu and the appropriate search for that section.

The Single Sign-On (SSO)

The SSO work was definitely a challenge because, to begin with, we hadn’t used the CAS authentication before. Second, after realizing that the client wanted to hide the SSO authentication process so they didn’t confuse the end user with unnecessary redirects, we had to do some brainstorming, research and tests to come up with a solution that fully took into account all the different parts of authenticating, registering, updating, requesting forgot password links, and a myriad of custom items related to how PTOP members would be blocked initially for approval and other users would not, etc.
In the end, we created a fairly unique system that drupal and non-drupal sites can all connect to with a few forms and API calls on each client’s end.

Community contributions: 

We are currently working on creating a contributed module for our SSO work.

Organizations involved: 
Project team: 

AMy Fink - Project Manager
John Lutz - Developer
Shabana Navas - Developer
Yan Yong - Developer
Gabriel Comeau - Developer
Chris Arlidge - Design

Sectors: 
Education