Add contribution guide

pull/1/head
Oliver Kennedy 2016-07-09 20:42:19 -04:00
parent 14173cb8b1
commit 4fa78e4420
1 changed files with 46 additions and 0 deletions

46
CONTRIBUTING.md Normal file
View File

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