Day 26
Final project wrap-up
We’ve nearly reached the end! Below are the remaining deliverables for the final project. Course staff are available today to consult on any of these topics.
- Now: Review demo video script/storyboard with instructors
- Today by 5pm: Submit the text and image for your poster on Canvas
- Before 10pm Monday: Submit final demo video to Public drive (instructions below, please submit as soon as you can so we have time to compile the class playlist)
- Tuesday at 12pm: Final session! Submit links to your final website and code on Canvas, and come ready to celebrate everyone’s work (no dress code)
Submitting videos
Please place your demo video file on the Olin Public drive at
\\fsvs01\Public\+Courses\SoftDes\videos\
so that we can compile them to show at the start of the final session. Videos should be in a reasonable format (e.g. MP4, gif) and size (< 250MB) - talk to us if you’re not sure. Please use a filename that clearly indicates your team.
Professionalism is important in public presentations, so please use the “would I be happy for my parents to read this in the newspaper” test when uploading content. Humor is great; abusive language or disparaging groups of people is firmly not acceptable.
To access the Public drive, you can follow IT’s instructions for adding a network share on Linux (reproduced here
- Open up a terminal and type:
sudo apt install smbclient sudo atom /etc/samba/smb.conf
- Replace the line in the smb.conf file that has
workgroup=...
with these 4 lines:client use spnego = no client ntlmv2 auth = no workgroup = WINWIRKGRP client max protocol = NT1
- Open File Explorer and click “Other Locations” in the bottom left corner. Enter
smb://fsvs01/Public
as the server address at the bottom.- When prompted, connect as a Registered User. Username: your Olin network username, Domain:
olin.edu
, Password: your Olin network password.
Alternatively if you are not on the Olin network, you can upload your file via the VPN web interface: https://jvpn.olin.edu/.
In that interface, click on FSVS01.olin.edu and navigate to Public\+Courses\SoftDes\videos\
In addition to submitting your demo video for the final session, you will also likely want to include your video somewhere on your project website. The video files are too large to commit to your GitHub repository (please don’t do this), so you should plan on uploading them to a video sharing website. You can then embed them in your website by including something like the following directly in your Markdown or HTML:
<iframe width="560" height="315" src="https://www.youtube.com/embed/JEpsKnWZrJ8" frameborder="0" allowfullscreen></iframe>
which gives the following result:
Capturing dependencies
Your project may require 3rd party Python packages that are not part of the standard library. In your README file (e.g. “Getting Started” or Install section), you must at minimum list these extra packages necessary to run your code (with versions if necessary).
You should know what modules are needed since you wrote an import statement for each (read about best practices for import statements), but in case you forget or you’re looking at someone else’s code: command line tools to the rescue! In your project directory, type:
grep -hr "^import" . | sort | uniq
This means 1) search recursively in the current directory for lines that start with “import” (without printing which file you found them in), 2) sort those results alphabetically, and 3) don’t show me duplicates.
(Technically "^\(from .\+ \)\?import"
would be a better search expression, since it also catches from foo import bar
style imports.)
In order to make things easier for your users, in addition to just listing the required packages you can give them a listing that they can automatically install using their package manager. To generate this list, you can run:
pip freeze > requirements.txt
or
conda list --export > requirements.txt
depending on which package manager you are using. This will create a file called requirements.txt
that you can include in your project repository.
Users can then install the needed dependencies by simply running:
pip install -r requirements.txt
or
conda install --file requirements.txt
as appropriate.
Important caveat: this process will dump every package you’ve installed, not just the ones needed for this project. It is best practice to edit down the list to just those necessary for your project.
Exercise:
Make sure the README file for your project has up-to-date installation instructions including required packages. Generate a requirements.txt file for your project.