A web-based workshop administration application built using Django.
Python HTML JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Replace Bower with Yarn Jul 29, 2018
Makefile Fix #1317: remove Bower from Makefile Aug 11, 2018
manage.py Initial creation of amy Dec 1, 2014
requirements.txt Freeze Python's dependencies Aug 12, 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