Giter VIP home page Giter VIP logo

hoverboard's Introduction

Hoverboard

Hoverboard logo ⚡ Live demo | 🚀 Get Started

Build status

Overview

Project Hoverboard is the conference website template that helps you to set up a mobile-first conference website with blog, speaker and schedule management in a few minutes.

The template is created based on 7 years of GDG Lviv team experience of running conferences and feedback from more than 500 event organizers from all around the world who were using previous Hoverboard versions.

Our goal is to allow event organizers to set up a professional conference website with minimum resources. To get started you need only basic knowledge of web technologies and a free Firebase account.

Features

Feature Description
Fast and optimized 91/100 PWA on Lighthouse
Works offline shitty WiFi on the venue is not a problem anymore
Mobile-first layouts optimized for small screens, Hoverboard can be installed as a native app on your phone
Push notifications remind about sessions in My schedule, session feedback or target users with a custom message
SEO optimized index all content and get to the top in search results
Speakers and schedule management keep and update all information in the Firebase
My schedule let attendees save sessions they want to visit
Customizable theme change colors to match your style
Blog post announcements, updates and useful information

Getting Started

🌛 Read the set up guide or checkout the full documentation.

Updating

Here is a git workflow for updating your fork (or downloaded copy) to the latest version:

git remote add upstream https://github.com/gdg-x/hoverboard.git
git fetch upstream
git merge upstream/main
# resolve the merge conflicts in your editor
git add . -u
git commit -m 'Updated to the latest version'

Documentation

The Getting Started guide is probably a good first point of call!

📖 Full documentation.

Compatibility

✅ Compatible with latest two major versions of of browsers that support ES Modules.

