2020-01-10: Version 1.0 release (and first publication) by the end of January 2020.
A website for university's Course Virtualization project. Serves both students (get hypervisor installed and download course specific virtual machine images) and teachers (learn how virtual machines could help running a course, instructions on how to create an virtual machine image, how to get help doing it, uloading and publishing made images).
See also:
- Static version of this project at github.io.
- Wiki pages for technical and design notes.
- Simplicity (in implementation, site structure, usage...). And where not achievable, good and clear documentation.
- Minimal dependencies (see "Third-party components").
- Small scope (Only the essentials discussed in the site. More detailed information will be provided in form of PDF documents).
- Two-step principle. All actions (primary use cases) should be accomplished in no more than two clicks. One to choose the relevant subpage, another to open a folding information container (if necessary).
- Integration-friendly Architecture. Basically meaning that the backend is a REST API and none of the client pages are dynamically parsed.
- Student retrieves course-specific virtual machine image
- Student comes to learn how to set his or her personal system up to run virtual images
- Student comes to resolve an issue and/or report it
- Lecturer uploads a new course-specifc virtual machine
- Lecturer comes to learn about this tool and its benefits
- Lecturer seeks technical documentation on how to create new virtual images
- Lecturer comes to seek assistance / help
Original idea about separate virtual server has been dropped in favor of expanding ftdev resources and reserving an additional DNS name for it (https://vm.utu.fi). Or in other words, vm.utu.fi is a virtual host in ftdev.utu.fi (virtual server).
- Publishes a download list (in the downloads -page) of available .OVA files.
- OVA metadata will be a combination of extracted XML from OVA and uploader specified information.
- Download statistics will be based on webserver log files, which will be generated into (some kind of) graph/report nightly and made available in separate statistics page.
- Uses UTU SSO authentication, but restricts itself to UTU UID only. No other Personally Identifiable Information (PII) is handled or stored. (NOTE: Students have no PII of any kind stored).
IT-Services will be consulted about UID as PII data. If UID alone is also considered to enough to bring this solution under GDPR regulations, solution model where all UID's are one-way hashed (both in client's session storage and teacher
database table) will be proposed.
2020-01-10 update: In a meeting, it has been said that storage of UTU SSO UID (for teachers) is allowable as long as this is clearly indicated in the data privacy statement, along with the description of its usage, purpose for storing it, expected lifetime (when and/or under what conditions it will be cleaned out) and providing a way to exercice all the rights granted by GDPR (which in our case, is a communique to support email address).
- Integration of distribution builder - as a separate Build Manager agent, providing a REST API interface.
- HTML5 File API based Flow.js needs server side implementation in Python, since nothing even remotely acceptable exists.
- Statistics that satisfy not only our curiosity, but also justify the existence of this service when the time comes (in a year or two) that this can no longer be considered to be a education development project (ergo, would need to be adopted by IT-Services).
Frontend
- Bootstrap 4.3.1
- JQuery 3.4.1
- Font Awesome 4.7.0 (because that is the last free version)
- Datatables 1.10.20 for download page tables
- CardTabs 1.0 for tabulated content
- JSONForm for VM details edit
- Flow.js v.2.13.2 for HTML5 File API transfers
Backend
- Nginx ver.1.14.0+
- Python 3.6.8 (Ubuntu Server 18.04.3 LTS, offered by IT-Services)
- Flask 0.12.2 (2017-05-16!! Current version: 1.1.2) & UWSGI 2.0.15+
- SQLite3 3.22.0 (2018-01-22)