Website/CONTRIBUTING.md

1.9 KiB

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 (.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.