A web-based workshop administration application built using Django.
Latest commit 1d5495e Oct 11, 2018


AMY is a web-based workshop administration application for The Carpentries and related projects. Its target audience is workshop coordinators, most of whom are non-programmers, who need to keep track of what workshops are being arranged, when they're supposed to occur, who's teaching what, and so on.

AMY is built using Django, with a bit of Javascript and other things thrown in. If you would like to help, please read:

Please check with us or open an issue before starting work on new features.

Getting Started

  1. Clone the repository:

    $ git clone https://github.com/swcarpentry/amy.git
    $ cd amy
  2. Install Django and other dependencies:

    $ python3 -m pip install --user -r requirements.txt

    If you're experienced Python programmer, feel free to create a Python3-compatible virtualenv for AMY and install dependencies from requirements.txt.

  3. Install Bower, the tool that manages AMY's JavaScript and CSS dependencies:

    $ sudo npm install -g bower

    You may need some additional dependencies to install Bower, such as NodeJS and npm.

    Note: if you don't want to use sudo, you can install bower locally. You'll need to set up your $PATH correctly, though. Look here for details.

  4. Set up your local database with fake (development-ready) data with:

    $ make dev_database
  5. Create an administrator account:

    $ python3 manage.py createsuperuser
  6. Start a local Django development server by running:

    $ make serve

    Note: this also installs front-end dependencies for AMY, such as jQuery or Bootstrap.

  7. Open http://localhost:8000/workshops/ in your browser and start clicking.

    Use the administrator account that you created.


  1. Update the code:

    1. Get the list of changes:

      $ git fetch
    2. Look for the newest tag:

      $ git tag -n
    3. Get the code from the newest tag:

      $ git checkout tags/<tag_name>
  2. Update dependencies front-end and back-end dependencies:

    $ make upgrade
  3. (Optional) make fresh development-ready database:

    $ make dev_database
  4. Run database migrations:

    $ python3 manage.py migrate
  5. Enjoy your new version of AMY:

    $ make serve