Piazzabox is an archiver for Piazza courses. Save posts and file attachments from Piazza and generate static sites for local viewing!
Built with Python and Alpine.js + Tailwind.
- Archives course info and posts to json files
- Downloads file attachments and user profile photos
- Generates an offline, searchable webpage for each archived course
- Webpages properly display both markdown and math notations (LaTeX)
- Anonymous usernames are correctly generated (matches what's shown on Piazza)
python3 -m venv venv
source ./venv/bin/activate
pip install -r requirements.txt
- Run
python3 piazzabox.py
and enter your login credentials. - Choose Piazza courses to archive.
- Open the generated
index.html
file found in theout
folder (alternatively, host this somewhere).
Optional: Rename the secrets.template.json
file to secrets.json
and fill
in your Piazza email and password to keep your login credentials saved.
If Piazzabox fails due to network errors or is otherwise interrupted while archiving, restart the program and it will pick up where it left off.
There is no need to install dev dependencies for the webpage unless you are making changes to it. Use the following to install dev dependencies:
cd web
npm install
# Important: Run after making changes to re-build tailwind css
# npm run build