Install Anaconda 32-bit version. Link to arcpy by copying Desktop10.3.pth file from the ArcGIS python Lib\site-packages directory to the Anaconda \Lib\site-packages directory.
With Anaconda installed, go to the command line and type in `conda`. This command should register. If not then the Anaconda Scripts directory is not on the system path. With conda, install GDAL by running `conda install gdal`.
Now we need to use pip, the python package manager. The command for pip is simply `pip`. That command should be found as well. Use pip to install the requirements.txt file in the django project directory by typing pip install <path to the requirements.txt>. Requirements.txt contains a list of all the python packages that the eBagis project depends upon, and pip can parse the file to get a list of things to install. Specifically, the following list of dependencies will be installed:
<need to add this list>
Each aspect of the project is outlined below with additional details. The reasoning for each of these dependencies will explained, as will their corresponding settings and configurations.
Basic Data Model
Django Rest Framework
User Authentication and Permissions
The URL Configuration
Django/IIS integration
Need to pip install django-windows-tools (should have been installed via requirements.txt) and then run some commands with manage.py; see:
http://django-windows-tools.readthedocs.org/en/latest/quickstart.html#installation-and-configuration
http://mrtn.me/blog/2012/06/27/running-django-under-windows-with-iis-using-fcgi/
http://mrtn.me/blog/2012/07/04/django-on-windows-run-celery-as-a-windows-service/
Updating the site after changes is not automatic; need to refresh the FastCGI application running for the eBAGIS site. This is tracking a file in the eBagis project directory, called touch_this_to_update_cgi.txt. Touch it to update the cgi.
Also, if more static resources are added to the site, need to recollect them via python manage.py collectstatic. See this page for more about static files: https://docs.djangoproject.com/en/1.7/howto/static-files/.
Initially I had a problem with static files not being served; it turned out that I needed another web.config file in the /static/ directory. See the second link in the list above and copy the contents of the web.config file that is supposed to go into a directory called local_static, but put it in the static directory. I do not believe the local_static directory is necessary. The web.config file in the static directory tells IIS fastCGI what to do with the files or something; all I can say is adding it works.
django-celery and RabbitMQ as a message broker/task queue
I've chosen to use celery as a task queue for async task execution and I am using RabbitMQ for the message broker between django and celery.
To install celery, pip install django-celery. To install RabbitMQ, visit their website and follow the instructions for installing on Windows: https://www.rabbitmq.com/install-windows.html. Erlang will also need to be installed, as RabbitMQ is an erlang application.