|
1 | 1 | SamAware |
2 | 2 | ======== |
3 | 3 |
|
4 | | -SamAware is a pretalx plugin with enhanced features for speaker care during a conference. |
| 4 | +SamAware is a [pretalx](https://pretalx.com/) plugin with enhanced features for speaker care during a conference. |
| 5 | + |
| 6 | +It is designed for conference staff taking care of speaker check-in, talk assistance, program coordination, stage operations, and similar tasks. |
| 7 | +SamAware was originally developed for the Speakers' Desk at [Chaos Communication Congress](https://en.wikipedia.org/wiki/Chaos_Communication_Congress). |
| 8 | + |
| 9 | +<img src="src/samaware/static/samaware/samovar.svg" alt="Stylized black and white icon of a Samovar tea pot" width="200" /> |
| 10 | + |
| 11 | +## Features |
| 12 | + |
| 13 | +SamAware enhances the pretalx orga interface with these features: |
| 14 | + |
| 15 | +- Dashboard with at-a-glance stats on missing speakers, unreleased schedule changes, etc. |
| 16 | +- Incremental search for talks by title or speaker name |
| 17 | +- Overview page for each talk gathering the relevant submission and speaker information |
| 18 | +- List of talks with "Don't record" setting |
| 19 | +- Tech Riders for talks with special technical requirements |
| 20 | +- Optional sync of the Tech Riders to a [Wekan](https://wekan.fi/) board *(error-prone, to be replaced with sync to another ticket system)* |
| 21 | +- Speaker Care Messages with internal information on a speaker that will be displayed prominently when accessing them or their talks |
| 22 | + |
| 23 | +## Installation |
| 24 | + |
| 25 | +> [!WARNING] |
| 26 | +> Due to [backward-incompatible changes in django-csp 4](https://django-csp.readthedocs.io/en/latest/migration-guide.html), SamAware is currently not compatible with any released pretalx version, but only the current development version from Git. |
| 27 | +> This is going to change with the next pretalx release. |
| 28 | +
|
| 29 | +SamAware is available from PyPI and gets installed like any other pretalx plugin. |
| 30 | +First, install the package into your pretalx installation's Python environment: |
| 31 | + |
| 32 | + (env) > pip install samaware |
| 33 | + |
| 34 | +Next, you need to collect and compress static assets: |
| 35 | + |
| 36 | + (env) > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin collectstatic |
| 37 | + (env) > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin compress |
| 38 | + |
| 39 | +Afterward, restart pretalx. |
| 40 | + |
| 41 | +SamAware should now appear in the pretalx orga interface of your Event under "Settings" / "Plugins" / "Features". |
| 42 | +You can enable it there for each Event. |
| 43 | + |
| 44 | +SamAware requires no configuration unless you plan to use Wekan sync of Tech Riders. |
| 45 | +For that feature, provide the required information under "Settings" / "SamAware". |
| 46 | + |
| 47 | +## Development |
| 48 | + |
| 49 | +For a local development environment, set up a [Python venv](https://docs.python.org/3/library/venv.html) or use a dev container. |
| 50 | + |
| 51 | +pretalx itself must be installed in that environment. |
| 52 | +One option is to create a full development setup as described [in the pretalx docs](https://docs.pretalx.org/developer/setup/). |
| 53 | +Alternatively, you can get the latest pretalx release from PyPI by running: |
| 54 | + |
| 55 | + > pip install pretalx |
| 56 | + |
| 57 | +In both cases, you then clone the SamAware repo, change to that source directory, and add it to your environment like this: |
| 58 | + |
| 59 | + > pip install -e .[dev] |
| 60 | + |
| 61 | +You probably need to collect and compress static assets and apply migrations: |
| 62 | + |
| 63 | + > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin collectstatic |
| 64 | + > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin compress |
| 65 | + > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin migrate |
| 66 | + |
| 67 | +If not done already, initialize your pretalx dev instance through: |
| 68 | + |
| 69 | + > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin init |
| 70 | + |
| 71 | +It is useful to create a demo Event for development. |
| 72 | +This requires the "Faker" and "freezegun" Python packages. |
| 73 | +Setting it up in the "schedule" stage provides the best starting point for SamAware development: |
| 74 | + |
| 75 | + > pip install Faker freezegun |
| 76 | + > DJANGO_SETTINGS_MODULE=pretalx.settings django-admin create_test_event --stage schedule |
| 77 | + |
| 78 | +Now, you should be able to start the development server through: |
| 79 | + |
| 80 | + make run |
| 81 | + |
| 82 | +Make sure to have a look at the Makefile as it also provides useful targets for testing and linting. |
| 83 | + |
| 84 | +Finally, open the running instance in a browser and enable SamAware in the orga interface for your demo Event under "Settings" / "Plugins" / "Features". |
| 85 | + |
| 86 | +## Security |
| 87 | + |
| 88 | +Should you encounter any security vulnerabilities in SamAware, please report them privately. |
| 89 | +Use GitHub vulnerability reporting or contact Felix Dreissig directly. |
| 90 | + |
| 91 | +## Copyright |
| 92 | + |
| 93 | +SamAware has been created by Felix Dreissig. |
| 94 | + |
| 95 | +It is released under the ISC License. |
0 commit comments