# Seating planner

This app attempts to solve the problem of seating a group of guests at a wedding (or other occasion) so that everyone knows people on their table.

The approach taken involves:

• Using a connection matrix that defines the strength of connections between all the guests, and using that to score a given arrangement. Credit for this goes to Meghan L. Bellows and J. D. Luc Peterson2

• Using simmulated annealing to attempt to find a good solution.

The code for this comes from https://github.com/perrygeo/python-simulated-annealing

seating_planner/solver.py contains the main entry point for the algorithm

seating_planner/web_app.py contains a Flask web app as a UI, including a relatively nice interface for entering the connection matrix.

## Installation and running

Preferably in a virtualenv:

• Add the current directory to the Python path
• $pip install -r requirements.txt • ./seating_planner/web_app.py Access on localhost:5000 It can be run under PyPy for significant speedups (about 5-10x) It can de deployed using any WSGI container e.g. gunicorn:$ gunicorn -b 127.0.0.1:12345 -D -w 4 seating_planner.web_app:app

## License

seating_planner/anneal.py has its own copyright licence.

Other code is put into the public domain.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.