Technology Stack

  • Polymer 3 (deprecated #796)
  • LitElement
  • Redux
  • Firebase
  • Service Worker
  • CSS Grid

Contributing

Awesome! Contributions of all kinds are greatly appreciated. To help smoothen the process we have a few non-exhaustive guidelines to follow which should get you going in no time. Checkout our roadmap and open issues.

Good First Issue

Issues labeled good first issue are a great way to ease into development on this project.

Help Wanted Label

Any other issue labeled help wanted is ready for a PR.

Using GitHub Issues

  • Feel free to use GitHub issues for questions, bug reports, and feature requests
  • Use the search feature to check for an existing issue
  • Include as much information as possible and provide any relevant resources (Eg. screenshots)
  • For bug reports ensure you have a reproducible test case
  • A pull request with a breaking test would be super preferable here but isn't required

Submitting a Pull Request

  • Squash commits
  • Lint your code with eslint (config provided)
  • Include relevant test updates/additions

Code of Conduct

Read the full version Code of Conduct.

Contributors

Maintainer: Abraham Williams

Authors: Oleh Zasadnyy and Sophie Huts.

This project exists thanks to all the people who contribute. [Contribute].

List of contributors

License

The project is published under the MIT license. Feel free to clone and modify repo as you want, but don't forget to add a reference to authors :)

GDG[x] is not endorsed and/or supported by Google, the corporation.

hoverboard's People

Contributors

abdellahrk avatar abraham avatar akshitarora921 avatar alpccelik avatar bstrandjev avatar cortinico avatar davinkevin avatar dbs avatar dependabot-preview[bot] avatar dependabot[bot] avatar echoalexey avatar emedvedev avatar friedger avatar h4rdmol avatar htchien avatar hugogresse avatar iamkaan avatar jagannathbhat avatar mrcsabatoth avatar oldmetalmind avatar ozasadnyy avatar pamuditha avatar pentium10 avatar radi-cho avatar shashank-saxena avatar sophieh29 avatar tasomaniac avatar unreadablename avatar webmaxru avatar zasadnyy 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hoverboard's Issues

Google Maps API key warnings

The google-map component has an apiKey property which isn't being set. There should be a spot in the config for setting this and then it should be injected in map-block.html.

No Google Maps API Key or Client ID specified. See https://developers.google.com/maps/documentation/javascript/get-api-key for instructions to get started with a key or client id.
Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys

Currently:

<google-map zoom="{$ location.pointer.zoom $}" latitude="{$ location.mapCenter.latitude $}"
                longitude="{$ location.mapCenter.longitude $}" styles="[[options]]" 
                disable-zoom disable-default-ui>
      ...
</google-map>

Should be something like:

<google-map zoom="{$ location.pointer.zoom $}" latitude="{$ location.mapCenter.latitude $}"
                longitude="{$ location.mapCenter.longitude $}" styles="[[options]]" 
                disable-zoom disable-default-ui api-key="{$ apiKey $}">
      ...
</google-map>

Add loading animation on startup

When users are visiting the site nothing happens for a while.
There should a be a loading animation to indicate that the site while appear soon.

Add schedule block

Add block that shows the schedule based on sessions and speakers data

Not able to Gulp Deploy the Project

When I try to deply the project on Git using 'gulp deploy', I get folowing error. Whereas 'gulp serve' and 'gulp' workes perfectly.

This is the error while running gulp deploy

cmd: /bin/sh -c git rev-list --pretty=raw --max-count=1
[22:23:27] 'deploy' errored after 11 s
[22:23:27] Error in plugin 'run-sequence'

Build error

I downloaded the latest version (DL on 11/13/2015) and am getting an error when running gulp serve:
Polymer.dom(...).observeNodes is not a function

Add a Team page

Similar to the Speakers page, a Team page would be a nice addition.

Schedule information doesn't work in Firefox

Trying to view information about a scheduled session is not possible in Firefox (tested in version 42, works in Chrome, Opera and Safari). Reproduced in both GDG DevFest London and the reference GDG DevFest Ukraine app.

Clicking on the title of a session in the schedule causes a ReferenceError:

ReferenceError: event is not defined

The file this occurs in seems to be a generated data file (not sure how this works exactly!). Reading the data it seems the issue is in the Polymer element schedule-block at this function:

        _sessionTap: function() {
            page.redirect('/schedule/' + event.model.subSession.id);
            this._openSession(event.model.subSession);
        },

Should that function take an event as an argument?

Some items are not loading

As can be seen in the screenshots below, here are the problems:

  • Video section always show the same thumbnails.
  • Rockstar speakers part is empty.
  • Photos section shows empty photos.

Opening the page in Incognito mode fixed it. But I've opened the page normally in Chrome about 10+ times. It didn't occur to me that I should clear the cache.

screen shot 2016-03-14 at 21 46 35
screen shot 2016-03-14 at 21 46 46

develop: app fails to render anything but blank toolbar and sidenav

Using the current develop with no modifications, I'm seeing the following:

polymer build:

info:    Building application...
warn:    Unable to optimize .js file /Users/splaktar/Git/gdgspacecoast/hoverboard/index.html_script_1.js 
{ err: 
   { message: 'SyntaxError: Unexpected token: punc (:)',
     filename: 0,
     line: 3,
     col: 16,
     pos: 23,
     stack: 'Error\n    at new JS_Parse_Error (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1545:18)\n    at js_error (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1553:11)\n    at croak (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2089:9)\n    at token_error (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2097:9)\n    at unexpected (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2103:9)\n    at semicolon (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2123:56)\n    at simple_statement (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2314:73)\n    at eval (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2164:47)\n    at eval (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2136:24)\n    at block_ (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2429:20)' } }
info:    Generating build/unbundled...
info:    Generating build/bundled...
warn:    Unable to optimize .js file /Users/splaktar/Git/gdgspacecoast/hoverboard/src/pages/blog-list.html_script_0.js 
{ err: 
   { message: 'SyntaxError: Unexpected token punc «(», expected punc «:»',
     filename: 0,
     line: 43,
     col: 28,
     pos: 967,
     stack: 'Error\n    at new JS_Parse_Error (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1545:18)\n    at js_error (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1553:11)\n    at croak (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2089:9)\n    at token_error (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2097:9)\n    at expect_token (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2110:9)\n    at expect (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2113:36)\n    at eval (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2686:13)\n    at eval (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2136:24)\n    at expr_atom (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2616:35)\n    at maybe_unary (eval at <anonymous> (/opt/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2792:19)' } }
info:    Build complete!

Browser view:
screen shot 2016-08-07 at 5 07 57 pm

In Firefox:

TypeError: /images/logo-white.svg is not a valid URL.
._computeImgDivARIALabel()
iron-image.html.js:216
._annotatedComputationEffect()
polymer.html.js:1622
Polymer.Bind._modelApi._effectEffects()
polymer.html.js:1429
Polymer.Bind._modelApi._propertySetter()
polymer.html.js:1413
Polymer.Bind._modelApi.__setProperty()
polymer.html.js:1422
._applyConfig()
polymer.html.js:2034
._afterClientsReady()
polymer.html.js:2028

Chrome Stable:

iron-image.html:342 Uncaught TypeError: Failed to construct 'URL': Invalid URL_computeImgDivARIALabel @ iron-image.html:342_annotatedComputationEffect @ polymer.html:1642_effectEffects @ polymer.html:1449_propertySetter @ polymer.html:1433__setProperty @ polymer.html:1442_applyConfig @ polymer.html:2054_afterClientsReady @ polymer.html:2048_ready @ polymer-mini.html:74_readyClients @ polymer-mini.html:82_ready @ polymer-mini.html:70_readyClients @ polymer-mini.html:82_ready @ polymer-mini.html:70_tryReady @ polymer-mini.html:60_initFeatures @ polymer.html:4053createdCallback @ polymer-micro.html:202window.Polymer @ polymer-micro.html:65(anonymous function) @ hoverboard-app.html:195(anonymous function) @ hoverboard-app.html:312

Chrome Canary:

iron-image.html:342 Uncaught TypeError: Failed to construct 'URL': Invalid URL(…)_computeImgDivARIALabel @ iron-image.html:342_annotatedComputationEffect @ polymer.html:1642_effectEffects @ polymer.html:1449_propertySetter @ polymer.html:1433__setProperty @ polymer.html:1442_applyConfig @ polymer.html:2054_afterClientsReady @ polymer.html:2048_ready @ polymer-mini.html:74_readyClients @ polymer-mini.html:82_ready @ polymer-mini.html:70_readyClients @ polymer-mini.html:82_ready @ polymer-mini.html:70_tryReady @ polymer-mini.html:60_initFeatures @ polymer.html:4053createdCallback @ polymer-micro.html:202window.Polymer @ polymer-micro.html:65(anonymous function) @ hoverboard-app.html:195(anonymous function) @ hoverboard-app.html:312

Remove cache

Enhancement: Remove cache in productionto firebase
When I deploy to firebase cache is not refreshed for users, so they have to clean their cache manually

Build Issue (Windows 10)

issue1
issue2

While trying to bulid there were several dependency issues, majority of them were depreciated:
lodash
gulp-minifyhtml
npmconf

please provide a quick solution to these issues:)

develop: README references to app-drawer-template instead of hoverboard

Title: Polymer App Toolbox - Drawer Template
Initialization step: polymer init app-drawer-template

Running this init step wipes out a lot of hoverboard code as the app already seems to be initialized. This probably needs to be removed from the readme?

Should the README include running bower install?
It looks like npm and node_modules is gone now in develop?

I think that these instructions need to be updated to be more specific to hoverboard?

[HELP] Warning: don't forget to edit destination repository to deploy the website?

In Zeppelin update _config.yml to deploy very clear example: https://github.com/gdg-x/zeppelin/blob/master/_config.yml

In Hoverboard update gulpfile.js to deploy no example (I AM LOST)
https://github.com/gdg-x/hoverboard/blob/master/gulpfile.js#L205

Really appreciate Zeppelin like
Quick-start guide ;)

Fork this repo
Clone locally
Update _config.yml
Select what content blocks do you need
Push changes to gh-pages branch
Enjoy your awesome DevFest site at http://[your github name].github.io/zeppelin/

Disable video sections when we don't have video

When the video related configs are removed, hide the video related parts in the home page.

It is great to have video call to action etc, but not many chapters have that kind of video from last year.

When we configure the site, if we just delete the video related parts from config.json, they should disappear.

Here are the candidates I found.

  • callToAction
  • videosSessionsUrl
  • video in home - headerSettings

Add support for hero buttons on the main page.

The new template looks really good but I think there should be 2 options for the main page

  • With video to show the website after the event has ended.
  • Before event with info and hero buttons.

Hero buttons like REGISTER, SPEAKER APPLY are really important.

npm issue

Hello, I want to use project hoverboard to make the GDG website of my community but I fail to install some of the required files in my computer to enable me use and edit it. Preview here image

Buy ticket

<paper-button class="white border-button open-dialog-button" on-tap="openTicketsDialog">Buy a ticket</paper-button>

when i wrap this element with <a href="url"> </a> it is not showing the button

cascaded-animation.html:78 Uncaught TypeError: Cannot read property '0' of undefined

This is happening all of the time since we modified the speakers.json and sessions.json. We've tried to make sure that everything is setup right, but it keeps throwing. This causes the Blog and Speakers pages to not load.

How can we fix this quickly so that we can get our site online?
Can you just disable some of these animations or something?

cascaded-animation.html:78 Uncaught TypeError: Cannot read property '0' of undefined
fire @ polymer.html:1287

Top half of blog post is unclickable (links don't work)

You also can't select the text.

Example here: https://hoverboard.firebaseapp.com/blog/women-are-underrepresented-in-it

This is because of a spinner-wrapper element that stays on the page (and keeps spinning, but transparently):

<div class="spinner-wrapper style-scope post-page">
  <paper-spinner id="spinner" active="" class="style-scope post-page x-scope paper-spinner-0" style="opacity: 0;"><div id="spinnerContainer" class="active  style-scope paper-spinner"><div class="spinner-layer layer-1 style-scope paper-spinner"><div class="circle-clipper left style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="gap-patch style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="circle-clipper right style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div></div><div class="spinner-layer layer-2 style-scope paper-spinner"><div class="circle-clipper left style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="gap-patch style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="circle-clipper right style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div></div><div class="spinner-layer layer-3 style-scope paper-spinner"><div class="circle-clipper left style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="gap-patch style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="circle-clipper right style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div></div><div class="spinner-layer layer-4 style-scope paper-spinner"><div class="circle-clipper left style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="gap-patch style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div><div class="circle-clipper right style-scope paper-spinner"><div class="circle style-scope paper-spinner"></div></div></div></div></paper-spinner>
</div>

gulp init fails when repo was downloaded

Download repo as a zip, try to run gulp init, the error will be returned:

~/Desktop/tmp/devfest-nl/hoverboard-master ⮀  ⮀  ⮀ gulp init
fatal: Not a git repository (or any of the parent directories): .git
child_process.js:1389
    throw err;
          ^
Error: Command failed: git describe --tags
fatal: Not a git repository (or any of the parent directories): .git

    at checkExecSyncError (child_process.js:1346:13)
    at execSync (child_process.js:1386:13)
    at Object.<anonymous> (/Users/vitalik/Desktop/tmp/devfest-nl/hoverboard-master/config.js:2:19)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/vitalik/Desktop/tmp/devfest-nl/hoverboard-master/gulpfile.js:26:14)

Only 1 Free ticket looks ugly

The template is great if the event has multiple tickets with various prices.

But when the event is completely free, the template looks bad.

Something like Zeppelin's ticket component would be ok. What do you think?

image

Links in the starter-kit-plus main menu

Hello,

I noticed a strange behavior while browsing the site through the main menu in the starter-kit branch. When you click exactly on the menu link (eg. Blog) you are correctly redirected to the page and the route in the navigation bar change properly as well. On the contrary if you click just under the link then (but on the menu item anyway) the page is well updated but not the navigation bar (eg. /blog is still displayed while we are back on home page for instance).
In order to fix it, I tried to set the anchor height to 100% which works well but I'm not sure this is the proper solution (since it's not really elegant nor fixing the problem horizontally).

Thanks for your awesome work btw,
Thomas

Multiple primary buttons in the header

In the main header, we have "Buy Ticket" button.
I think chapters may have multiple buttons there. They can be defined in config.json with an array just like pages or navigation.

The button title, link will be controlled from that array.

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.