Go to file
2016-07-09 20:40:55 -04:00
assets Improved seminar formatting 2016-06-20 09:55:42 -04:00
cvs HILDA presentation updates, and adding oracle presentation 2016-06-21 21:35:04 -04:00
db Update talks.json 2016-07-09 19:25:07 -04:00
lib Bibtex bugs 2016-06-17 22:53:03 -04:00
old Finishing off the other sections 2016-05-25 20:57:21 -04:00
slides HILDA presentation updates, and adding oracle presentation 2016-06-21 21:35:04 -04:00
software/jsqlparser bringing in static assets and MathJax 2016-05-25 23:08:33 -04:00
src Updating students, QDB pub 2016-07-09 11:31:41 -04:00
subsites Vizier subsite 2016-06-20 11:15:04 -04:00
templates Grants 2016-06-06 10:47:16 -04:00
.gitignore Support for CVs 2016-06-14 19:56:33 -04:00
.gitlab-ci.yml Update .gitlab-ci.yml 2016-07-09 16:19:50 -04:00
Rakefile Updating students, QDB pub 2016-07-09 11:31:41 -04:00
README.md Add new file 2016-07-09 20:40:55 -04:00

The ODIn Lab Website

Hosted at http://odin.cse.buffalo.edu

Editing the Website

The lab page is automatically generated using a homebrew tool called GemSmith, which builds functionality similar to MetalSmith into Ruby's Rake build tool. To compile the repository, just invoke Rake

$> rake

You'll need at least Ruby 2.3. Generated files live in build/

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.