From 4fa78e44209b188b2820ce881ac74b8fccc7abbd Mon Sep 17 00:00:00 2001 From: Oliver Kennedy Date: Sat, 9 Jul 2016 20:42:19 -0400 Subject: [PATCH] Add contribution guide --- CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..601c7b5b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,46 @@ +## The Website + +Data for the website comes from three places: +* db/ : "The Database", a JSON object that provides metadata and structured + representations of publications, lab member details, etc... +* src/ : "The Website". Files in this directory are automatically compiled + through a sequence of transformations (defined in `Rakefile`). Most files + in this directory are in [Embedded Ruby](https://en.wikipedia.org/wiki/ERuby) + (`.erb`) format. +* slides/, software/ : "The Static Content". Files in these directories are + posted with no transformation or compilation. + +You don't need to upload anything. Branch the repo, commit your changes, and +if they test successfully, create a merge request to add your changes. + +## The Database + +Much of the data that goes into the website is generated dynamically based on +a JSON database. The directory `db` contains a JSON object heirarchy, split +out into multiple files for convenience. Directories will append to an object +at the same path. For example, part of the structure is: +* db/venues.json +* db/venues/SIGMOD.json +* db/venues/pVLDB.json +The resulting database will include +``` +{ + venues: { + "MIST" : { ... }, // From venues.json + ... + "SIGMOD" : { ... }, // From venues/SIGMOD.json + "pVLDB" : { ... }, // From venues/pVLDB.json + }, + ... +} +``` +Relevant portions of the hierarchy: +* lab: Lab Members, Alumni, and Collaborators. Used to generate /people, as + well as URLs in any place where a lab member's name is mentioned. +* publications: Metadata for papers that lab members have published. +* venues: Metadata regarding conferences. Used to generate full conference + names, as well as numerous annotations for CV generation +* people: Metadata regarding random people that may/may not be affiliated with + the lab. Used primarily for CV generation +* cv: Data uased to generate CVs. +