#
M1: Project 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, and add important project information. Finally, you will submit these details in Learn.
You must complete M0 Forming a Team before you can proceed.
#
GitLab Project Creation
- Open the GitLab home page.
- Select
+
>New project/repository
>Create Blank Project
. - Fill in the form:
- Your project should be named after your team number from Learn (see Forming a Team). e.g.,
Team101-5
orTeam101-5-Social-Calendar-App
. - The project should be placed under the Username of one of your team members (e.g.
j2avery
in the URL example above). - Visibility should remain
Private
.
- 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:
- Check project visibility.
Settings
>General
>Visibility Level
- Ensure that it's set to
Private
.
- Add your teammates to the project with full access.
Manage
>Members
>Invite Members
.- When they accept, change their role to
Maintainer
or higher.
- Add course staff with reduced permissions. Add the list of TAs corresponding to your section and the instructor.
Manage
>Members
>Invite Members
.- When they accept, change their role to
Developer
.
#
Creating Milestones & Labels
You will need to set up your project to track the work that you will do all term. A milestone
is a deadline that you are working towards e.g., a development 'sprint' which ends in a product release. An issue
is a task that you might complete during a sprint. You would usually complete a number of issues each sprint.
To setup your project to manage this data:
- Under
Issues
>Milestones
, create milestonesSprint 1
throughSprint 4
. Make sure to assign starting and ending dates to each of them - see the schedule for dates. - Under
Issues
>Labels
, create keywords that will help you organize your issues. We usually recommend high, medium, low as useful keywords for setting priorities.
In the next milestone, we'll populate the issues with some of the tasks that you expect to perform.
#
Project Documents
#
README file
In your starting project, you should add a README.md
file in the root of the source tree. This will be displayed by default when users browse your project.
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.
Your README.md
should contain:
- Team members: names and email addresses for everyone.
- Team number: corresponding to your team number in Learn.
OPTIONALLY you can also add the following. If you don't know them now, you can add them in your next milestone.
- 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!")
Look at the https://git.uwaterloo.ca/cs346/public/ sample project to get an idea of what your landing page might eventually look like. You are encouraged to use a similar structure, but you are welcome to add additional material as needed.
#
Team Contract
Finally, in addition to the team information in the README, you should have completed a Team Contract.
This should be in the Wiki and linked from the top-level README as Team Contract
.
Minimally, your team contract needs to contain:
- Names and contact information of all team members.
- Agreement on how you will meet in-person e.g., how often, and location. You are expected to in-class at least once per week and you may wish to meet more regularly than that.
- Agreement on how you will communicate e.g., email, Messages, WhatsApp, MS Teams. You need one agreed-up communication channel that everyone will check.
- Agreement on team roles: who is the project lead? Are people taking on design responsibilities?
- Agreement on how the team will make decisions. Major decisions should be made by the team, not an individual. Do you vote? Do you need a majority?
Any other details that you wish to add are up to you. See Teamwork > Team Assembly for Team Contract details.
#
How to submit
Make sure you have registered your team before proceeding with this step!
Submit your GitLab project URL for grading. Login to Learn, navigate to the Submit
> Dropbox
> M1 Project Setup
page, and submit a link to your top-level project page.
GitLab projects must be submitted by 11:59 PM on the listed due date.