Final Project

Project Presentation due: 12:00 pm, Tue 8 May
Final Deliverables due: 12:00 pm, Tue 8 May


From now until the end of the semester you will be working with a team of students on a group software project. The project will culminate during the Final Event period for this class, with an EXPO style demo / video / poster session.

Project Topic


Suggestions for Project Topics



Team Formation Advice

Refer back to the answers you provided during the reflection and teaming surveys and share your thoughts with potential teammates.

Project Activities / Deliverables

Team Registration Survey

Due Thu, Mar 29

Once you know who is on your team, you should create a GitHub repository for your final project. Note: that there is no GitHub classroom assignment to accept and there is no base repository to fork (instead you will be creating your repository from scratch). Whoever creates the repository should add the other team members as collaborators. You will be using this repository to turn in all of the project deliverables listed below.

Once your team’s GitHub repository is set, you are ready to fill out the team registration survey. We will need you to fill out this survey in order to know where to look for your other project deliverables, so please complete it as soon as you can.

Project Proposal

Due Thu, Mar 29

The project proposal is worth 10% of the project grade (rubric).

Create a document on your team’s final project repo that answers the following questions. More detailed answers give us an ability to give you better feedback to start the project (or revise your proposal).

  1. The Big Idea: What is the main idea of your project? What topics will you explore and what will you generate? What is your minimum viable product? What is a stretch goal?
  2. Learning Goals: What are your individual learning goals for this project?
  3. Implementation Plan: This will probably be pretty vague initially. Perhaps at this early juncture you will have identified a library or a framework that you think will be useful for your project. If you don’t have any idea how you will implement your project, provide a rough plan for how you will determine this information.
  4. Project schedule: You have 6 weeks (roughly) to finish the project. Sketch out a rough schedule for completing the project. Depending on your project, you may be able to do this in great specificity or you may only be able to give a broad outline. Additionally, longer projects come with increased uncertainty, and this schedule will likely need to be refined along the way.
  5. Collaboration plan: How do you plan to collaborate with your teammates on this project? Will you split tasks up, complete them independently, and then integrate? Will you pair program the entire thing? Make sure to articulate your plan for successfully working together as a team. This might also include information about any software development methodologies you plan to use (e.g. agile development). Make sure to make clear why you are choosing this particular organizational structure.
  6. Risks: What do you view as the biggest risks to the success of this project?
  7. Additional Course Content: What are some topics that we might cover in class that you think would be especially helpful for your project?

The teaching team will either approve your page, or provide suggestions and request revisions.

Architectural Review

Date: Tuesday, April 3

The Architectural review(s) is worth 15% of the project grade (rubric).

Each team will complete one (or more) architectural reviews, which will entail teams presenting plans for their project to other teams, NINJAs, and instructors. This review is intended to be interactive, and will focus on soliciting useful/actionable feedback rather than being a one-way brain dump. In addition to the in-person component of this activity, there will be a framing/agenda setting document due before the review and a reflection/synthesis document due after.

See the Architectural Review page for full details about the assignment.

Project Presentation (removed)

The Project Presentation has been removed as a part of the Spring 2018 Final Project (see project presentation rubric and guidelines)

The addition of the visual / video representation of the project replaced the requirement for a project presentation this semester.

Project Website

Due: 11:59 PM Tuesday, April 24.

Final revision, that incorporates instructor feedback, due 1:30 PM Tuesday, May 1.

The final website is worth 25% of the project grade

Your project website is the lasting record of what you have accomplished over the course of this project, and hopefully a valuable contribution to your professional portfolio. You should draw upon all the deliverables and activities above to create the final site, combining, reformatting, and adding to them to effectively tell the story of your project.

The project website can serve many audiences, including:

There are many successful formats for a project website, but you should consider including:

Note: These content prompts exist to inspire your thinking, and you should use whatever organization and sections make sense for your project and the story you’re telling. Simply answering the given prompts sequentially is not the strongest way to communicate your work to an external audience. Think about what you’ve accomplished and frame it nicely - finish strong!

Your final project website may be implemented using whatever platform you like. You can continue to use GitHub pages, possibly along with Jekyll, or you can switch to an easier option like Google Sites. If you’d like to make a GitHub site with multiple pages using Markdown, former SoftDes NINJAs Patrick and Franton have written a helpful guide.

Whatever implementation option you choose, you must include a link to your project website from your GitHub repository. Remember that this is part of your professional portfolio as you select a platform – choose something that will still be around in the future!

Submission mechanics: Your project’s GitHub repo page should link to your web site. This means either the README, or the Website that is optionally displayed in the upper right corner of your GitHub repo page, should contain this link.

Demo Session Poster and Video

Printed before 12:00 PM on Tuesday, May 8

The poster and video are worth 10% of the project grade.

Each team will create a poster to accompany the final demonstration session. Your poster will contain similar information to your website, but reformatted and selectively edited for a different context:

Posters are generally 24 x 36 inches. You may use a larger size if you want. You can print your poster in the Olin computer lab.

Your poster should have the same sections as your website (but leave out installation instructions). It serves two purposes:

Examples and guides:

demo video

Your website will have a video of your team demoing your project and giving a 1-minute or less pitch about it. Include the project’s goal, what the software does, how to use it, why your team made it, and what you would do if you had more time.

The teaching team will offer suggestions and give feedback on draft videos related to production quality and content.

Submission mechanics: (1) Your project README or project web site must link to your poster file and video. (2) Your poster must also be printed in time for the May 8 final event.

Code submission

Due: Tuesday, May 8

Project code is worth 40% of the project grade (see code rubric on the course policy page)

Project code must be submitted via GitHub by May 8. You must include a README describing how to run your code, including any required dependencies (e.g. libraries to install) and any input files (README rubric).

Proper documentation is important to your final submission, and one way to ensure you have adequate docstrings is to generate documentation from them. You can do this using pydoc:

$ pydoc path/to/

This will open a help file based on your docstrings (use q to quit). Make sure the help file would be useful to someone using your code, and feel free to attach it to your code submission as an appendix. If you want to generate truly beautiful documentation, check out Sphinx (the tool used to generate the Python documentation).

Make sure that your code gives appropriate attribution to external resources used, as per the course policy page. If you have any questions about this, just ask.

Submission mechanics: Verify that the link in the Final Project Team Survey is correct. Check that you have git pushed your final changes to GitHub.

Final Demo / Presentation Session

Date: Tuesday, May 8, 12:00 PM

During the Final Event, all studios of SoftDes will meet in AC326, AC328 for an EXPO style poster/demo session of your final projects. This session is for everyone to share what they’ve created, and will not be evaluated. We will be inviting other members of the Olin community to check out your fantastic work.