talk-submissions icon indicating copy to clipboard operation
talk-submissions copied to clipboard

A simple Grails application for managing talk submissions to conferences

Talk Submissions Application

This is a simple Grails application for accepting talk submissions for conferences. It allows people to log in via Twitter or Facebook, create a profile and then submit abstracts. It also allows the conference organiser to review submissions, assign them to time slots, and send emails for acceptance and rejection. It also has a simple schedule view.

There is still much work to be done to make it really usable and re-usable.

Getting Started

The application requires a database and access to a mail server, but that's all. You also need to specify some configuration to allow Twitter & Facebook authentication and the sending of emails. Once that's done, you can test it out via

./grailsw run-app

Note that if you don't have Grails installed, this command will take a while to complete the first time round as it has to download Grails.

At the moment, the configuration should either go in grails-app/conf/Config.groovy or in a GRAILS_APP_CONFIG environment variable as a JSON string. The relevant config options that need valid values are

oauth {
    providers {
        twitter {
            ...
            key = 'rIafXlyPcGRhTJsXRbrZjg'
            secret = 'gDiqDmb3qG8OoFwa5ztNwk0yHvz5T9oUSapZKP1k'
            callback = "${grails.serverURL}/oauth/twitter/callback"
        }
        ...
    }
}

and

sendgrid {
    username = '*******'
    password = '********'
}
grails.mail.default.from = "[email protected]"

The latter options are self-explanatory, but the OAuth ones require you to create developer accounts on the relevant service (Twitter or Facebook) and generate API keys for this application. Also, the above syntax is for Config.groovy and is not JSON.

[TODO: Add command to convert ConfigSlurper syntax to a JSON string]

Customisation

If you want to use this app, you almost certainly want to change the look and feel, or the header and footer at least. The place to do this is in

grails-app/views/layouts/main.gsp

Note that this means modifying application source files, so effectively requires you to fork the project. There still needs to be easier customisation, either by making this app a plugin, or by specifying a directory in which to put custom stuff.