Code Monkey home page Code Monkey logo

mini-conf's Introduction

MiniConf

MiniConf is a virtual conference in a box. It manages the papers, schedules, and speakers for an academic conference run virtually. It can be easily integrated with interactive tools such as video, chat, and QA.

MiniConf was originally built to host ICLR 2020 a virtual conference with 6000 participants and have been used to host a wide variety of major conferences.

It is designed to be:

  • Run based on static files hosted by any server.
  • Modifiable without a database using CSV files.
  • Easy to extend to fit any backend or additional frontend tools.

Links

Demo system: http://www.mini-conf.org

Source Code: https://github.com/Mini-Conf/Mini-Conf

Get Started

> pip install -r requirements.txt
> make run

When you are ready to deploy run make freeze to get a static version of the site in the build folder.

Tour

The MiniConf repo:

  1. Datastore sitedata/

Collection of CSV files representing the papers, speakers, workshops, and other important information for the conference.

  1. Routing main.py

One file flask-server handles simple data preprocessing and site navigation.

  1. Templates templates/

Contains all the pages for the site. See base.html for the master page and components.html for core components.

  1. Frontend static/

Contains frontend components like the default css, images, and javascript libs.

  1. Scripts scripts/

Contains additional preprocessing to add visualizations, recommendations, schedules to the conference.

  1. For importing calendars as schedule see scripts/README_Schedule.md

Extensions

MiniConf is designed to be a completely static solution. However it is designed to integrate well with dynamic third-party solutions. We directly support the following providers:

  • Rocket.Chat: The chat/ directory contains descriptions for setting up a hosted Rocket.Chat instance and for embedding chat rooms on individual paper pages. You can either buy a hosted setting from Rocket.chat or we include instructions for running your own scalable instance through sloppy.io.

  • Auth0 : The code can integrate through Auth0.com to provide both page login (through javascript gating) and OAuth SSO with Rocket Chat. The documentation on Auth0 is very easy to follow, you simply need to create an Application for both the MiniConf site and the Rocket.Chat server. You then enter in the Client keys to the appropriate configs.

  • SlidesLive: It is easy to embedded any video provider -> YouTube, Vimeo, etc. However we have had great experience with SlidesLive and recommend them as a host. We include a slideslive example on the main page.

  • PDF.js: For conferences that use posters it is easy to include an embedded pdf on poster pages. An example is given.

Acknowledgements

MiniConf was built by Hendrik Strobelt and Sasha Rush.

Thanks to Darren Nelson for the original design sketches. Shakir Mohamed, Martha White, Kyunghyun Cho, Lee Campbell, and Adam White for planning and feedback. Hao Fang, Junaid Rahim, Jake Tae, Yasser Souri, Soumya Chatterjee, and Ankshita Gupta for contributions.

Citation

Feel free to cite MiniConf:

@misc{RushStrobelt2020,
    title={MiniConf -- A Virtual Conference Framework},
    author={Alexander M. Rush and Hendrik Strobelt},
    year={2020},
    eprint={2007.12238},
    archivePrefix={arXiv},
    primaryClass={cs.HC}
}

mini-conf's People

Contributors

animesh-007 avatar arpansriv avatar guyaglionby avatar hao-fang avatar hendrikstrobelt avatar p16i avatar sameersingh avatar srush avatar tompollard avatar villalbamartin avatar vukosim avatar ylannb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mini-conf's Issues

Deployment tools

Make it super easy to deploy to gh-pages or somewhere else that hosts static sites.

"Create your own schedule"

