Top Banner
Technology Overview
13

Venue Driver Technology Overview

May 16, 2015

Download

Technology

Ryan Porter

An overview of Venue Driver's technology stack, data model, and development methodology.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Venue Driver Technology Overview

Technology Overview

Page 2: Venue Driver Technology Overview

Technology Stack

Ruby on Rails

DataHTTP

HTML5 Mobile HTML5API

Passenger

Apache MySQL

MongoDB

Gentoo Linux

Engine Yard AppCloud

Amazon EC2

JavaScript

SolrRedis

Page 3: Venue Driver Technology Overview

Production Cluster

Application Master

Rails

Apache

Master Database

Application

Rails

Apache

Application

Rails

Apache

HAProxy

MongoDB

MySQL

Redis Solr

Page 4: Venue Driver Technology Overview

Data Model

Accounts

#1

#2

Guest Lists

#1

#2

Reservations

#1

#2

Guests

#1

#2

Ticket Types

#1

#2

Ticket Sales

#1

#2

Events

Event 1

Event 2

Venues

Venue 1

Venue 2

Page 5: Venue Driver Technology Overview

Event Report Documents

Event 1

Reservation 1

Reservation 2

Guest List 1

Guest 1

Guest 2

Ticket Type 1

Ticket Sale 1

Ticket Sale 1

Event 2

Reservation 1

Guest List 2

Guest 1

Guest 2

Guest List 1

Guest 1

Guest 2

Event 3

Ticket Type 2Ticket Sale 1

Ticket Sale 2

Ticket Type 1

Ticket Sale 3

Ticket Sale 4

Ticket Sale 1

Ticket Sale 2

Page 6: Venue Driver Technology Overview

Development Methodology

Lean Software Development

Behavior-Driven Design

Page 7: Venue Driver Technology Overview

Lean Software Development

Sell features that don’t exist

Implement features Just-In-Time

WHATto build

Page 8: Venue Driver Technology Overview

Behavior-Driven Design

Specify how a feature should behave

Implement until automated tests pass

HOWto build

Page 9: Venue Driver Technology Overview

Automated Testing Technology

Capybara

Capybara WebKit

Headless WebKit

Selenium

Firefox

Simulator

RSpec

Cucumber

Behavior Specifications

Ruby on Rails

Unit Tests

Jasmine

Page 10: Venue Driver Technology Overview

Example Behavioral Specification

Scenario: The customer should see a PDF link at the end of the purchase process.

Given an event "Test Event" And 2 active "General Admission" tickets at 10 dollars And the event "Test Event" is active, When I go to the ticket sales page And I follow the buy tickets link for "Test Event" And I press "checkout" And I submit valid payment details, Then I should see "download your ticket here".

Page 11: Venue Driver Technology Overview

Example Unit Test

def test_generates_valid_hard_ticket_code ticket_sale = TicketSale.create( :event_id => @event.id, :quantity => 2 ) hard_code = ticket_sale.generate_hard_ticket_code

assert TicketSale.valid_hard_ticket_code? hard_code

end

Page 12: Venue Driver Technology Overview

Kanban Status Board

Backlog

Task #14

Task #18

Task #22

Task #23

Task #24

Task #25

Task #26

Task #27

Task #28

Ready

Task #17

Task #20

Task #21

Task #19

Task #16

Task #15

Task #13

Working

Task #14

Task #11

Task #9

Task #6

Task #4

Complete

Task #15

Task #12

Task #10

Task #8

Task #7

Task #5

Task #3

Task #2

Task #1

Page 13: Venue Driver Technology Overview

Task Backlog