An Online BarCamp Session Grid Viewer
Waznex Server (What's Next?) is a web application server designed for BarCamp Grand Rapids, but which should be useful for other BarCamps or conferences with a rapidly-changing physical session grid. Its purpose is to host an online version of the meatspace presentation session grid. Essentially, attendees upload a photo of the session grid to the WaznexServer instance:
and the server converts this into an interactive grid:
This allows attendees to see what's going on in upcoming sessions without going out to the lobby.
Waznex Server is based on the Flask microframework and can easily be hosted on a Linux or OSX server. I currently recommend running in production on an Ubuntu 18.04 with at least 1GB of RAM.
- responsive full width display
- UI & wording updates
- show relative time since photo uploaded
- caching headers for static files
- auto-rotate iphone images
- system service for splitting the grid
- jinja loop fix
- pip/python2 bootstrap fix
- Upgraded to Ubuntu 18.04 Bionic
- Switched install from upstart to systemd for Ubuntu 16.04
- Moved to sockets for nginx to waznexserver communication
- Added Vagrant for easier development
- Much improved Makefile for easier development and production installation
- Usable documentation
- Newer versions of Flask and dependencies.
- Diagnostic image link between sizes and mark bad.
- Mark bad button.
- It now has a database backend using SQLAlchemy instead of the thread-unsafe global list. This has only been tested with Sqlite so far.
- You can now control how many images are shown on the main page - it's no longer hard-coded to 3.
- Version 0.1 includes the bare essentials of a working server.
- It can accept file uploads and will display the three most recent uploads using the mobile web theme.
- It generates two additional sized versions of each photo: a downsized version with maximum size of 1024x1024 pixels, and a thumbnail version with a maximum size of 316x316 pixels. The downsized version is useful for viewing on mobile platforms that limit download size (WebOS). The thumbnail version is sized to fit the mobile theme width.
- Install Vagrant and a provider (VirtualBox)
- Install git
git clone https://github.com/brousch/WaznexServer.git
cd WaznexServer
vagrant up
vagrant ssh
- SSH to server as root
sudo apt-get install -y make git
mkdir /opt/waznexserver
cd /opt/waznexserver
git clone https://github.com/brousch/WaznexServer.git
cd WaznexServer
make install_system_requirements
make bootstrap_modern_python_tools
make create_venv
make init_data
make init_production
- Modify the image, downsized, and thumbnail paths found near the top of
config.py
to reflect your file system. - Modify the
templates/index.html
file to change the page title. - Modify the
static/css/main.css
file to change the style. - Also be sure to disable debugging in a live deployment.
vagrant ssh
cd /opt/waznexserver/Waznexserver
make run
- Run
waznexserver/process_grid.py
after uploading
- SSH to server as root
cd /opt/waznexserver/WaznexServer
make run_production
- Set up HTTPS e.g. https://www.linode.com/docs/guides/enabling-https-using-certbot-with-nginx-on-ubuntu
- Set up HTTP/2 (just append
http2
tolisten
) e.g. https://www.linode.com/docs/guides/how-to-configure-http-2-on-nginx/