A web-based workshop administration application built using Django.
Python HTML JavaScript Other
Latest commit c2e8f6b Jan 21, 2017 @chrismedrela chrismedrela committed on GitHub Merge pull request #1126 from pbanaszkiewicz/contact-selected-staff
Contact selected staff

README.md

AMY is a web-based workshop administration application for Software Carpentry 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.

Upgrading

  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