You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.9 KiB

Xquisite Branch

A branching version of the exquisite corpse game. A drawing app developed for SI17.

Draw something, upload it and send the link to someone else: they will continue from your drawing. But wait! There's a catch!!!!! If you send to just one person the chain will continue linearly, but send it to more people and things will start branching in different directions.

Install

Clone the repository.

git clone https://git.xpub.nl/kamo/exquisite-branch.git

Create a virtual environment.

python3 -m venv venv

Install the requirements with pip and the requirements.txt file.

pip install -r requirements.txt

Create an .env file in the root folder of the project with the following variables:

DEBUG=True
FLASK_ENV=development
FLASK_APP=exquisite_branch

Before running the app for the first time, be sure to initialize the database. Watch out: this will delete the previous instance of the database along with its contents!

flask init-db

After initializing the database you can run the flask application

flask run

Overview

Xquisite Branch saves contents in a database, and join them together in a branching version of the exquisite corpse.

The original exquisite corpse data structure is something similar to a linked list, where every drawing is connected to the previous one. Contents in Xquisite Branch are saved in a database with the same principle.

Each entry in the database has the following properties:

  • id: a unique identifier for every entry
  • branch: a random name for the excerpt
  • parent: the random name of the previous excerpt
  • content: the actual content of the writings
  • username: the author of the excerpt

When generating the display page, every entry look up its parent property to position itself after that.

Mhh should rewrite this better bc is super convoluted ahah.