/callForPapers

Primary LanguageJavaGNU Affero General Public License v3.0AGPL-3.0

Call For Papers

alt text

Features

  • Spring Boot Application
  • AngularJS Front-end
  • JWT Token
  • Localization (fr, en)
  • Material design

User Panel

  • Google, Github OAuth authentification
  • Account register (with email confirmation)
  • Talks submission (with email confirmation)
  • Save/delete draft

Admin Panel

  • Sort talks (by rate, date, track...)
  • Filter talks (by track, talker name, description...)
  • Rate talk
  • Comment talk

Setup

Change 127.0.0.1:8080 to your application domain for production

Obtaining OAuth Keys

  • Visit Google Cloud Console
  • Click CREATE PROJECT button
  • Enter Project Name, then click CREATE
  • Then select APIs & auth from the sidebar and click on Credentials tab
  • Click CREATE NEW CLIENT ID button
  • Application Type: Web Application
  • Authorized Javascript origins: http://127.0.0.1:8080
  • Authorized redirect URI: http://127.0.0.1:8080

Note: Make sure you have turned on Contacts API, Google+ API and Drive API in the APIs tab.


Obtaining reCAPTCHA Keys

Edit CFP Settings

Settings are provided by application.properties file or by JVM arguments.

Development settings are in config/application.properties of this repo. Global, embedded, settings are defined in src/main/resources/application.properties.

Please read Spring Boot documentation for more information:

You also need to edit src/main/static/app/scripts/app.js to add your providers tokens:

  .constant('Config', {
    'recaptcha': 'yourRecaptchaPublicToken',
    'googleClientId': 'yourGoogleClientId',
    'githubClientId': 'yourGithubClientId'
  })

Deployment

  • NodeJS is required to run frontend build tools. The build has been tested with version 4.2.2. Its installation is included in the Maven build. However, if you want to contribute to frontend, you may install it by yourself to be able to use frontend build tools from the command line.

Development

You need a MySQL database to start the application. If you have Docker, you can launch one for development with

$ mysql-dev.sh

Backend development

If you intend to contribute to backend exclusively and don't want to deal with the NodeJS tools necessary for frontend development and build, you can start the application with the following command:

$ mvn -Prelease spring-boot:run

You can start fr.sii.Application#main() on your favorite IDE too.

Frontend development

Frontend contributors can use usual frontend build tools from the command line:

  • Gulp and Bower are required to build. You can install them with:

    $ npm install -g gulp bower
  • To install build tools dependencies specified in package.json, you have to run the following in project root folder:

    $ npm install
  • To install project third party libraries specified in bower.json, you have to run the following in project root folder:

    $ bower install

A Gulp task gulp serve is available to facilitate contributions to the front code. It starts a web server on port 3000 for files in src/main/static/app directory. Livereload is configured and requests to the backend are forwarded to the AppEngine development server (http://127.0.0.1:8080) thanks to an proxy.

```bash
$ gulp serve # or gulp serve:dist for minified version of front files, but no livereload in this case
```

Usage :

Manage admin users :

  • Visit Google Cloud Console
  • Select your project
  • Click Permissions button
  • Click Add member button :
  • Email: New member e-mail
  • Can view

App entry points :

Contribution and project infrastructure

Development take places on branch master. We have a CI job setup to validate pull-requests, please avoid direct push to master. Contributors, please sign-off your commits (git commit --signoff) Production environment is configured to deploy from production branch. Another CI job do build and deploy from this branch automatically. So please test from master branch before pushing to production.