CPSC 310 Assignments and Project
Main Page
The project is worth 35% of your mark in CPSC 310. You will work in teams of 3, 4, or 5. The teams will be determined soon.
Problem Statement
You will be building data-intensive web applications using the freely-available datasets from Data BC and/or Data Vancouver (see links below).
The project deliverables are intentionally vague: it is up to you and your team to choose a dataset and load it in to your application, and display it.
The TAs will be your onsite Customers and can give you feedback with respect to ambition and importance. However, you must meet the following constraints:
- your user stories must be contained in the Epic categories below.
- the dataset(s) must be available on the Data BC or Data Vancouver websites.
- the data must be translated on the server-side of your application. This means you must make a REST request to the DATABC server, and not simply load the data in by hand.
- the web application must display the data in a tabular format and a geographic format. The Google Maps API is highly recommended (but not mandatory) for the geographic format.
- your mark will be affected by the ambition and follow-through of your project. If you do a simple project exceptionally well, you might get an A. If you do an ambitious project poorly, you will get a low mark.
Epics
The following are the rough categories of user story we will work with:
- Import and clean data - access the data on the remote server, and translate it into a format useful for manipulation.
- Storage - the data should persist once uploaded. Assume that anyone can upload datasets.
- Data display - display the imported data in a tabular and a geographic format to verify it imported.
- Social graph - allow users to comment on and share data.
- User management - restrict access to parts of the data to certain classes of user.
Educational Objectives
During this project you will:
- learn how to leverage APIs and cloud computing infrastructure.
- work on an inter-disciplinary software development project.
- work with legacy data formats.
- use tests to verify and validate your code.
- use team software infrastructure to collaborate.
- turn requirements into implementation.
- prioritize and plan.
- design and architect your system.
You must:
- work with Rational Team Concert or Github to manage your code and your team.
- use Google Web Toolkit and Java to deliver the application online.
- use Google App Engine to host your application.
Marking Scheme
The assignments and final project are worth 35% of your mark, comprised of:
- (Participation marks) Assignment 1: Intro to Junit and RTC
- (Participation marks) Assignment 2: Intro to GWT (bonus: make an AppEngine instance)
- (5%) Assignment 3: Project RE phase. Create user stories.
- (5%) Assignment 4: Project Sprint Planning. Use stories to prioritize future work.
- (5%) Assignment 5: Project Design.
- (7.5%) Assignment 6: Sprint 1. Demo to TA in lab.
- (10%) Assignment 7: Sprint 2. Demo to TA in lab.
- (2.5%) Project retrospective. Reflect on what you did, how your project evolved, and how the tools worked and didn’t work.
Milestones
The project will be built as a series of deliverables. Initially you will work on understanding the tools you will be using; later in the semester we will begin building the final working application. The TAs will serve as your customers and your team leaders.
Assignment 1
- Objective: Prepare yourself to work on software development in CPSC 310 with JUnit and Jazz. This is an individual assignment.
- Procedure: For this assignment work through the Jazz tutorial and the JUnit tutorial (see below). By the end of the Jazz tutorial you should have created a first work item,
changed its status to “Resolved” and uploaded a user picture for your profile in RTC. The TAs will check for the work item and the picture during the next lab. The JUnit tutorial
has two tasks listed at the end of the tutorial that you have to complete. The TAs will check whether you completed the second one (i.e. created a parameterized test for the multiply method)
during the next lab.
- Mark: Participation credit.
- Due: at the beginning of your lab in the week of May 14th.
- Related material: Jazz tutorial - JUnit Tutorial - Calculator.zip
Assignment 2
- Objective: The purpose of this assignment is to introduce you to the Google Web Toolkit, have you built a sample GWT application and use the debugger to step through your code to fix a bug.
- Mark: Participation credit.
- Due: at the beginning of your lab in the week week of May 21st.
- Instructions: GWT Tutorial
Assignment 3
- Objective: The purpose of this assignment is for you to perform requirements elicitation and create user stories.
- Mark: 5% of your final grade.
- Due: 24 hours prior to lab the week of May 28th.
- Instructions: Assignment 3 handout and Grading sheet
Helpful links