Skip to content

Onboarding new team members

João Pereira edited this page Jun 16, 2018 · 15 revisions

This is an outline of useful material to review with a new team member.

Project Overview

Client Organization: This is a "jobs agency" called MET|PLUS, based in Detroit, Michigan. It is non-profit and its mission it help job seekers get jobs. This includes providing various types of assistance, including job training, guidance, and other services. Description:

Michigan Employment & Training Plus, (MET|PLUS) is a 501(c)(3) Vocational Training non-profit organization that strives to assist Michigan job seekers with invaluable training and job development that will put them on a career path to success. Our focus is helping dedicated job seekers with free career information, job insight, skill building and resources needed to effectively help them join the workforce and provide a more fruitful life for them and their families.

A good mission statement for MET|PLUS would be this:

We want to contribute our knowledge and talents to the rebuilding of Michigan's neglected and damaged communities with various MET|PLUS projects.

The agency owner (Chet) has approached Agile Ventures and requested help in build a SaaS app that will help manage many activities involved in achieving this mission. We have been told that there is no known software package available that is tuned to the needs of this kind of jobs agency.

Client representative: Chet is tech-savvy and wants a lot of features, but is also patient with us and understands that most of us on the team are learning and doing this for the first time. As such, this is a great project for both experienced and beginning developers.

System Overview

  • Purpose of SaaS app
    • Agency people can manage many activites associated with helping job seekers and companies find each other
    • Job Seeker can:
      1. Register
      2. See and apply to Jobs
      3. Get linked to a Job Developer
      4. Get linked to a Case Manager
    • User roles
      • Agency People roles
        1. Job Developer
        2. Case Manager
        3. Agency Admin
      • Company People roles
        1. Company Contact (e.g., HR person)
        2. Company Admin
      • Job seekers

System Architecture

  • http://www.agileventures.org/projects/metplus/documents/project-overview-c040cc60-ceb3-4da0-b88e-50eec728aa17
    • Note that the codebase is very diverse and presents many opportunities for developer involvement - you can develop in Ruby (RoR), javascript, HTML/CSS/Bootstrap, Java, etc.
  • Significant gems / services
    • jquery-rails (we use jQuery for javascript)
    • devise (user registration and authentication)
    • will_paginate (tables are paginated with this gem and homegrown javascript mechanism)
    • pundit (user authorization - very limited implementation to-date)
    • active_record-acts_as (allows use of 'User' model as inherited model for parent models) e.g. AgencyPerson, CompanyPerson, JobSeeker models all inherit from User model
    • cocoon (easily manage multiple associated records in forms (for associations that include 'accepts_nested_attributes_for'
    • ransack (job search)
    • pusher (Ruby interface to Pusher service)
    • Pusher.com (publish/subscribe service - same functionality as "ActionCable" in Rails 5) ( https://pusher.com )

Environments

Status

Demos

Standing up the dev environment

Team process

  • Scrum meeting Monday - Thursday, 2:00 PM EST
  • Scrum meeting Monday, Wednesday and Friday, 6:30 AM EST (oriented towards team members for whom the 2:00 PM scrum is not viable)
  • Slack channels
    • #metplus
    • #metplus-notify
    • #general - scrum/standup notifications
    • #standup_notifications - scrum/standup notifications
  • PP as needed (someone is stuck, needs more orientation, etc.)
  • Client meeting every two weeks - Saturday, 10:00 AM EST

Recommended steps to get oriented

  1. Review Agile Ventures project pages, especially
  • 'About' description
  • Documents > Project overview
  • Documents > Client meetings (scan the latest 1 or 2 docs to get a flavor)
  • Documents > Scrum > MVP Planning (list of required features for release 1 - green indicates complete)
  • Documents > System Behavior and Design (quick scan to see what's in here .... some of our design considerations are here and others in the project wiki (Github) (the wiki is preferred going forward))
  1. Stand up the application on your machine
  • Review the code directories to get a feel for where everything is (standard Rails architecture).
  • Scan some code - app code, javascript, cucumber, rspec
  • Review DB schema (to get a feel - no need to absorb detail)
  1. Run through a few of the demos.
  • Note that the login credentials for various roles are at the bottom of this page
  1. Attend standups - see "Team process" above for times and notification channels (Slack)
  2. On Slack, private message your github user name (not password) to responsible person - you will be added as a "collaborator" to our Github repo
  3. Review stories on Waffle to find stories of interest, and discuss with the team

Seeded login accounts

Role Email Password
Agency Admin [email protected] qwerty123
Agency Admin Staging [email protected] qwerty123
Job Developer [email protected] qwerty123
Case Manager [email protected] qwerty123
Job Developer and Case Manager [email protected] qwerty123
Company Admin (Widgets Inc.) [email protected] qwerty123
Company Contact (Widgets Inc.) [email protected] qwerty123
Job Seeker [email protected] qwerty123