Skip to content

Training Materials

Pre-workshop preparation

You'll need a laptop running either Linux or OSX. If you use Windows that’s fine, but just know you may have to do some extra troubleshooting, as none of the workshop coaches have extensive experience with it.

You’ll also need a working Python installation, version >=3.6. We don’t recommend the use of Anaconda, though it should be fine to use it if that’s what you are used to.

It would be tremendously helpful to have an installation of Django in a Python virtual environment ready to go. You can find instructions for that here:

These instructions are part of the larger Django tutorial we will be following on Day 0, so for those of you that like to read ahead feel free to do so (we will be covering chapters “What is Django?” to “Django Forms”).

Installing the TOM Toolkit and starting a TOM

You can install the Toolkit very easily through pip, and we recommend you install it in a virtual environment, to avoid any conflict with other software using python on your machine. Setting this up is very quick and easy, and full instructions are given here that take you through getting your TOM up and running.


The Toolkit uses the Django web framework extensively, so understanding how this works will really help you to use the Toolkit. The Django Girls organization provides an excellent introduction to Django and other fundamentals of web development. We recommend reviewing their tutorials from What is Django to Introduction to HTML, and from The Django ORM to Django Forms.

Customizing your TOM

These tutorials discuss how to change the displays in your TOM and add pages specific to your needs:

Customizing templates

Adding new pages to a TOM

Programmatically interacting with your TOM

It's often important to be able to write software that talks to your TOM, by calling information from it, or sending information to it, for example data reduction tasks. These tutorials take you through enabling software to communicate with your TOM and ways to automate these processes:

Scripting a TOM,

background tasks

periodic jobs

Interacting with Brokers and Observatories

One of the most powerful advantages of a TOM is their ability to directly interface with the external services essential to running an astronomical observing program. These tutorials discuss how these interfaces work, and how you can develop new interfaces to services that are important for your program:

Writing a TOM alert broker module

Writing a TOM observatory module

Operating a TOM

Once you have developed a TOM for your science, you'll need to deploy it for fullscale operation in the real world (a.k.a. in production). There are a number of ways to do this, and some important security features to be aware of, which we cover here:

TOM Advanced deployment procedures

Deploying an operational TOM, securely

Want to learn more?

We've developed extensive documentation to help you through every aspect of developing, customizing and operating your TOM. Learn more at

Follow the workshop on Twitter: #TOMWorkshop

and on the LSSTC Slack channel: