Boomerang is a template for a dynamic material design GDG chapter web site that can be deployed within 30 minutes. It pulls data from GDG-X Hub and Google+ API using AngularJS and Angular-Material.
See it in action: http://gdg-x.github.io/boomerang
There are multiple forked versions for Google App Engine
Update app/services/configService.js with values appropriate for your group:
- name: The name of your GDG
- id: The ID of the Google+ page for your GDG; for example, if your page URL is https://plus.google.com/u/0/b/115803993493374365281/, then the ID is '115803993493374365281'.
- google_api: The API key for your project, available from the Cloud Console
- Create a new project then go to APIs & Auth->APIs, activate Google+ API.
- Go to APIs & Auth->Credentials and under Public API access 'Create new Key' of BrowserKey with
Any referrer allowed
. - pwa_id: The ID for a Picasa web album from which pictures will be drawn. If you do not have a Picasa web album for your group, you will want to comment out the photos tab in index.html.
- twitter, facebook, meetup: Update these with your chapter's social network handles. Setting them to '' will hide the icon.
- Create your Google Analytics account and modify the Google Analytics tracking code in index.html.
- domain: Your custom domain name (or base appspot URL).
- cover.title: An announcement that will appear on the landing page.
- cover.subtitle: More text to support the landing page announcement.
- cover.button.text: Text for the announcement button.
- cover.button.url: The URL that the announcement button will open in another window.
- cover.url: If the cover image drawn from your Google+ page does not work with the default layout, you can specify a URL for a specific image instead.
- Edit the snippet details in the index.html to change how your page looks when it is shared.
- Modify the images in war/app/images/sponsor1 and war/app/images/sponsor2 to be your sponsor images.
- Modify the sponsor links in about.html.
Here you will install dependencies and tooling, build, minify, run static analysis, and more. You must have Node.js installed to use the build tools. Download it here. From the boomerang directory, run the following:
npm install
gulp
- Unit tests can be run once via
gulp karma
or constantly viagulp karma-watch
. - Integration tests can be run via:
node node_modules/protractor/bin/webdriver-manager update
node node_modules/protractor/bin/webdriver-manager start
- Then in a separate terminal:
node node_modules/protractor/bin/protractor test/e2e/conf.js
- WebStorm or IntelliJ IDEA can make this testing a lot easier if you configure the idea to do it for you.
If you aren't using App Engine, you should be able to test locally with Node.js using the following:
npm install http-server -g
cd boomerang
http-server -o
Deploy on your web server of choice (Apache, Nginx, etc). If you need a web server, Google App Engine's free tier should be more than sufficient for your chapter's needs.
Make sure that you do the following successfully before committing:
gulp prod
- Make sure you fix any JSCS or JSHint errors.gulp karma
- Make sure that you fix any broken tests.- Protractor tests - Make sure that you fix any broken tests.
- If you changed any dependency versions in
bower.json
, make sure thatconfig/CDN.json
is updated to match.
- http://gdgspacecoast.org/
- http://www.gdg-bodensee.de/
- http://www.gdgfresno.com/
- http://gdg-brussels.org/
- http://www.gdgschaumburg.com/
- http://gdgdubai.com/
- http://gdga-site.appspot.com/
###Contributors See list of contributors
Maintainer: Splaktar.
######GDG Apps, GDG[x] are not endorsed and/or supported by Google, the corporation.
© 2013-2016 GDG[x]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.