Skip to content

Project 2: Collaborative Development

Learning Goals

  • Translating requirements into actionable user stories
  • Practice getting to know a pre-existing code base and developing new features for it using previously unfamiliar technology
  • Practice version control and development best practices within the context of a group assignment
  • Plan and schedule projects in terms of tasks, milestones, and time estimations, and re-plan as required
  • Make initial decisions on a team process, and reflect on your experience with the process
  • Effectively coordinate among team members and conduct team meetings
  • Meaningfully reflect on the experience of working in teams

Project Context

CMU has over 14,000 students and hundreds of courses every semester. Many of these courses use a combination of educational platforms to distribute course materials (handouts, lecture notes, etc), manage student information, assess student learning, and provide a means of communication between the students and course staff. Examples of such platforms include Canvas, Piazza, and Gradescope.

However, the distributed nature of this system makes it difficult for instructors to synchronize information across each of the different platforms, and the lack of standardization across the university forces students to remember a different set of links for each class.

Your manager has assigned you to a team and has tasked you with building a new course management system over the course of the semester to be used university-wide. To help manage the scope of this project, they have specifically requested you to focus on implementing the Q&A portion of this overarching system, i.e. the component that enables communication between the faculty and students.

Rather than creating a new Q&A system from scratch, management has decided that you and your team will repurpose and adapt the existing forum system provided by NodeBB. Beyond being a pretty decent forum platform, NodeBB provides complex features that you expect will be useful like user registration, permission settings, post creation, sorting and filtering capabilities, and more.

Despite its considerable functionality, NodeBB is still missing many of the basic features that you would expect to find in a course-based Q&A system and needs changes to better fit this new purpose. You and your team will be responsible for coming up with an initial development plan and beginning implementation.

Deliverables and Deadlines

This will be the first assignment with your group. There are three (3) deadlines for this project. Each of the core deliverables are described below. This project is worth a total of 320 points.

Detailed information for each of the deadlines has been split into its own subpage on the left.

Tip

This is a large assignment spanning from now until Fall Break. We estimate that this project will take each student on the team on average 8 hours/week over the next 5 weeks, for a total of 40 hours. We highly recommend reading through the entire assignment before starting so you are aware of our expectations for the later deliverables.

To manage all of the write-ups, we recommend saving the pages as a PDF to print or annotate on as you work through the assignment with your team.

A) Team Process & Planning – 80 points – due Thursday, September 7th, 11:59pm

  • Prerequisite: Team Setup
  • Teamwork Contract (40 pts)
  • Project Planning (40 pts)
  • Extra Credit (8 pts)

B) First Sprint – 100 points – due Tuesday, September 19th, 11:59pm

  • Process & Implementation Interim Snapshot (50 pts)
  • Checkpoint Presentation (50 pts) - Held in Recitation on Thursday, September 21st

C) Second Sprint – 140 points – due Thursday, October 5th, 11:59pm

  • Process & Implementation Final Snapshot (60 pts)
  • Team Reflection (50 pts)
  • Individual Reflection (30 pts)