If you would like to add or modify events for OHBM 2021, instructions for preparing the necessary information is at the bottom of this page.
Getting started: In addition to the enclosed scripts, you'll need to create a .env
file with:
- your login credentials for Firebase
- api information for Attendee Interactive
See the .env.sample
for the required information.
Special thanks to @htwangtw for many contributions.
All files used to generate the OHBM Abstract Book are located in the ohbm2021_abstract_book
directory.
The ipython
notebook ohbm_abstract.ipynb
contains all the commands used to generate the .csv
files required for compiling the ohbm2021_abstract_book.tex
file. A note that the .csv
files are delimited using €
to avoid potential conflicts with the variety of characters used in the abstract content.
To compile the .tex
file, run the following command twice from within the ohbm2021_abstract_book
directory:
lualatex -interaction=nonstopmode ohbm2021_abstract_book.tex
Note: Compiling the full abstract book currently takes approximately an hour, but it'll get there...
The primary file containing schedule information is OHBM2021_schedule.csv
. This file is used to generate ics
calendar files, which can be imported into any calendar software, as well as the csv
file described below for importing the events into Sparkle.
The columns in the main schedule file are structured as described in the section on Setting up the events file.
Posters (Abstracts) are assigned to standby times based on the combination of the schedule file, which specifies the times, and the session assignment, which is based on abstract categories. The categories and session assignments can be found in the abstract data file. The code used to grab the times and create the schedule files for abstracts is in OHBM_schedule_posters.ipynb.
The code for converting the schedule file to calendars is available in OHBM_schedule_to_calendars.ipynb.
For uploading the output .csv
file into Sparkle, see the section below.
All scripts necessary for uploading content are available in the sparkle_upload/scripts directory. Please note for some of the scripts to work, it may be necessary to have a local copy of the Sparkle repository as well.
To use scripts for batch uploading and modifying of events/venues, first run npm install
from inside the sparkle_upload directory. Further information about sparkle can be found at here.
To add events to sparkle, simply create a .csv
file with one event per row that includes the following comma-delimited fields:
Title | Speaker | Moderator | Date Start | Time Start | Date End | Time End | Location | TimeZoneBlock | Categories | UID | EVENTID |
---|---|---|---|---|---|---|---|---|---|---|---|
"Example Title", | "Jane Doe", | , | 20210622, | 140000, | 20210622, | 150000, | mainauditorium | AmericasEurope | keynote | , | , |
If you prefer to make this file in excel, simply export the file as .csv
Tips:
- If the field has multiple words, place quotes around it.
- If a specific field isn't necessary for your event, leave it blank by placing a
comma
Moderator
can refer to a person that is moderating and/or an organization that is organizing. If some cases this can be used to describe content of the event.- Dates are specified in UTC as
YYYYMMDD
- Times are specified in UTC as
HHMMSS
Location
refers to the venue name in Sparkle. If you don't know at this stage, simply writeTBD
and we'll sort that out on our end. This is updated regularly, though current options include: ['mainauditorium', 'symposiumhall1', 'symposiumhall2','symposiumhall3' 'symposiumhall4', 'posterhall', 'lounge', 'opendiscussion', 'exhibithall']TimeZoneBlock
options are:AmericasEurope
,AmericasAsia
,EuropeAsia
Categories
refers to the program category, and currently includes the following options: ['Talairach', 'Keynote', 'Symposium', 'Poster Highlights', 'Posters', 'Sponsored Symposia', 'Social', 'Announcements', 'Roundtables', 'Exhibitors Hour']UID
is the unique identifier used by.ics
files to ensure that an event won't be duplicated when modified or re-importedEVENTID
is the identifier used by Firebase (Sparkle) for the event
If you have any specific needs that aren't met by these fields, please get in touch to discussion options.
The schedule .csv
file described above can be used to upload events to Sparkle using the following command:
./add-event.ts sparkle-ohbm ./prodAccountKey.json [path to schedule.csv file]
If you find any errors in the schedule, please let us know and we'll get them fixed as soon as possible.
To modify events, it is first necessary to get the eventID
associated with an event in the Firebase database. The following command will generate a file with all eventIDs that can be used for reference:
./get-events.ts sparkle-ohbm ./prodAccountKey.json > ./events.csv
Next copy the eventIDs
to the last column of the .csv
schedule file so that the event is linked to its place in Firebase. The schedule file can then be used to modify the existing event:
./add-event.ts sparkle-ohbm ./prodAccountKey.json [path to schedule.csv file that includes eventIDs]
First get events and remove those to keep from csv:
./get-events.ts sparkle-ohbm ./prodAccountKey.json > ./events.csv
Then edit the events.csv
file to only contain events you would like to delete. To be safe, rename file as events_to_delete.csv
.
Then run the following to delete events listed in ./events_to_delete.csv
:
./delete-events.ts sparkle-ohbm ./prodAccountKey.json ./events_to_delete.csv
To add new rooms/venues, best to send along a .csv
spreadsheet with the following information:
- Template type
- Room/Venue name
- Link to space, if external to sparkle (e.g., Zoom link)
- Link to embeddable content, if venue type allows iframe. This can also be a live-stream link
- Brief description for landing page
- Where should the venue be locationed within Sparkle?
- Who are the 'owners' of the venue?
To create the venues based on this file:
./create-venues.ts sparkle-ohbm ./prodAccountKey.json [venues file].csv
Same procedure as above, but the .cvs
files should contain:
- Title
- Author name
- URL of poster
- URL of thumbnail
- URL of embedable video
- List of categories
- Poster ID number, if already assigned elsewhere
To create the posterpage based on this file:
./create-posterpage.ts sparkle-ohbm ./prodAccountKey.json [posterpages file].csv
A cvs
file should contain:
- Title (if part of video subcategory, such as a symposium, begin
title
withnumber
, such as1. [title]
orLecture 1. [title]
. This will be used for automatically sorting videos within a subcategory) - Author name (if multiple authors, separate names with commas)
- URL of thumbnail
- URL of embedable video
- Name of video category (eg, Keynote, Symposium, etc...)
- Name of video subcategory (optional), (eg Title of symposium)
- Video ID (optional) , if already assigned elsewhere
To upload the screeningroom content based on this file:
./add-screeningroom-videos.ts sparkle-ohbm ./prodAccountKey.json [videos file].csv