Getting Started with the TOM Toolkit ------------------------------------ So you’ve decided to run a Target Observation Manager. This article will help you get started. The TOM Toolkit is a `Django `__ project. This means you’ll be running an application based on the Django framework when you run a TOM. If you decide to customize your TOM, you’ll be working in Django. You’ll likely need some basic understanding of python and we recommend all users work their way through the `Django tutorial `__ first before starting with the TOM Toolkit. It doesn’t take long, and you most likely won’t need to utilize any advanced features. Ready to go? Let’s get started. Prerequisites ~~~~~~~~~~~~~ The TOM toolkit requires Python >= 3.7 If you are using Python 3.6 and cannot upgrade to 3.7, install the ``dataclasses`` backport: :: pip install dataclasses Installing the TOM Toolkit and Django ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ First, we recommend using a `virtual environment `__ for your project. This will keep your TOM python packages seperate from your system python packages. :: python3 -m venv tom_env/ Now that we have created the virtual environment, we can activate it: :: source tom_env/bin/activate You should now see ``(tom_env)`` prepended to your terminal prompt. Now, install the TOM Toolkit: :: pip install tomtoolkit …and create a new project, just like in the tutorial: :: django-admin startproject mytom You should now have a fully functional standard Django installation inside the ``mytom`` folder, with the TOM dependencies installed as well. Getting started with the ``tom_setup`` script. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We need to add the ``tom_setup`` app to our project’s ``INSTALLED_APPS``. Locate the ``settings.py`` file inside your project directory (usually in a subdirectory of the main folder, i.e. mytom/mytom/settings.py) and edit it so that it looks like this: .. code:: python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'tom_setup', ] Run the setup script ~~~~~~~~~~~~~~~~~~~~ The ``tom_setup`` app contains a script that will bootstrap a new TOM in your current project. Run it: :: ./manage.py tom_setup The install script will ask you a few questions and then install your TOM. Running the dev server ~~~~~~~~~~~~~~~~~~~~~~ Now that the toolkit is installed, you’re ready to try it out! First, run the necessary migrations: :: ./manage.py migrate Now, start the dev server: :: ./manage.py runserver Your new TOM should now be running on http://127.0.0.1:8000!