InsightUBC Project

Violating the No Copying Policy could result in a 0 on your project grade, or your course grade will be capped at 50%

Overall

The project is a single, cumulative project, that progresses over the semester. At regular intervals there are submission checkpoints where a "client" checks your progress. The "client"  is AutoTest, an autograder who provides feedback during development and grades your project at deadlines. There are 4 checkpoints: C0, C1, C2 and C3.

Teams

Checkpoint 0 is completed individually and Checkpoints 1, 2 and 3 are completed in pairs. 

You need a partner by the end of your first lab after the Checkpoint 0 deadline. If you don't find a partner during Checkpoint 0, TAs will help you find a partner during the first lab after the Checkpoint 0 deadline.

There will be no teammate swaps. Teams can only be split in cases of non-academic misconduct. 

If you are in a situation where your teammate is not pulling their weight, we deal with that through grade adjustments.

Project Deadlines

Project Deadlines are available on the Schedule page and are firm; unfortunately there can be no extensions.

AutoTest wait times increase dramatically as checkpoint deadlines approach. Do not leave submission to the last minute. 

Grading

Grading is outlined on the Project Grading page.

Labs & Office Hours

The schedule is on the Labs and Office Hours page. We use a queue system for Office Hours and you can sign up for the queue here.

During Checkpoint 0, all Labs will act like Office Hours. For Checkpoints 1-3, Labs will be mandatory and you and your partner will meet with your TA to discuss progress on the project and any issues you come across. 

Weekly Reports

During every week in Checkpoints 1-3 you will fill out a weekly report that needs to be submitted 24 hours before your lab; the link can be found in the current deliverable.

insightUBC Overview

UBC is a big place, and involves a large number of people doing a variety of tasks. The goal of this project is to enable effective querying of historical data regarding the university's sections and rooms. 

This will be a full stack web development project split into four sprints (or checkpoints). In the first three sprints, you will build a backend to manage (add, remove and list) datasets and to query datasets. In the final sprint, you will build a frontend for users to interact with your query engine.

[Checkpoint 0]: You will be given an empty repository and you will need to bootstrap the project. Next you will develop a test suite for the backend. 

[Checkpoint 1 & 2]: Develop your backend so that datasets can be managed and queried. The query language is a domain specific language described by an EBNF.

[Checkpoint 3]: Design and develop your frontend so users can interact with your backend.

How the project is split into the four checkpoints

Time Commitment

The project is an integral part of this course. The project will be difficult and time consuming. Projects will be completed in pairs (everyone must have a partner, and you must work with the same partner for the duration of the term). Your partner needs to be in the same lab section as you. The project will proceed in 4 x 2-4 week sprints; the requirements for each sprint is detailed in a deliverable document. 

You should expect the project to take ~6 hours / week / person (13 weeks * 2 people * 6 hours = 156 hours). 

It is extremely important you not leave project deliverables until the last moment. It is impossible to stress strongly enough how important this is; 36h over three weeks is no problem, but over a weekend is impossible. These time estimates are based on effective effort, if you are multitasking or just randomly trying to cobble something together without a plan or tests, the project may take much longer.

Self Learning

The project will rely heavily on self-learning. The course content is necessarily broad to provide coverage that will be applicable to most software development projects. It is important to remember that the project is a single software project instance that will utilize only a subset of the in-class material; the lectures will not serve as a tutorial for the project, it is expected that you will have to use your own creativity to reason about the project requirements, design a solution, and build and validate it yourself.