# GitLab Setup

Your team will need to create a project space in the University of Waterloo GitLab. You should create a single GitLab project to use together.

# Project Creation

  1. Open the GitLab home page.
  2. Select New Project, then Create Blank Project.
  3. Fill in the form:

Creating a new GitLab project
Creating a new GitLab project

  • Your project should be named Team-999 where 999 is your team number from Learn (see Forming a Team).
  • The project URL should be placed under the Username of one of your team members (e.g. j2avery in the example above).
  • Visibility should remain Private.
  1. Select Create project to proceed.

# Setup Security

It's important that you set permissions on your project. This provides access to those who need it, while preventing others from accessing it!

The person who sets up the project should make the following changes:

  1. Check project visibility.
  • Settings > General > Visibility Level
  • Ensure that it's set to Private.

Gitlab visibility flag
Gitlab visibility flag

  1. Add your teammates to the project with full access.
  • Manage > Members > Invite Members.
  • When they accept, change their role to Maintainer.
  1. Add your TA and the instructor with reduced permissions.
  • Manage > Members > Invite Members.
  • When they accept, change their role to Developer.

# Creating Milestones & Issues

You will need to set up your project to track milestones and issues.

A milestone is simply a deadline that we're working towards. We will track development iterations as sprints—a fixed period of time when we do work on our project. Each sprint concludes with a project release.

  • Under Issues > Milestones, create milestones Sprint 1 through Sprint 4. Make sure to assign starting and ending dates to each of them - see the schedule for dates.

Issues are descriptions of work that have to be done (e.g. a defect to fix, a feature to implement).

  • Under Issues > Labels, create keywords that will help you organize your issues. We usually recommend high, medium, low as useful keywords for setting priorities.
  • Under Issues > List, create any issues i.e. product features, or work to complete. They should be unassigned, and listed as "No milestone," since you haven't scheduled them yet.

# Adding a README file

In your starting project, you should have a README.md file in the root of the source tree. This will be displayed by default when users browse your project.

At the start of the project, Your README.md should contain:

  • Project title (e.g., "Budge-eats")
  • Platform definition (e.g. Android/mobile, or Windows/desktop).
  • Single-sentence description (e.g., "an Uber-eats app for parakeets!")
  • Team members: names and email addresses for everyone.
  • Team number: corresponding to your team number in Learn.

Your README.md is the main landing page for your project. You want to make it easy for users to navigate from here to other parts of your project. As the project progresses, you should link other documents from here.