Volt Showcase - Planning Poker

45
Volt Showcase Online Planning Poker

Transcript of Volt Showcase - Planning Poker

Page 1: Volt Showcase - Planning Poker

Volt ShowcaseOnline Planning Poker

Page 2: Volt Showcase - Planning Poker

Complexity in Web development

Page 3: Volt Showcase - Planning Poker

2004

Page 4: Volt Showcase - Planning Poker

2005

Page 5: Volt Showcase - Planning Poker

2006

Page 6: Volt Showcase - Planning Poker

2007

Page 7: Volt Showcase - Planning Poker

2009

Page 8: Volt Showcase - Planning Poker

2011

Page 9: Volt Showcase - Planning Poker

2012

Page 10: Volt Showcase - Planning Poker

2013

Page 11: Volt Showcase - Planning Poker

2015

Page 12: Volt Showcase - Planning Poker

2004

Page 13: Volt Showcase - Planning Poker

2015

Page 14: Volt Showcase - Planning Poker
Page 15: Volt Showcase - Planning Poker

Volt?

Page 16: Volt Showcase - Planning Poker

OpalRuby to Javascript

Page 17: Volt Showcase - Planning Poker

Sharing code between client and

server

Page 18: Volt Showcase - Planning Poker

Same code runs on the client and

the server

Page 19: Volt Showcase - Planning Poker

Reactive Bindings for the DOM

Page 20: Volt Showcase - Planning Poker

Automatic Data Syncing

Page 21: Volt Showcase - Planning Poker

Server Backend Application with JSON REST API

and Frontend MVC

Page 22: Volt Showcase - Planning Poker

Debugging?

Page 23: Volt Showcase - Planning Poker

Source MapsOpal IRB

Page 24: Volt Showcase - Planning Poker

View

Page 25: Volt Showcase - Planning Poker

Event Bindings

Page 26: Volt Showcase - Planning Poker

<form e-submit="enter session"_ role="form">

Page 27: Volt Showcase - Planning Poker

Attribute BindingsTags

Page 28: Volt Showcase - Planning Poker

:< fields:text value=" page. session "{{ _ }} label="Existing session optional :"( ) />

:< fields:text value=" page. user "{{ _ }} label="Your name:" />

Page 29: Volt Showcase - Planning Poker

Each Bindings

Page 30: Volt Showcase - Planning Poker

{{ estimates.each do |estimate| }} <div class="card-wrapper flip if round finished? "{{ ' ' _ }} >

<div class="card-front"> <div class="user-name">{{ estimate. user_ }}</div> <img src=" card image url estimate. point "{{ _ _ ( _ }}

class="card" /> </div> <div class="card-back"> <div class="user-name">{{ estimate. user_ }}</div> <img src=" asset url app main assets images back.png "{{ _ (' / / / / ' }} class="card" /> </div> </div> {{ end }}

Page 31: Volt Showcase - Planning Poker

If Bindings

Page 32: Volt Showcase - Planning Poker

{{ if !guest session?_ }} <div class="card-container"> </div> {{ end }}

Page 33: Volt Showcase - Planning Poker

Controller

Page 34: Volt Showcase - Planning Poker

def enter session_

session = page. session_ .to s_ .empty? ? generate random string :_ _

page. session_

user = page. user_ .to s_ .empty? ? "user- generate random string#{ _ _ }" : page. user_

card deck _ = page. card deck_ _

redirect to _ " estimate/ / session#{ }/ card deck#{ _ }/ user#{ }"end

Page 35: Volt Showcase - Planning Poker

def round finished?_

estimates array _ = estimates.array estimates array_ .size > 1 && estimates array_ .all?(&: point_ )

end

Page 36: Volt Showcase - Planning Poker

def show page. session url _ _ = url.url with_ (user: nil, card deck_ : nil)

Page 37: Volt Showcase - Planning Poker

Data Store

Page 38: Volt Showcase - Planning Poker

pagestore

params...

Page 39: Volt Showcase - Planning Poker

Automatically synced

Page 40: Volt Showcase - Planning Poker

Promises

Page 41: Volt Showcase - Planning Poker

store. estimates_ .find(user: user, session: session .) then do estimates| |

estimate = estimates.array[0] if estimate estimate.tap { e e| | . point _ = false } else store. estimates _ << {

user: user, session: session } endend.then do estimate| |

self.model = estimateend

Page 42: Volt Showcase - Planning Poker

Model

Page 43: Volt Showcase - Planning Poker

class Estimate Volt< ::Modelend

Page 44: Volt Showcase - Planning Poker

Demo

Page 45: Volt Showcase - Planning Poker

www.voltframework.com

volt-poker.herokuapp.com

github.com koffeinfrei planning-poker/ /