The last book of the semester, Just For Fun, examines the life of Linus Torvalds and the deveopment of the Linux operating system.
The goal of the final project is for you to mimic Linus Torvalds and work on an open source project "just for fun". Rather than work from scratch, however, you are to take one of your previous projects (perhaps from another class or a side hobby) and turn it into a presentable open source project others can not only utilize, but also contribute to.
Working in groups of 2 - 4, students must create their own open source project that meets the following requirements:
Modifies a previous project in one of the following ways:
Translate a project into a new programming (or spoken) language.
Utilize different libraries or programming language features to implement functionality.
Re-factor code to meet coding style or convention.
Re-factor code so it can easily be installed or deployed or fit within a package management system.
Adds new functionality or features.
Provides downloadable packages or binaries for the end-user to utilize.
Includes a LICENSE
file which contains the open source license for the
project.
Has a web page that describes and advertises their project (with screenshots or video).
This web page should discuss the origin or inspiration for the project and its ultimate end goal or milestones.
Likewise, it should provide a set of documentation for installing and utilizing your program.
Finally, it should provide information about how to contribute and develop the project.
The source code for your project should be stored on an online repository such as GitHub, GitLab, or Bitbucket.
Here are some real world examples you should strive towards:
Here is the project timeline:
Date | Milestone | Description |
---|---|---|
April 27 | Proposal | Description of proposed project. |
May 04 | Progress | Status report of current progress. |
May 09 | Submission | Final submission of project. |
More details about each of these milestones is described below.
Your group must submit a proposal document by noon on Saturday, April 27, which provides the following information:
Lists the group members and each of their proposed roles.
Describe the proposed project and how it meets the project requirements.
Explains how the original project will be converted into an open source project and what modifications will take place.
Your group must submit a proposal slide deck (5 - 8 slides) by noon on Saturday, May 04, which provides the following information:
Addresses the questions and expections in feedback email provided regarding the project proposal.
Summarizes the work done thus far, in particular the design and implementation details of your artifact.
Enumerates the remaining tasks, with specifics on what you plan on accomplishing during the upcoming sprint week and what you realistically plan on accomplishing before the deadline.
Itemize contributions to the project thus far and what how each member will aid in completing the tasks above.
Provide video or image evidence of your project and your progress.
There will be no in-person presentation for this project. Instead, everything should be on the website for your project.
The project will be graded with the following rubric:
Metric | Points | Description |
---|---|---|
Proposal | 5 | Does the proposed project meet the requirements? |
Progress | 5 | How much work did the group do for the progress report? |
Website | 15 | How well does the website advertise and explain the project? |
Requirements | 5 | How well did the project meet the requirements? |
Technical Challenge | 5 | How difficult was the project? |
Execution | 5 | How complete was the project? |
User Experience | 5 | How enjoyable was project for end users? |
Once you have organized your group, please fill out the following form:
Note, while you can always update your submission whenever you have your proposal, code repository, and website link, I would recommend creating place-holder links that you fill-in later (ie. create empty slides for the proposal and progress report and then update those documents later).