Skip to content

Assignment 2: Onboarding onto Your Team's Project

Possible Points Due Date
50 pts Friday, September 18th - 11:59pm

Learning Goals

  • Familiarize yourself with a large, real, actively maintained software project
  • Download, install and run a substantial codebase that you did not write
  • Onboard on the development tools and technologies your team's project uses
  • Practice Git Flow and GitHub in a repository shared with your teammates
  • Run a project's own analysis tools and use the output to evaluate the codebase

Project Context

Welcome to the CEN 5016 development team! For the rest of the semester you and your teammates will be working on a real open-source project — not a toy application built for a class, but a system with actual users, a real backlog, and its own conventions that you will have to learn and follow.

This is a change from previous semesters. Instead of everyone working on the same small application, each team is assigned one of the eight projects below. Every one of them is a mature, actively developed system, and each brings its own stack, architecture and contribution culture. Part of what you are learning here is that "getting up to speed on an unfamiliar codebase" is a skill in itself, and it is one you will use for the rest of your career.

The Eight Projects

Project Category Tech Stack Upstream
Actual Budget Personal finance TypeScript, React actualbudget.org
Excalidraw Design / whiteboarding TypeScript, React, Canvas excalidraw.com
Gitea DevOps / Git hosting Go about.gitea.com
Medusa E-commerce TypeScript, NestJS, React medusajs.com
Chatwoot Customer support Ruby on Rails, Vue.js chatwoot.com
Discourse Community / forum Ruby on Rails, Ember.js discourse.org
Cal.diy Scheduling TypeScript cal.diy
Outline Knowledge base TypeScript, Node, React getoutline.com

Teams and Project Assignment

You will submit your project preferences this week, and I will assign teams and projects from those preferences. Watch Ed Discussions and Webcourses for the announcement.

Your team's repository is distributed through UCF Code Classroom, the same app you used for Assignment 1. You already joined the course there, so there is no new link to accept: open Assignment 2 in Code Classroom and your team's repository will be waiting for you.

Work in your team repository, not the upstream project

All of your issues, branches and pull requests go in the repository Code Classroom gave your team.

Do not open issues or pull requests against the upstream project, and do not contact the upstream maintainers for help with your coursework. These are real projects with real maintainers, and their issue trackers are not a place to do homework. Direct all questions to the course staff on Ed Discussions.

If your team assignment has not landed yet

Start on the parts of this assignment you can do without it. Read through both parts, install the general prerequisites for your likely stack, and get your GitHub account in order. As soon as your team repository appears in Code Classroom, clone it and begin. If you are still without a team by Monday, September 14th, contact me directly rather than waiting.

Deliverables and Deadlines

This is an individual assignment, even though you are working in your team's repository. Everyone onboards themselves — you cannot learn a codebase by watching a teammate learn it.

We have broken this assignment down into two parts. The first part tasks you with building your team's project and getting familiar with the codebase. The second part asks you to complete a small documentation task and go through the software development process that we will be using in this class.

There are five deliverables related to this assignment, described in the bottom section, one of which is associated with Part 1 and four of which are associated with Part 2.

Part 1) Build Checkpoint - 5 points

  • Project Compilation (5 pts)

Part 2) Starter Task - 45 points

  • GitHub Issue (10 pts)
  • Code Documentation (10 pts)
  • GitHub Pull Request (15 pts)
  • Webcourses Written Assignment (15 pts)

Start early — these projects are bigger than what you have built before

Some of these systems take a while to install, and a few need a database or a container runtime running before they will start. Budget more time for the build than you think you need, and ask on Ed Discussions the moment you are properly stuck rather than the night before the deadline.

Turning in the Assignment & Grading Rubric

Turn in Assignment 2 on Webcourses

The grading for this project will be broken down as follows:

  • Project Compilation - (5 points total)
  • GitHub Issue - (10 points total)
  • Code Documentation - (10 points total)
  • GitHub Pull Request - (15 points total)
  • Webcourses Written Assignment - (15 points total)

All deliverables for this assignment are due on Friday, September 18th at 11:59pm.