I really liked the option to easily create your own schedule that was used at NAACL 2019 (https://naacl2019.org/schedule/). It would be useful if it could also be organized in various ways (e.g., by date and time, or by track) and exported.

It would save time for people who are (a) trying to figure out which papers to attend given their interests, time zones, and other constraints, and then quickly look up when to log-in to each paper's QA session, and (b) perhaps be the starting point for a user to write notes on the conference (e.g., something like what I tried to do here: https://github.com/juand-r/ICLR-2020 , although that is very incomplete).

Search by relevance

First of all congratulations on the amazing app! I love using the service for different conferences.

I was wondering how you would like to add a feature of searching conference papers by relevance in addition to the exact match feature that is currently implemented. Users will be able to query either by keywords or abstract of a recent article they are working on and the service will set a 'relevant' documents from the list of papers in a conference. The relevancy will be judged solely based on the title and the abstract of the papers of the conference. We can implement a BM-25 based retrieval model or use SciBert embeddings to retrieve the relevant list of documents.

The only con for this idea is that the solution won't be static. However, let me know if you like the idea and I would love to work on it and contribute to the project! :)

Reference of inspiration for the idea comes from this BIR paper

Add paper search by keywords

Please make it possible to search papers by keyword (single or multiple), in addition to by title and by author.

dead?

I am curious if mini-conf is still alive and being used, or what alternative solutions people went for instead?

Add a list for checked papers

Although the checked papers have a different color in the paper visualization panel, it would be helpful to have a list of all checked papers.

More than one "track" per paper

I liked how the site allowed one to filter papers by session and by track, but unfortunately it is easy to skip interesting papers within a give topic like this. For example, "Posterior Control of Blackbox Generation" by Li and Rush was in the "Machine Learning for NLP" track, rather than the "Generation" track.

Is it possible to assign more than one category for each paper?

Integration with Jitsi

Wow, if I only knew you existed 2 weeks ago. During OHBM conference we had to quickly establish an "alternative" poster session to the one provided by a commercial solution. You can see it in action at https://datalad-datasets.github.io/ohbm2020-posters/ . The savior was free https://meet.jit.si which allowed to "mint" rooms per each poster. Later EtherPad was bolted on to provide persistent notes etc. May be it would give ideas ;)

Cheers and thank you for the GREAT WORK!

Deploy inline.

make deploy Configuration to deploy directly to a gh-pages in the same repo.

V2

  • Easier robust Chat solution
  • Templates
  • Accessibility
  • Personalization / Authentication

Integrate an open-source chat system.

We would like to have a default chat system built in with a script that creates chat rooms for each paper.

One idea would be to use rocket.chat, but maybe there is something with a better license.

Choose timezone and remember it across webpages

Currently the ACL2020 virtual conference website allows people to choose timezone in the "Schedule" page, but people get confused why their selected timezone isn't reflected in other pages.

image

It may be useful for Mini-Conf to have a timezone dropdown menu in the header (or somewhere else) and use local cookie to remember the selection. Then we can always display the selected timezone for individual sessions.
I guess it can go into https://github.com/Mini-Conf/Mini-Conf/blob/master/templates/base.html

Only allow "squash and merge"

I notice that the master commit history contains intermediate commits for PRs.
Probably good to always do "Squash and merge".

Can be done by in "Settings".
Screen Shot 2020-05-22 at 11 14 40 PM

Issue with timezones

Hi, I have an issue with timezones. All dates are given 2-10 PM CEST (UTC+2) in the JSON file.
I am currently looking into static/js/views/calendar.js, I will let you know if I find a fix.
Possibly an update to tui.calendar v1.13 would fix?
Screenshot 2021-06-22 at 15-59-50 EDM 2021 Schedule

freeze.sh doesn't work

I got this error message when running ./freeze.sh and no files are generated.

./env/lib/python3.7/site-packages/flask_frozen/__init__.py:199: MissingURLGeneratorWarning: Nothing frozen for endpoints send_static. Did you forget a URL generator?
  return set(page.url for page in self.freeze_yield())

Clean up markup.

The markup is a bit sloppy. Someone who is an expert in bootstrap could likely do it in a cleaner way.

Document live integrations

Several people have requested integrations with live tools:

  • slido
  • presence (who is looking at this page)
  • zoom
  • YouTube / twitch

Would be nice to have documentation of how to do these, integration points.

MCSDMS: Mini-Conf /sitedata management systems/setups

I wonder what setups/systems people use/recommend to manage/populate sitedata and related content? E.g. for a conference with a few 1,000 of participants who need to upload their posters (pdfs) and pre-recorded talks -- how could it be streamlined.

Clean up CDN

We get the javascript from several different CDNs would be nice to standardize.

RocketChat integration issue

There are a few issues with RocketChat integration.

  1. When I visit https://mini-conf.github.io/chat.html and click "Chat", I got a blank page. The console shows the error below. This probably can be fixed by using "https" instead of "http".
    image

  2. According to RocketChat tech support (via email),

once Iframe auth is enabled you won't be able to access the default login page - the workaround here will be to execute the following code on every login: Meteor.loginWithPassword('username-or-email', 'your-password'); - more about this workaround and the Iframe auth in general you can check in this guide.

Not sure how to resolve this. I'll look into some options. But I wonder how ICLR addressed this issue? @srush

Presence

Make it possible to know who is looking at a paper at any given time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.