Helping Scouts Learn Photography

Since joining the tutor team of the National Scout Photography School, I've automated a significant portion of the manual, repetitive work tutors were doing on a daily basis at the school - reducing stress, increasing downtime and allowing tutors to focus less on administration and more on delivering programme.

This post is about Prism, an application that enables image submission, presentation, marking, printing and backups. While this application was built for the National Scout Photography School, it can be used in any photography / graphic learning environment. It can also function as a portal for users to be able to submit images, for example for a media team at an event.

Photo submission

The core function of Prism is to allow the submission of photos, ensuring submitted images are correctly sized and scaled, in the correct format and with the correct metadata.

Before I joined the team, students submitted their daily images on a USB drive. During dinner, one of the tutors would have to download the files from each of the 30 USB drives and load them into slideshow software in the right order to be shown to the class after dinner.
As you might imagine out of 30 students there were always a few who:

With Prism images are uploaded through a modern, user-friendly web interface, automatically checked for quality / size / formatting and tagged with the correct metadata for easy identification later.

The submission interface allows students to rearrange images or replace individual images after upload. This is important where the order of images in the presentation (see below) is critical.

Features

Presentations

Prism offers a web based slide show system of submitted images, configurable with different options for order of the images / submitters, title slides before/after each submitter and even off-lining functionality ensuring that once a show has been loaded, it won't stop due to connectivity issues during playback.

Marking

Tutors mark images and provide feedback to students to support their learning. This is done via Prism in a mobile friendly view that allows tutors to mark easily and efficiently.
Marking is highly customisable, with the options to mark "blind" i.e. without knowing who's images are being marked, fully random, by student etc.

At the school we have a number of use cases for printing or exporting images such as:

Backup / Archival

At the end of the school student's work is archived to cloud storage for future reference. Prism streamlines this process by allowing the export of all or a selection of submitted images at full quality.

Technical

Prism is built on with Python, Django, SQlite, Bootstrap and HTMX. It runs in an OCI container fronted by Caddy.

As the school relies on a limited bandwith connection, Prism can be run in the cloud or on a physical, on-site server.

We utilise technologies such as CloudFlare ZTNA for remote access when the server is on-site, Auth0 for authentication and TailScale for administrative access to the server regardless of location.

Login

One of Prism's headline features is making it as easy as possible for students to connect and submit their images. As such Prism supports students logging in from a local, trusted network simply by selecting their name from a list. This permanently binds the user's device to their account. Where a student selected the wrong account, it can only be changed by an administrator.
Tutors and Administrators must always log in with strong, multi-factor authentication supported by Auth0.