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.
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, load it in to your application, and display it.
The TAs will be your onsite Customers and can give you feedback with respect to your project. However, you must meet the following constraints:
- your user stories should relate to one of the technical requirements below.
- the dataset(s) recommended are the Data BC or Data Vancouver websites. You cannot use other datasets without talking to your TA first. Adventurous students can find data to import from other Web services here: Programmable Web
- the data must be parsed and persisted on the server-side of your application. This means you must 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.
Technical Requirements
The following are the categories of technical requirements that your user stories' acceptance criteria must cover:
- Import and clean data - access data on a remote server, parse it, and translate it into a format useful for manipulation.
- Storage - the data should persist once uploaded. You must load your data programmatically. You should have a button that an admin can use to load the data.
- Data display - display the imported data in a tabular and a geographic format.
- Social network integration - integrate with at least one social network (e.g. Facebook, Twitter, LinkedIn, etc.).
- Access - Users need to login with a password and have some user-specific account data (profile, preferences, media, etc...)
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 acceptance criteria 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 Eclipse, EGit and Github to manage your code and your team.
- use Google Web Toolkit and Java to deliver the application online (if you wish to use another language or framework, please ask your TA).
- use Google App Engine to host your application (if you wish to host your application somewhere else, please ask your TA).
Marking Scheme
The assignments and final project are worth 35% of your mark, comprised of:
- (Participation credit, checked for completeness) Assignment 1: Intro to GWT
- (Participation credit, checked for completeness) Assignment 2: Intro to Git and EGit
- (5%) Assignment 3: Project Requirements Engineering phase. Create user stories.
- (6%) Assignment 4: Project Sprint Planning. Use stories to prioritize future work.
- (2%) Assignment 5: Design.
- (10%) Assignment 6: Project Sprint 1. Demo to TA in lab.
- (11%) Assignment 7: Project Sprint 2. Demo to TA in lab.
- (1%) 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 Eclipse and GWT. This is an individual assignment.
- Procedure: For this assignment please first read the document titled CPSC 310 Web Applications (see below) and then work through the GWT tutorial (see below again).
The TAs will check that you've completed this assignment at the beginning of your next lab.
- Mark: Participation credit.
- Due: Start of the next lab (lab #2, week of Sept. 15th)
- Related material: Web Application Reading Source code for Reading
- Assignment: GWT tutorial
Assignment 2
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: User stories are due 24 hours prior to your lab in the week of Sept. 29. Peer evaluation is due after your lab that week (at midnight on the day of lab).
- Instructions: Assignment 3. Note that there is a pre-lab assignment to be done prior to your lab.
Assignment 4
- Objective: The purpose of this assignment is to perform sprint planning and estimation based on user stories.
- Mark: 6% of your final grade.
- Due: 24 hours prior to your lab in the week of Oct. 13th. Peer evaluation is due after your lab that week (at midnight on the day of lab).
- Instructions: Assignment 4
Assignment 5
- Objective: The purpose of this assignment is to create a design for the project using UML.
- Mark: 2% of your final grade.
- Due: 24 hours prior to your lab in the week of Oct. 20th. Peer evaluation is due after your lab that week (at midnight on the day of lab).
- Instructions: Assignment 5
- Reference diagrams:
Implementation tips for your project
These tips will help you with your implementation. We suggest that you read them carefully.
Assignment 6 - Sprint 1
- Objective: The purpose of this assignment is to work through your sprint backlog and implement high-priority user stories for the project, and demo a working app to your Product Owner/TA in lab.
- Mark: 10% of your final grade.
- Due: During lab in the week of Nov. 3rd. Peer evaluation is due after your lab that week (at midnight on the day of lab).
- Instructions: Assignment 6 - Sprint 1
Assignment 7 - Sprint 2
- Objective: The purpose of this assignment is to work through your second sprint by implementing all or many of the remaining user stories for the project (depending on team size),
and demo a working app to your Product Owner/TA in lab.
You must also complete a project retrospective, due last week of class (see Assignment 8)
- Mark: The second sprint is worth 11% of your final grade. The retrospective document is worth a further 1%.
- Due: During lab in the week of Nov. 24th. Peer evaluation is due after your lab that week (at midnight on the day of lab).
- Instructions: Assignment 7 - Sprint 2
Assignment 8 - Project Retrospective
- Objective: The purpose of this assignment is to have you reflect on your project and think about what you learned and what you would do differently in the future.
- Mark: The retrospective is worth 1% of your final grade.
- Due: Dec. 2nd at 11:59pm
- Instructions: Project Retrospective
Tips
Student’s Guide to SE projects
GWT tutorial
How to set up Google App Engine in Eclipse
GWT and Charts
Google Maps API
Facebook API
Twitter API
Helpful links