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.
all lower case
no spaces
no punctuation
words separated by dashes
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
create the vault
assign appropriate members - maybe invite the client as a guest to
it
add the rails master key
Consider how to onboard someone with a blank new machine.
bundler
homebrew
ruby
rbenv
nvm
docker
add to dojo4 github
what else?
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
Create a new
repository
using the kebab-case-slug-name-name that you came up with in
Naming above
Make sure the project is private
do not select any of the checkbox options, we’ll take care of that
when we push to the repo for the first time.
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:
go to their GitHub Organization page and create a new team
https://github.com/orgs/[organization]/new-team
Set dojo4 as the team name - or if they already have a policy on
team names have them use that.
They may want to select a parent team if they already have a team
structure setup.
go to the new Team page and add the dj4 user along with all the
other Dojo4 github users that are to be on the project.
Add the new dojo4 team to the 1 or more repositories that Dojo4
will be working on. Or if its a new project have the client create
the one or more repositories and give the team administrative access
to it.
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.
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
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.
Click on the big green New Client button in the top righthand corner.
Enter the client’s info and save.
As long as there is a client to assign the project to, a new project can be created.
To create a New Project:
Make sure you are logged in to Freshbooks using the Dojo4 login (found in 1Password).
Select Projects from the lefthand sidebar menu.
Select which kind of new project you want to create from the pull down manu on the big green Create New… button in the top righthand corner. Dojo4 tends to do Hourly Projects, instead of Flat Rate Projects.
Enter project info and assign it to a client and save. The format we use for naming projects most usually includes the name of the client and a 1-2 word decription of the project, all in lowercase, and with dashes between words. E.g. lifespark-family-app or heavybit-sanity-site.
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.