Homework 7

Due: Tuesday, April 4 at 11:59 pm

In this homework, we will setup the documentation for our project, arguably the most important factor in encouraging both users and contributors. We will include several elements: autodocumentation, examples, and project homepage.

Part 1 - Autodoc-compatible code documentation

For all of the “public” elements of your library’s API, add autodoc-compatible documentation. For python, this would be docstrings in one of the standard docs discussed in class, for JS this would be jsdoc, for Java it would be javadoc, etc etc. “Public” elements include any functions, classes, etc, that users of your library might use directly, as opposed to internal or “private” elements that are used internally by your library. Your public elements should be fully documentated, including any possible arguments, return values, side effects, exceptions, etc.

Part 2 - Setup a static documentation website

As demonstrated in class, setup a static website for your project. You are allowed to use any framework you like, but I recommend sticking to something tried-and-true like Sphinx. Your project’s website should have the following elements:

Part 3 - GitHub Pages

After completing part 2, setup GitHub pages for your documentation. Note, you do not need to setup full CI/CD for your website, a “quick and dirty” solution like discussed in class is sufficient, so long as it works. Once you have deployed your documentation, add a badge link to it to your README.md.

Part 4 - Examples

Add examples for all of the functionality of your library. Include a minimal example on your README.md, and put more extensive example/s on your project’s website. If applicable, a demo (JS example, binder link, GIF/Video recording of your library being used, etc) should be used for your README.md.