The Dojo4 Playbook

A work in progress...

dojo4 on GitHub

Client Onboarding Admin

See Client Onboarding Admin

See also: https://projects.dojo4.com/documents/499

Technical Onboarding

work-in-progress…

Naming

Naming the project is important. The name, or at least a slug of the project name is used across multiple systems (GitHub, Redmine, Freshbooks etc) so it should follow some simple rules.

If a system the project is connected to has a write-once - can’t-change-it field to identify the project, it should be this kebab-case-slug-for-the-project. This slug will be used when Setting up Redmine.

1Password

Consider how to onboard someone with a blank new machine.

GitHub

We use GitHub for our primary source code repository. Depending on the client there could be a couple of different ways to configure this. See GitHub for more dojo4

Project starts in Dojo4 organization

Often a new client will not have a GitHub organization and the project will need to start in the Dojo4 GitHub Organization

Client Already has GitHub Organization

This is the case when the client we are in a contract with already has a GitHub Organization. The steps for the client are as follows:

Redmine

Steps to Setup a New Project

  1. Got to Dojo4 Projects Admin
    • Click on New ProjectFor Name pick a human readable name
      • this is required
    • For Description choose an appropriate paragraph or something from the contract.
    • For Identifier use the slug value you decided on in Naming above
    • Remind yourself to fill out the github link at some point once that is settled. See the GitHub Section above
    • At the bottom of the page under modules make sure all of the following are checked (they should be by default)
      • Issue Tracking
      • Time Tracking
      • News
      • Documents
    • Click on CreateYou’ll now be on the Settings page for the newly created project.
      • In the Members tab click Add new Member and select the @dojo4 group (you can search for it) and check the Team box
      • In the Issue Tracking tab Select the Project Lead from the Default Assignee tab and Save. If there is nothing in the drop down, click back to the main project page, then back to Settings and then pick Issue Tracking again.
  2. Create a group in the members settings to hold all the client Stakeholders that will have redmine accounts. If this is an existing client no need to do this section, although you may need to adjust the group memberships
    • Got https://projects.dojo4.com/groups/new and Create a new group. Name it appropriately for the client.
    • Head back over to the Project you created, and go to Settings → Members and add the new group to the project as Stakeholder role.
    • Invite all the client email addresses to redmine (Corey will normally handle this with onboarding documents and explain remine to them).
    • Once all the clients have their accounts in redmine - add them to the new group you just created

Freshbooks

Create a new project in Freshbooks for every new project we start- this way clients can be invoiced per project. If the project is associated with a new client, a New Client will have to be created in the system before you can create a New Project for that client.

To create a New Client:

As long as there is a client to assign the project to, a new project can be created.

To create a New Project:

Sync Freshbooks and Redmine projects

In order to get paid, the hours we log in Redmine need to be propagated to Freshbooks. This is done automatically through the Redmine Freshbooks Sync plugin.

Project Tooling

Each project is unique, but here are the basic building blocks. We might use some, all or none depending on the project requirements.

Project type

Docker

mutagen, docker-compose, etc

Vue/Nuxt

yarn create nuxt-app <project-name>

Standard utils, Vue filters, patterns, etc? Do we use yarn vs npm?

React/Next

Ruby