Website Uploader

Summary

Mentor(s): Dr. Mike Murphy
Project Type: Software development
Technologies: Python, HTML, SSH/SFTP, Git
Undergraduate Credit: CSCI 399, CSCI 490
Graduate Credit: IST 659
Locality: Main campus and/or remote

Purpose

At the moment, the TealSite static site generator produces output inside a local directory. It is up to the site author to upload the generated website to its final destination. However, it would be easier for site authors if TealSite could also perform the upload. In the ideal case, TealSite would only upload those files that have changed since the prior version of the site was uploaded.

Adding upload support using the common Secure File Transfer Protocol (SFTP) should be reasonably straightforward if the Paramiko library is added as an optional dependency. Conditional uploading is a more advanced step that would require tracking which files have already been transmitted to the server. Several approaches are possible, including hashing, file manifests, and recursive comparisons. However, each approach has trade-offs between performance and accuracy.

Scope of Work

Integrate Paramiko as an optional dependency of TealSite, and add support for uploading the entire site to a remote server via SFTP. At a more advanced level, the scope would expand to finding and implementing a mechanism by which file changes could be detected, allowing only those files that are new or have changed to be uploaded to the server.