Matching Software for Speed Friending and Dating Events
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Matching Software for Speed Friending and Dating Events

Build Status License: MIT Code style: black

This application is designed to make your life as organizer of speed friending or speed dating events easier. I created this software for a local speed friending event in Vienna, Austria to give back value to the event organizers. For me, the project additionally serves as a playground for software engineering best practices. The application was implemented in an agile, test-driven development process applying all development best practices so far known to me.

Installing the application

To install the live coding environment run:

python install

or install it via pip

pip install speed-friending-matcher

How to use it

Run the speed-friending-matcher from the command line:

usage: speed_friending_matcher [-h] -i INPUT -o OUTPUT [-m MATCHMAKER] [-s]

Matchmaking application for speed friending events

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        Input plugin and parameters e.g. csv:somefile.csv
  -o OUTPUT, --output OUTPUT
                        Output plugins and parameters e.g. todo:mytodo.txt
  -m MATCHMAKER, --matchmaker MATCHMAKER
                        Matchmaker, simple or clique
  -s, --server          Starts a local webserver with a web GUI.

For example:

speed_friending_matcher -i csv:example/sample.csv -o todo:test.txt

Importer Plugins

  • csv:.csv: imports a CSV file with partipants data

Exporter Plugins

[] means optional

  • todo - exports a TODO file
  • onexlsx - exports a single Excel sheet containing matching information
  • clique - exports a file containing all found cliques, to be used with the clique matchmaker
  • graph - exports a graphical representation of the match graph, supports any export formats supported by GraphViz
graph:<filename>.<png, dot, ...>


  • simple: Simple I liked you, you liked me matchmaking
  • clique: Finds cliques of people liking each other

Run on your Server

The application can be started in server mode with the optional command line argument -s. However, please be aware that this starts a development server which is not recommended to be used for production.

If you want to run the application on your webserver please refer to the WSGI Guide for Flask. or use gunicorn.

For example:

pip3 install gunicorn --user
gunicorn -w 4 wsgi:application

Use your Apache or other webservers .htaccess to forward the port.

Extending the software

You can extend the software by adding new import and export plugins. Take a look the default plugins csvimporter and todoexporter for more details.