A wafer-thin web application for running small conferences. Built using Django.
Licensed under the ISC License.
Available on readthedocs.org.
Wafer supports Django 1.11 and Django 2.0.
- wafer can be installed either from pypi (
pip install wafer) or from the github repository. - If installing from github,
pip install -r requirements.txtshould install all the required python and django dependencies. - Wafer uses npm to manage front-end dependencies
- Make sure you have a recent version of Node.js installed that includes
npm. - Run
npm installto install all dependencies, which also copies them towafer/static/vendor.
- Make sure you have a recent version of Node.js installed that includes
- Install the wafer applications
manage.py migrate - If you don't have one yet, create a superuser with
manage.py createsuperuser. Examine the
settings.pyfile and create alocalsettings.pyfile overriding the defaults as required.STATIC_FILES,WAFER_MENUS,MARKITUP_FILTER,WAFER_TALKS_OPEN,WAFER_REGISTRATION_OPENandWAFER_PUBLIC_ATTENDEE_LISTwill probably need to be overridden.If you add extensions to
MARKITUP_FILTER, be sure to install the appropriate python packages as well.- Log in and configure the Site:
- The domain will be used as the base for e-mails sent during registration.
- The name will be the conference's name.
- Wafer uses the Django caching infrastructure in several places, so the cache table needs to be created using
manage.py createcachetable. - Create the default 'Page Editors' and 'Talk Mentors' groups using
manage.py wafer_add_default_groups. - Have a fun conference.
The default templates and css files require jquery and bootstrap to work.
wafer provides a bower.json file to simplify the installation process. This requires a working nodejs installation.
- Install bower
npm install bower - Use bower to install appropriate versions of bootstrap and jquery
$(npm bin)/bower install - Move files to the correct location
manage.py collectstatic
- Support for adding and editing sponsors via Django admin.
- Schedule can be created and updated via Django admin.
- Pages for static content, news and so forth can be handled via Django admin.
- Can be delegated to the 'Page Editors' group.
- Pages can be updated via the web interface.
- Talk submissions, review and acceptance.
- Generate a static version of the site for archival.
- Make the code easier to use for other conferences (split out theming, etc.).
- Improve the talk submission management module:
- Better display of accepted talks.
- Make various messages easier to customise.
- Improve admin support for the schedule:
- Show table of slots in admin interface.
- Improve handling of moving talks around.
- Support for adding news (and other templated pages) via Django admin.
- Maybe add some cool visualizations with d3:
- Number of people signed up in various categories.
- Places remaining.
- Sponsorship slots remaining.
- Days until various deadlines.
- Other improvements
- Add many tests
