Skip to content
Creates a static website of Case Law and Scholarship data from around the world based on Google Form responses and manually curated.
HTML Ruby CSS Shell Python
Branch: master
Clone or download

Latest commit

TimidRobot Merge pull request #21 from SaurabhAgarwala/fix_broken_link
Mention Links with Restricted Access in README
Latest commit a235791 Mar 26, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create CODEOWNERS Jun 21, 2019
jekyll update csv data from Google sheets Jan 29, 2020
scripts hardcoded SHEET_ID as it is not expected to change Dec 14, 2018
.cc-metadata.yml Create .cc-metadata.yml Jun 21, 2019
.gitignore added *.swp and sorted Dec 14, 2018 Update Jun 22, 2019 Create Jun 22, 2019
LICENSE Refactored README and added LICENSE Dec 13, 2018 Correct grammatical error in README Mar 26, 2020


Creates a static website of Case Law and Scholarship data from around the world based on Google Form responses and manually curated:

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct ( By participating in this project you agree to abide by its terms.


  1. Gather information via Google Forms.
  2. Copy new responses from Form Responses Google Sheets to the Caselaw - Primary Data Google Sheet
  3. Review and copy-edit the new responses in the Caselaw - Primary Data Google Sheet
  4. Update the Repository CSVs - Generated CSVs by running:
  5. Commit and push the resulting changes. For example:
    git commit -a -m 'Latest changes'
    git push origin master
    • Please use a more detailed/specific commit message
  6. On the hosting server, pull the latest changes into your clone repository.
  7. On the hosting server, build the site and copy it into place by running:
    • (The script will ask for your password in order to run sudo when copying the built files into position.)


When working with countries, make sure to use the same name for the country in all the spreadsheets. For the purposes of this project, a "Country" is something that is named in World - jVectorMap. This means that, for example, we must use "United Kingdom" rather than "Scotland" or "Wales".

"Jurisdiction" is an option this can be used to more accurately describe th resource's origin. I (RobM) apologize for this.



Repository CSVs

Generated CSVs

Generated CSVs:


  • These are the CSV (Comma Separated Values) format spreadsheets that are used to build the site pages.
  • Do not edit the content of these files. Instead:
    1. Edit the Caselaw - Primary Data - Google Sheet
    2. Run ./scripts/

Caselaw - Primary Data Google Sheet

Google Sheet:


  • This is the Google sheet that details are copied to from the Results spreadsheets and given editorial attention on.
  • There are two sheets: CASES and SCHOLARSHIP
  • Do not copy the contributor's name into these if they have not selected the option to receive credit.
  • When a given entry is ready to be published, set the value of the "Publish" column to "Publish" for it. Otherwise leave it blank or set it to "N".
  • The Sheet ID is 1Z9IcBgdDYoeZw0Xx573ZMp5JcJDCNhOUHrj0guU9byo. If this changes, update the SHEET_ID in ./scripts/

Google Form Responses Google Sheets

Google Sheets:


  • These Google Sheets are the results of people completing the Google Forms.
  • Pay special attention to whether the contributor has selected the option to receive credit or not

Manually Managed CSV

Manually Managed CSV:


  • This is the list of countries we have data for. If a country is not listed here, its data will not be used.
  • code column contains the uppercase two-letter code for the country (ISO 3166-1 alpha-2). See World - jVectorMap.
  • country column contains the name of the country in English. It must be from World - jVectorMap
  • notes column contains optional text to be included in the country page.




Error text:

caselaw/jekyll/_plugins/data_page_generator.rb:45:in `eval': undefined method `tr' for nil:NilClass (NoMethodError)

You have probably missed out the 'Country' entry for one of the rows in the spreadsheet.

This error indicates that a value being used in a dir: entry for page_gen: in _config_yml cannot be found. As we use data["Country"] in these, if it cannot be found this will fail.

Software Used

Future Work

The following potential work has been identified:

  1. Remove the Caselaw - Primary Data Google Sheet cut and paste process. Instead manipulate the data in the Google Form Responses Google Sheets.
  2. Schedule updates so that a tech person does not need to be wrangled to apply them.

Sister Project


You can’t perform that action at this time.