The centerpiece of this course is a team software project—but what projects will the teams work on? This is where you come in: You may now propose a project, and potentially serve as customer for a team who will build it for you.
Here is how the selection/assignment process will work:
You submit a proposal.
If it follows the instructions below, I add it to the pool of candidate proposals.
Each student reviews all the proposals, and votes for their favorites.
I will take the most popular proposals, create teams, and assign each team to a proposal.
By submitting a proposal, you are agreeing to both work as a developer on one team, and also serve as customer to a different team, which is implementing your proposed software. As a customer, you will communicate with the team assigned to your project throughout the remainder of the semester, explaining your vision for the project, and giving feedback on the software they build.
The project must be a database-driven web app that can be developed using Ruby on Rails.
The project must be suitably large to keep a 4-person team (give or take) busy for roughly 8 weeks. It is acceptable to have a core feature set in mind, and then add “bonus” features if the team finishes the core features early. In fact, if at any point, the team doesn’t have enough work to fill their schedules, it is the project customers responsibility to conceive of more features for them to implement.
The project must not require any special hardware (unless you are willing to provide it, and it does not create a workflow bottleneck).
The team may not have time to complete all the requirements you come up with.
When the course ends, the team is under no obligation to continue working on the project.
You and the team will share joint ownership of the code produced.
To submit a proposal, fill out and submit the template below. Specifically, create a Markdown file (i.e., a text file with the file extension .md
), and paste in the template below. The name of the file must be the same as the project nickname that you specify in the template (e.g., if your project’s nickname is “Facebook”, then the file should be named Facebook.md
). In filling out the template, you must replace each of the xxx
bits with appropriate text. Leave all the other headings and quoted instructions as they are.
Once you have completed filling in your proposal text, you must use the Markdown PDF VS Code extension to create a “pretty” PDF, and it is this PDF that you will submit. You should have installed this extension as part of Homework 1. Here is a video demo on how to use the extension.
# Project Proposal
## Title
> A title for your project proposal.
xxx
## Nickname
> An acronym or short name for your project.
> 3-character min.
> 16-character max.
> Letters, numbers, and dashes only.
> No punctuation, special characters, or white space.
> May not start or end with a dash. No consecutive dashes.
xxx
## Description (150-word minimum)
> A brief description of what your web app will be like and why it's
> interesting.
> Possible questions to answer here:
> What is the motivation for the web app?
> What are the goals of the web app?
> What important problem will the web app solve?
> What burning need do people have that the web app will fulfill?
> What form will the web app take to fulfill its goals?
> What sorts of features will the web app have?
> What are the selling points of the web app?
> What make this web app interesting/cool?
xxx
Each submission that follows the above instructions and is of at least decent quality will earn 1 A&B point (maximum of one submission per person).
If your project is chosen to be built, you will receive a total of 3 additional A&B points—one per project iteration that you serve as customer. Of course, you must fulfill your duties as customer in order to earn these points.