Skip to content

Onboarding new team members

Patrick Bolger edited this page Jun 27, 2018 · 22 revisions

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

Project Overview

Client Organization: The organization (which we refer to in shorthand as "SHF" is a trade association, based in Sweden, for companies that provide various services to dog owners. Description (adapted from the SHF Brochure):

Sweden's Dog Entrepreneur (SHF) is a industry organization founded under the name IMMI in 1983. Then as now we are here for you - dog owners and dog-service providers. Under one roof we collect dog services of high quality with shared values ​​in a stable ethical philosophy.

To be connected as H-marked entrepreneurs, high standards of ethics are required, as are competence and professionalism.

For you as a dog owner, this means you are assured of quality when dealing with any of our members.

An SHF member (and also a member of the SHF Board), Susanna Larsdotter, is very active in the project and acts in multiple roles, including product owner, client-liaison and developer.

Here is a short presentation regarding the project (from June, 2018).

System Overview

  • Purpose(s) of app

    • The primary purpose is membership management. This includes:
      1. Account creation (become a "user" on the site)
      2. Membership application (app) submission (by a user)
      3. App review and status update (accept, reject, ask for additional info, etc.)
      4. Member payments (paid annually):
        • membership fee
        • "h-branding" fee (to allow the member to use SHF branding elements for their company)
      5. Provide useful information to the member, and how they can get the most from their membership
    • Allow the member to promote their company
      1. The member can create a company description with HTML, graphics, etc., using a WYSWYG editor
    • Allow visitors to find companies suitable to their needs
      1. Company locations are shown on map
      2. Visitor can search for companies by location, service(s) offered, etc.
      3. Search results links go to company page, which includes description, details and contact info.
  • User roles

    • Visitor
    • User (has an account on the site, but is not yet an accepted SHF member)
    • Member
    • Admin

System Architecture

  • The stack is standard Ruby on Rails. We do use javascript in various places in order to improve the user experience. For the latter, we generally follow the "Rails way" of using unobtrusive javascript, with XHR calls back to the server for processing, followed by DOM updates.

    • Database is Postgresql
    • HAML is our primary template language
  • Significant services we use:

    • HIPS.com - this is a Sweden-based payment processor which we use for member payments. (supports invoice payments, credit cards, PayPal, Swish
    • Google geocoding and Google maps
    • Mailgun (email delivery)
    • Dinkurs - this site allows its users to create and manage various types of events (similar to Eventbrite and others). As a convenience to the SHF members, we fetch those events and display some information for each event in the company show page.
  • Some gems we use:

    • ckeditor (an embedded, JS-driven WYSWYG editor)
    • jquery-rails (we mostly use jQuery for javascript)
    • devise (user registration and authentication)
    • will_paginate (tables are paginated with this gem and homegrown javascript mechanism)
    • pundit (user authorization)
    • ransack (DB search)
    • paperclip (file/image management)
    • geocoded (geocodes addresses, interfaces with multiple geocode services
    • HTTParty (develop API to external services)
    • exception_notification (capture request exceptions and issue alert (to Slack, via slack-notifier gem)
    • imgkit - used to produce JPG images for display and download
  • Testing

    • Rspec - Unit and function testing
      • Focus on testing models, mailers, services
      • Controller tests used only if we cannot adequately test using rspec and/or cucumber
      • View tests used only if we cannot adequately test using cucumber alone
    • Cucumber - acceptance / integration testing

We use I18n translations (English and Swedish) for most user-visible text. The English is primarily a convenience to the developer, since all of our users otherwise use Swedish.

Environments

Standing up the dev environment

Team process

  • Scrum meeting Monday and Thursday, 6:30 pm CEST (12:30 PM EDT)
  • Client meeting every two weeks - Monday, 20:00 CEST (2:00 PM EDT)
  • Slack channels
    • #shf-project
    • #shf-project-notify
    • #general - scrum/standup notifications
    • #standup_notifications - scrum/standup notifications
  • Pair programming as needed (someone is stuck, needs more orientation, etc.)

Recommended steps to get oriented

  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. Attend scrums - see "Team process" above for times and notification channels (Slack)
  2. Read some of the articles on the project wiki (hey, you're already here!). We try to document as much as possible.
  3. On Slack, private message your github user name (not password) to a member of the team (ask to find out)- you will be added as a "collaborator" to our Github repo and also to Pivotal Tracker
  4. Review stories on Pivotal Tracker to find stories of interest, and discuss with the team
Clone this wiki locally