This is a project-based course, where teams collectively scope, define, implement and deliver a full-stack application. Over the course of the project, you and your team will:

  • Determine what to build (requirements analysis).
  • Determine what features to implement and how they interact (design).
  • Implement front-end (UI), back-end (databases, cloud services).
  • Write automated tests to ensure quality (testing).
  • Figure out how to package and present your software (deployment).

What are we building?

The specification page details a number of different projects, and provides some guidance on the basic requirements for each project. You and your team must pick one, and then determine (a) how to design and build it, using the specification, (b) who you target audience is, and what other features might be useful, and (c) decide what additional features to add over the term.

What will we be doing?

Review the project activities page for details on how the course is structured. The schedule also provides a weekly guide to what to expect.

Forming teams

Software development is not a solitary activity! You need a variety of people with different skills on your team. Teams should consist of four people, all enrolled in the same section of the course.

You are expected to find teammates and form project teams in the first week of the course 1. Here’s some ideas on how to find team members:

  • Join friends who are taking the course! If you are in different sections, ask the instructor, and they may be able to move you all into the same section.
  • Post in the course forums: we will have a forum thread where you can introduce yourself.
  • If you’re in-class, introduce yourself to people sitting near you.

Look for team members that have similar goals and work habits as you.

  • Do you have the same work schedule? Are you available and willing to work at the same times (e.g. mornings? evenings?)
  • Are you all willing to make the same time and effort commitment to the course? If most of the team wants to put in extra time to get an A+, then you need to make sure that everyone is on-board to do that.
  • Look for complementary skills! Not everyone needs to be a (fill-in-the-blank) programmer. There’s room for a lot of different skills to be applied to your project.
  • Consider how team members may be able to specialize in different areas that match their skills, interests or both!

  1. We will attempt to enrol the correct number of students to meet this requirement. If smaller or larger teams are required, you will to need to get permission and coordinate with the instructor. We will NOT normally authorize team changes past the end of the second week, so if you do not have a team at that point, you may be required to withdraw from the course. ↩︎