opena11y / fae

Functional Accessibility Evaluator 2.x
Apache License 2.0
38 stars 12 forks source link

Functional Accessibility Evaluator

Development is primarily supported by the University of Illinois at Urbana-Champaign. The development is lead by DRES Accessible IT Group which is a unit of Disability Resources and Educational Servcies which is part fo the College of Applied Health Sciences. Additional contributions for the HTMLUnit based web site analysis engine are provided by Administrative Information Technology Services (ATIS) of University Administration.

Version 2.3

Version 2.2

Version 2.1

What is Functional Accessibility Evaluator (FAE)?

Apache 2.0 License

FAE may be used and distributed based on the terms and conditions of the Apache License Version 2.0.

Server requirements for Linux

Python modules

Here is the [requirements.txt] file to use with pip


confusable-homoglyphs==3.2.0
Django==2.2.27
django-password-reset==2.0
django-registration==3.1.2
django-timezone-field==3.1
future==0.15.2
Markdown==2.6.5
psycopg2-binary==2.8.6
pytz==2019.3
requests==2.20.0
sqlparse==0.3.0

Creating a secrets.json file

The "secrets.json" file must be created and provides:

{
  "FILENAME": "secrets.json",
  "PROCESSING_THREADS": 4,
  "SITE_URL": "[your site URL]",
  "SITE_NAME": "FAE 2.0 for [your organization]",
  "SECRET_KEY": "[random string of 40-50 characters used by django]",
  "SELF_REGISTRATION_ENABLED": true,
  "ANONYMOUS_ENABLED": true,
  "DEBUG": false,
  "LOGGER_LEVEL": "INFO",
  "DATABASE_HOST": "[ip address or localhost if database on same server]",
  "DATABASE_PORT": "[port, typicall 5432]",
  "DATABASE_NAME": "[DB name]",
  "DATABASE_USER": "[DB username]",
  "DATABASE_PASSWORD": "[DB password]",
  "ALLOWED_HOSTS": ["[your site URL]"],
  "EMAIL_HOST": "[mailserver]",
  "EMAIL_PORT": 25,
  "EMAIL_USE_TLS": true,
  "EMAIL_HOST_USER": "[email used for sending registration information and announcements]",
  "EMAIL_HOST_USER_PASSWORD": "[email password]",
  "ACCOUNT_ACTIVATION_DAYS" : 3,
  "CONTACT_EMAIL" : "[email notification when a contact form is submitted]",
  "ADMIN_USER_NAME" : "[username of admin user]",
  "ADMIN_FIRST_NAME" : "[first name of admin]",
  "ADMIN_LAST_NAME" : "[last name of admin]",
  "ADMIN_PASSWORD": "[password for admin]",
  "ADMIN_EMAIL": "[email for admin]",
  "ANONYMOUS_PASSWORD" : "[anonymous password, use random characters]",
  "DEFAULT_ACCOUNT_TYPE" : 2
}

Apache 2.0 configuration notes

Sample Apache configuration gile

<VirtualHost *:80 >

  Servername  [fae.somedomain.org]
  ServerAlias [fae.somedomain.org]

  Alias /static /var/www/fae2/fae2/fae2/fae2/static/

  <Directory /var/www/fae2/fae2/fae2/fae2/static>
    Require all granted
  </Directory>

  <Directory /var/www/fae2/fae2/fae2>
    <Files wsgi.py>
     Require all granted
    </Files>
  </Directory>

  WSGIDaemonProcess fae2 python-path=/var/www/fae2/fae2/fae2:/var/www/fae2/fae2env/lib/python2.7/site-packages
  WSGIProcessGroup  fae2

  WSGIScriptAlias / /var/www/fae2/fae2/fae2/fae2/wsgi.py process-group=fae2

</VirtualHost>

Initializing and updating the database tables

python manage.py makemigrations
python manage.py migrate

Setting up fae directories for read/write access

Multiple Django Apps and mod_wsgi

Setup Static Files

Initialize database tables

fae-util configuration and testing

Utility to clean up reports and update summary statistics

InCommon (Shibboleth) Configuration

To enable shibboleth support through InCommon for your institution or organization you need your service manager to enable the following attributes to the entityID identifying the installation of FAE with Shibboleth Support (e.g. "https://fae.illinois.edu/shibboleth" for the University of Illinois campus):

Enityt IDs: [https://www.incommon.org/federation/info/all-entities.html#IdPs]

Testing e-mail on localhost development



## Development Resources

### Django Shibboleth Resources
* [How to (not) use Shibboleth with the Django web framework](https://5chub3r7.wordpress.com/2014/12/05/how-to-not-use-shibboleth-with-the-django-web-framework/)

### Incommon Resources (Multi-Institution Shibboleth)
* [InCommon: Embedded Discovery Service](https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service)
* [Technology Services: Shibboleth, Multi-university configuration](https://answers.uillinois.edu/illinois/48456)
* [InCommon: Federation Entities](https://www.incommon.org/federation/info/all-entities.html)