Skip to content
No description, website, or topics provided.
Java HTML JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
readme
src
.gitignore
.springBeans
CHANGELOG.md
Gruntfile.js
README.md
configure-appengine-web-app.sh
nbactions.xml
package.json
pom.xml
post_install.exp

README.md

Call For Paper

alt text

Features

  • Powered by App Engine
  • Spring Back-end
  • AngularJS Front-end
  • Google Spreadsheet
  • Datastore database
  • 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

Edit src/main/webapp/WEB-INF/appengine-web.xml replace the informations to suit your need :

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>yourAppID</application>
    <version>1</version>
    <threadsafe>true</threadsafe>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
    <sessions-enabled>true</sessions-enabled>
    <env-variables>
        <env-var name="ENV" value="dev"/>
        <env-var name="GOOGLE_LOGIN" value="yourGoogleLogin"/> <!--owner's email of the spreadsheet (google drive account)-->
        <env-var name="GOOGLE_PASSWORD" value="yourGooglePassword" /> <!-- optional password for testing purpose, empty string otherwise-->
        <env-var name="GOOGLE_CLIENT_ID" value="yourGoogleClientId"/> <!--google oauth client id-->
        <env-var name="GOOGLE_CLIENT_SECRET" value="youtGoogleClientSecret"/> <!--google oauth secret-->
        <env-var name="GITHUB_CLIENT_ID" value="yourGithubClientId"/> <!--github oauth client id-->
        <env-var name="GITHUB_CLIENT_SECRET" value="youtGithubClientSecret"/> <!--github oauth client secret-->
        <env-var name="EMAIL_SENDER" value="yourEmailUsername"/> <!--sender's email address-->
        <env-var name="AUTH_SECRET_TOKEN" value="yourRandomSecretToken"/> <!--random secret token for jwt-->
        <env-var name="AUTH_CAPTCHA_PUBLIC" value="yourRecaptchaPublicToken"/> <!--recaptcha public key-->
        <env-var name="AUTH_CAPTCHA_SECRET" value="yourRecaptchaSecretToken"/> <!--recaptcha private key-->
    </env-variables>
</appengine-web-app>

Edit src/main/webapp/WEB-INF/application-prod.properties replace the informations to suit your need :

google.login=${GOOGLE_LOGIN}
google.password=${GOOGLE_PASSWORD}
google.spreadsheetName=CallForPaper // google spreadsheet name
google.worksheetName=prod // google worksheet name
google.clientid=${GOOGLE_CLIENT_ID}
google.clientsecret=${GOOGLE_CLIENT_SECRET}

github.clientid=${GITHUB_CLIENT_ID}
github.clientsecret=${GITHUB_CLIENT_SECRET}

auth.secrettoken=${AUTH_SECRET_TOKEN}
auth.captchapublic=${AUTH_CAPTCHA_PUBLIC}
auth.captchasecret=${AUTH_CAPTCHA_SECRET}  

database.loaded=true

email.emailsender=${EMAIL_SENDER}
email.send=true // disable emailing

webapp.dir=dist

app.eventName=DevFest 2015 // navbar title "Call for paper - {{eventName}}"
app.community=GDG Nantes // community name (for email)
app.date=06/11/2015 // event date
app.releasedate=01/09/2015 // speakers publication date
app.hostname=http://aesthetic-fx-89513.appspot.com // root domain (email images/links)

Edit src/main/webapp/WEB-INF/static/app/scripts/app.js add your providers tokens :

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

Deployment :

App Engine :

grunt build
mvn appengine:update [-Dmaven.test.skip=true]

Local :

grunt build
mvn appengine:devserver [-Dmaven.test.skip=true]

For local deployment, set all appengine-web.xml env-var in you OS with the same value.

  • Go to : http://127.0.0.1:8080

  • The application will guide you througth the process to link your Google Drive account to the application.

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 :

You can’t perform that action at this time.