8. Crowd-Fun the internet.
Started *not* that long ago... in a galaxy that involved moving from NYC to Austin
1. Lost all local NYC hangouts over two short nights
2. Is there a guide to living like an Austin local and get to know business owners?
3. No excuses not to unpack boxes.
We asked ourselves:
Why there is no app for this?
/about
Dreaming of..
- Not Unpacking!
- Cold Beer
- Movie,
- Local Museum
- BBQ! I am in
Texas...
Can’t a local just share
the best places to
hangout and let me
chat vendors up ??!
9. /about
I want to Share my City: “My Stay-cation is someone’s perfect Vacation”: I’m
searching for an easier way to help others experience the town I love. Family and
friends constantly ask for recommendations for their visits. They share these with
their friends and families… and then I get calls from people they’ve shared it with
who I don’t even know. AND at the worst times of the day. There’s gotta be an
easier way to share the town I love…
I want Advertising that works for me: “Invite vendors to your dialogue” I
am not sure which venues to select. I wish I could have a dialogue with
multiple vendors to help me pick the best spots for my group and needs… I
wish my vendors fought for my business, maybe through hand-picked
discounts and freebies? I’m sure they would like this personal connection
too.
I want to Explore New Cities: “Someone’s Stay-cation is my perfect
Vacation” I am planning a vacation. We love traveling like locals. Hours of
scouring the web for perfect places are turning to weeks… This is becoming a
second job! We just want to find a local’s perfect staycation. Isn’t there an easier
way for me to experience Places others love?
12. YALLZI helps you share all your favorite places with friends or the whole world.
YALLZI helps you explore new worlds that other Yallziers have shared.
YALLZI breaks the barrier between Vendor and Consumer.
/about
Vision
14. /challenges, requirements
Strength-Skills
● C, C++, Java
● Product Development
● Content Management
● SQL - Any RDBMS since mid 1990s
● NoSQL - 5 years of dev and prod
● Data Warehousing
● Ad Servers and Analytics
● Proven ability to squeeze 4 weeks of work out of 7 days of free demo version
● Mean Extra Dry Martini’s
15. /challenges, requirements
Needs
● Data set of POI covering major verticals in US and International
● Ensure parallel development of web, iOS and Android apps
● APP that does not need a lot of design work initially but will tell a story and please investors
● Multi-language support
● Save Time and Money on Everything
● Lighting fast speed :
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
16. /challenges, requirements
● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps
● APP that does not need a lot of design work initially but will tell a story and please investors
● Multi-language support
● Save Time and Money on Everything
● Lighting fast speed :
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
Solutions
17. /challenges, requirements
Solutions
● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps RESTful dev
● APP that does not need a lot of design work initially but will tell a story and please investors
● Multi-language support
● Save Time and Money on Everything
● Lighting fast speed :
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
18. /challenges, requirements
● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps RESTful dev
● APP that does not need a lot of design … Hold Expensive Design - go simple
● Multi-language support
● Save Time and Money on Everything
● Lighting fast speed :
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
Solutions
19. /challenges, requirements
● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps RESTful dev
● APP that does not need a lot of design … Hold Expensive Design - go simple
● Multi-language support Pick A DB!
● Save Time and Money on Everything
● Lighting fast speed :
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
Solutions
20. /challenges, requirements
● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps RESTful dev
● APP that does not need a lot of design … Hold Expensive Design - go simple
● Multi-language support Pick A DB!
● Save Time and Money on Everything Go Open Source
● Lighting fast speed :
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
Solutions
21. /challenges, requirements
● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps RESTful dev
● APP that does not need a lot of design … Hold Expensive Design - go simple
● Multi-language support Pick A DB!
● Save Time and Money on Everything Go Open Source
● Lighting fast speed : Pick A DB!
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
Solutions
22. ● Data set of POI covering major verticals in US and International -- FACTUAL, US Based POI
● Ensure parallel development of web, iOS and Android apps RESTful dev
● APP that does not need a lot of design … Hold Expensive Design - go simple
● Multi-language support Pick A DB!
● Save Time and Money on Everything Go Open Source
● Lighting fast speed : Pick A DB!
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real time analytics collection and processing to power apps
Pick A DB!
/challenges, requirements
Solutions
23. - expressive query language
- indexing- GeoIndexing
- performance
- scalability
- flexibility
- no need to learn new languages
- easy to use management tools
- a vendor behind the product
- opensource / strong community
- run well on Cloud (deployment architecture
flexibility)
/challenges, requirements
Pick a DB...
SQL noSQL
24. Select * from actors a, activities ac,
history h where a.actorID=...
25. Selecting MongoDB
● Multi-language support
● Save Time and Money on Everything - Open Source/Supported by Vendor
● Lightning fast speed to
○ vision → prototype → alpha/beta → GA
○ iterate
○ scale
○ data and geo data retrieval
○ DB is NOT a bottleneck for frequent app builds
● Close to real-time analytics collection and processing to power apps
/challenges, requirements
27. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access
○ Indexing
○ Availability
○ Scale
○ Flexibility
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
28. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing
○ Availability
○ Scale
○ Flexibility
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
All calls are made as HTTP requests to
one common backend residing on one
URL and serviced by one application, so
all calls will have a common prefix:
http://<server>:<port>/api
29. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability
○ Scale
○ Flexibility
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
30. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale
○ Flexibility
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
31. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
32. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
33. ● Database Selection - MongoDB 2.6
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
34. 1. Location (Dynamic)
a. geo : latitude, longitude (geoLocation)
2. Preferences (Historical & “Acquired”)
a. Existing preference
- Bob loves bicycling followed by
a beer and lives on UES... A
fellow Yallzier just biked East
River Greenway, followed by a
beer at Pony Bar. Yallzi
renders this plan to Bob.
- A fellow Yallzier Has Shared
Interests and fellow Yalzier is a
referrer
a. Shared
- Bob and Sue both like
Mexican, Sue loves Rosa
Mexicana. Yallzi asks, Will
Bob?)
- Sue has similar interests and is
a referer
a. Adjacent and could be “Acquired”
- Bob likes Ballets and Opera.
Sue loves this + Broadway
Show. Yallzi suggest Broadway
show)
- Sue has similar interests and is
a referrer
1. Availability (Dynamic)
a. time
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“user”: {
“name”: “Yallzier”,
“email”: “yallzi@yallzi.com”,
“phone”: “+1-2121212121”,
“socialLogin”: “FACEBOOK_Yallzier”,
“deviceToken”: [
“appleToken123”,
“appleToken234”,
...
]}
} }
/journey
/api/v2/user/getDetails
Actors(Consumers)
Parameters
String auth: authentication token
previously received
double lat: latitude of users current
position
long: longitude of users current
position
35. 1. Location (Dynamic)
a. geo : latitude, longitude (geoLocation)
2. Preferences (Historical & “Acquired”)
a. Existing preference
- Bob loves bicycling followed
by a beer and lives on UES...
A fellow Yallzier just biked
East River Greenway,
followed by a beer at Pony
Bar. Yallzi renders this plan
to Bob.
- A fellow Yallzier Has Shared
Interests and fellow Yalzier is
a referrer
a. Shared
- Bob and Sue both like
Mexican, Sue loves Rosa
Mexicana. Yallzi asks, Will
Bob?)
- Sue has similar interests and
is a referer
a. Adjacent and could be “Acquired”
- Bob likes Ballets and Opera.
Sue loves this + Broadway
Show. Yallzi suggest
Broadway show)
- Sue has similar interests and
is a referrer
1. Availability (Dynamic)
a. time
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“user”: {
“name”: “Yallzier”,
“email”: “yallzi@yallzi.com”,
“phone”: “+1-2121212121”,
“socialLogin”: “FACEBOOK_Yallzier”,
“deviceToken”: [
“appleToken123”,
“appleToken234”,
...
]}
} }
/journey
Actors(Consumers)
/api/v2/user/getDetails Parameters
String auth: authentication token
previously received
double lat: latitude of users current
position
long: longitude of users current
position
36. 1. Location (Dynamic)
a. geo : latitude, longitude (geoLocation)
1. Preferences (Historical & “Acquired”)
a. Existing preference
- Bob loves bicycling followed by
a beer and lives on UES... A
fellow Yallzier just biked East
River Greenway, followed by a
beer at Pony Bar. Yallzi
renders this plan to Bob.
- A fellow Yallzier Has Shared
Interests and fellow Yalzier is a
referrer
a. Shared
- Bob and Sue both like
Mexican, Sue loves Rosa
Mexicana. Yallzi asks, Will
Bob?)
- Sue has similar interests and is
a referer
a. Adjacent and could be “Acquired”
- Bob likes Ballets and Opera.
Sue loves this + Broadway
Show. Yallzi suggest Broadway
show)
- Sue has similar interests and is
a referrer
1. Availability (Dynamic)
/journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“user”: {
“name”: “Yallzier”,
“email”: “yallzi@yallzi.com”,
“phone”: “+1-2121212121”,
“socialLogin”: “FACEBOOK_Yallzier”,
“deviceToken”: [
“appleToken123”,
“appleToken234”,
...
]}
} }
Parameters
String auth: authentication token
previously received
double lat: latitude of users current
position
long: longitude of users current
position
/api/v2/user/getDetails
Actors(Consumers)
Parameters
String auth: authentication token
previously received
double lat: latitude of users current
position
long: longitude of users current
position
37. 1. Location (Dynamic)
a. geo : latitude, longitude (geoLocation)
1. Preferences (Historical & “Acquired”)
a. Existing preference
- Bob loves bicycling followed by
a beer and lives on UES... A
fellow Yallzier just biked East
River Greenway, followed by a
beer at Pony Bar. Yallzi
renders this plan to Bob.
- A fellow Yallzier Has Shared
Interests and fellow Yalzier is a
referrer
a. Shared
- Bob and Sue both like
Mexican, Sue loves Rosa
Mexicana. Yallzi asks, Will
Bob?)
- Sue has similar interests and is
a referer
a. Adjacent and could be “Acquired”
- Bob likes Ballets and Opera.
Sue loves this + Broadway
Show. Yallzi suggest Broadway
show)
- Sue has similar interests and is
a referrer
1. Availability (Dynamic)
/journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“user”: {
“name”: “Yallzier”,
“email”: “yallzi@yallzi.com”,
“phone”: “+1-2121212121”,
“socialLogin”: “FACEBOOK_Yallzier”,
“deviceToken”: [
“appleToken123”,
“appleToken234”,
...
]}
} }
Parameters
String auth: authentication token
previously received
double lat: latitude of users current
position
long: longitude of users current
position
Actors(Consumers)
/api/v2/user/getDetails
38. 1. Location (Static)
2. Vertical (Static)
a. Food & Dining
b. Recreation
c. Entertainment
d. Arts & Culture
e. Sports
3. Category
a. Mexican
4. Offerings-Deals (dynamic)
5. Hours
/journey
{
"message": "",
"status": "OK",
"data": {
"date": "10/26/14",!
"deals": [
{
"dealId": “DINE_184a2409-7d4c-4854-ad1c-e7de099064ee",
"name": "Porfirio’s Tacos",!
"imageUrl": "http://api.yallzi.com/api/resources/rest.png",
"address": "1512 Holly Street",
"locality": "Austin",
"postcode": "78703",
"country": "us",
"type": "Restaurant",
"locationId": "184a2409-7d4c-4854-ad1c-e7de099064ee",
"latitude": 30.255314,
"longitude": -97.730564,
"details": "",
"amount": 0,
"distance": 0.8936700034260777,
"categoryLabels": [
[
"Mexicanl",
“Tex Mex” ],
...
],
"hours": { "monday": [ ]}....
Parameters:
String auth: authentication token
double lat: latitude of users current
position
double long: longitude of users current
position"
String verticalId
int numberOfPeople: number of
participants"
long date: time stamp of event start"
double distance: search radius
double searchLat, if different from users
current position
double searchLong, if different from users
current position
Actors(Vendors)
/api/v2/deal/list
39. 1. Location (Static)
2. Vertical (Static)
a. Food & Dining
b. Recreation
c. Entertainment
d. Arts & Culture
e. Sports
3. Category
a. Mexican
4. Offerings-Deals (dynamic)
5. Hours
/journey
{
"message": "",
"status": "OK",
"data": {
"date": "10/26/14",!
"deals": [
{
"dealId": “DINE_184a2409-7d4c-4854-ad1c-e7de099064ee",
"name": "Porfirio’s Tacos",!
"imageUrl": "http://api.yallzi.com/api/resources/rest.png",
"address": "1512 Holly Street",
"locality": "Austin",
"postcode": "78703",
"country": "us",
"type": "Restaurant",
"locationId": "184a2409-7d4c-4854-ad1c-e7de099064ee",
"latitude": 30.255314,
"longitude": -97.730564,
"details": "",
"amount": 0,
"distance": 0.8936700034260777,
"categoryLabels": [
[
"Mexicanl",
“Tex Mex” ],
...
],
"hours": { "monday": [ ]}....
Parameters:
String auth: authentication token
double lat: latitude of users current
position
double long: longitude of users current
position"
String verticalId
int numberOfPeople: number of
participants"
long date: time stamp of event start"
double distance: search radius
double searchLat, if different from users
current position
double searchLong, if different from users
current position
/api/v2/deal/list
Actors(Vendors)
40. 1. Location (Static)
2. Vertical (Static)
a. Food & Dining
b. Recreation
c. Entertainment
d. Arts & Culture
e. Sports
3. Category
a. Mexican
4. Offerings-Deals (dynamic)
5. Hours
/journey
{
"message": "",
"status": "OK",
"data": {
"date": "10/26/14",!
"deals": [
{
"dealId": “DINE_184a2409-7d4c-4854-ad1c-e7de099064ee",
"name": "Porfirio’s Tacos",!
"imageUrl": "http://api.yallzi.com/api/resources/rest.png",
"address": "1512 Holly Street",
"locality": "Austin",
"postcode": "78703",
"country": "us",
"type": "Restaurant",
"locationId": "184a2409-7d4c-4854-ad1c-e7de099064ee",
"latitude": 30.255314,
"longitude": -97.730564,
"details": "",
"amount": 0,
"distance": 0.8936700034260777,
"categoryLabels": [
[
"Mexicanl",
“Tex Mex” ],
...
],
"hours": { "monday": [ ]}....
Parameters:
String auth: authentication token
double lat: latitude of users current
position
double long: longitude of users current
position"
String verticalId
int numberOfPeople: number of
participants"
long date: time stamp of event start"
double distance: search radius
double searchLat, if different from users
current position
double searchLong, if different from users
current position
Actors(Vendors)
/api/v2/deal/list
41. ● Database Selection - MongoDB 2.6->3.0. DB size decreased by 70%
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
42. ● Database Selection - MongoDB 3.0
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
43. Analytics
an·a·lyt·ics
/ˌanl’itiks /
noun
1. the systematic computational analysis of data or statistics.
o information resulting from the systematic analysis of data or statistics.
We are Analyzing the ACTOR ACTIVITIES through Referrers and Referrals and Following…
We analyze
● intent( following)
● checkIn ( confirmed at the place)
● Scoop( reviews, after the visit)
With emphasis on people voting with their “feet”
/journey
44. User Activities include
● intent to do stuff and/or share it
● intent to “borrow” or reuse of these
plans
● Checked in Activities of Referrers
● Checked in Activities of Followers
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,!
“data”: [
{
“id”: “abcdef1234”,
“referral”: “abcdefabcdef”
...}, ...] }
/journey
Referrer/Referral new Concept
45. /journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,!
“data”: [
{
“id”: “abcdef1234”,
“referral”: “abcdefabcdef”
...}, ...] }
User Activities include
● intent to do stuff and/or share it
● intent to “borrow” or reuse of these
plans
● Checked in Activities of Referrers
● Checked in Activities of Followers
Referrer/Referral new Concept
46. User Activities include
● intent to do stuff and/or share it
● intent to “borrow” or reuse of these
plans
● Checked in Activities of Referrers
● Checked in Activities of Followers
/journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,!
“data”: [
{
“id”: “abcdef1234”,
“referral”: “abcdefabcdef”
...}, ...] }
Referrer/Referral new Concept
47. User Activities include
● intent to do stuff and/or share it
● intent to “borrow” or reuse of these
plans
● Checked in Activities of Referrers
● Checked in Activities of Followers
/journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,!
“data”: [
{
“id”: “abcdef1234”,
“referral”: “abcdefabcdef”
...}, ...] }
Referrer/Referral new Concept
48. Analytics
... And ... Secret Potion:
Yallzi enables:
● suggestions in your current or desired location that match your interests
● suggestions for “acquired” interests (delta between having common and different preferences)
● identification of emerging trends
● preparation for personal recommendations based on your and people with common interests behavior
● identification of new ratings model (people vote with their feet)
/journey
49. ● Activities collection is sharable
● Initial activity owner is a Referrer.
Referrals are ‘followed”
● Vote signifies acceptance
● Ratings and Reviews=People Vote
with their feet + Comments- is
mined and analyzed real time
/journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,
“YallziID”: [“xxx1”, “xxx2”, ...],
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” : “ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “This is a comment”
}, ...
]}
api/v2/yallzi/get
Activity Log
PARAMs:
String auth: authentication token
previously received
Double lat: latitude of users current
position
Double long: longitude of users
current position"
String yallziId: event to update"
50. /journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,
“YallziID”: [“xxx1”, “xxx2”, ...],
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” : “ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “This is a comment”
}, ...
]}
● Activities collection is sharable
● Initial activity owner is a Referrer.
Referrals are ‘followed”
● Vote signifies acceptance
● Ratings and Reviews=People
Vote with their feet + Comments-
is mined and analyzed real time
api/v2/yallzi/get
Activity Log
PARAMs:
String auth: authentication token
previously received
Double lat: latitude of users current
position
Double long: longitude of users
current position"
String yallziId: event to update"
51. /journey
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,
“YallziID”: [“xxx1”, “xxx2”, ...],
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” : “ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “This is a comment”
}, ...
]}
● Activities collection is sharable
● Initial activity owner is a Referrer.
Referrals are ‘followed”
● Vote signifies acceptance
● Ratings and Reviews=People Vote
with their feet + Comments- is
mined and analyzed real time
api/v2/yallzi/get
Activity Log
PARAMs:
String auth: authentication token
previously received
Double lat: latitude of users current
position
Double long: longitude of users
current position"
String yallziId: event to update"
52. /journey
Actor Activity
{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,
“YallziID”: [“xxx1”, “xxx2”, ...],
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” : “ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “This is a comment”
}, ...
]}
PARAMs: String auth: authentication
token previously received double lat:
latitude of users current position
double long: longitude of users current
position"
String yallziId: event to update"
● Activities collection is sharable
● Initial activity owner is a Referrer.
Referrals are ‘followed”
● Vote signifies acceptance
● Ratings and Reviews=People Vote
with their feet + Comments- is
mined and analyzed real time
api/v2/yallzi/get
53. ● Database Selection - MongoDB 3.0
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
54. {{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,!
“children”: [“xxx1”, “xxx2”, ...]
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” :
“ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “Looking for a table for 1”
}, ...
/journey
Vendor Direct Messaging
● Message - Direct Interaction with the vendor (online)
● Consumer initiates bidirectional conversation with
business/brand
● Analyzed to provide service
● Can be private or public and become a hospitality message
that all consumers can view by interacting with a link.
55. /journey
Vendor Direct Messaging
● Message - Direct Interaction with the vendor (online)
● Consumer initiates bidirectional conversation with
business/brand
● Analyzed to provide service
● Can be private or public and become a hospitality message
that all consumers can view by interacting with a link.
56. {{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,!
“children”: [“xxx1”, “xxx2”, ...],
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” :
“ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “table for 1,quiet place?”
}, ...
/journey
Vendor Direct Messaging
● Message - Direct Interaction with the vendor (online)
● Consumer initiates bidirectional conversation with
business/brand
● Analyzed to provide service
● Can be private or public and become a hospitality message
that all consumers can view by interacting with a link.
57. {{
"message": "",
"status": "OK",
"auth": “156D66FE8B9097A336DF325589837E674B”,
“data”: {
“id”: “xxx”,
“date”: 1445901561064,!
“dealId”: “yyy”,!
“children”: [“xxx1”, “xxx2”, ...],
“groupId”: “541f149be4b0c4c655ad5721”,
“referral”: “12345677”,
“votes”: [
“bead43122” : 0,
“edba43edf” : 1
],
“comments”: [ {
“user” :
“ab12345678901234567”,
“timestamp” : 14455667788,
“text” : “table for 1,quiet place?”
}, ...
/journey
Vendor Direct Messaging
● Message - Direct Interaction with the vendor (online)
● Consumer initiates bidirectional conversation with
business/brand
● Analyzed to provide service
● Can be private or public and become a hospitality
message that all consumers can view by interacting
with a link.
58. ● Database Selection - MongoDB 3.0
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
59. Personal “funBox” Collection
● Your most frequent referrers can
be pre-processed
○ Yallzi personal “funBox”
/journey
Grouping and Deltas
{WIP}
Will include:
- Plans of most frequently used
referrers
- Does not require any action on
user part
- Analyses Yallzier’s activity log
60. ● Database Selection - MongoDB 3.0
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment : AWS, MMS
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
61. ● Database Selection - MongoDB 3.0
● Design
○ DB’s: POI, Actors, Actor Activities(Analytics)
○ Access : API
○ Indexing: Frugal, don’t over-index to avoid degradation
○ Availability: 24/7 365 - revisit at deployment meeting
○ Scale: targeting 100,000 active users in 3-6 months
○ Flexibility : Don’t throw kitchen sink in DB. Keep DB’s collections as slim as possible
● Schema
○ Actors
○ Analytics
○ Advertising Secret Potion
○ Personalize This!
○ Deployment : AWS, MMS
/journey
Building BackEnd: Data Meets The App
while both constantly Evolve
63. Outcome
- Dream to Prototype : 2.5 weeks
- Prototype to Alpha: 1 month
- iOS App development: ~5 months
- Android App development: ~ 2 months
- Suspended
- Rebranded and Pivoted 5 months into Dev. Adjust within 2 weeks
- Beta Releases: twice a week
- AWS hosting $36 a month
- MongoDB : rock solid
/outcome, next
64. Recap (our lessons)
- MongoDB is great fit for bootstrapped startUps like Yallzi or for an innovative project with aggressive goals
- Take risks, but stick to the following:
- Simplify everything from storage to aggregation downstream
- Understand what you are storing and where (vis a vis static and dynamic data)
- Determine what data will be made public/private
- Don’t go Index happy
- Flexibility is not throwing the kitchen sink in DB. Flexibility is for growth and dynamics of your business.
- Overuse of database strengths can create a big SPOF
- Simplify access patterns/abstract
- If it is too easy to do, you might not have thought of something
- Have fun! It will work!
/outcome, next
65. What’s Next
- Development:
- Completing within next few weeks
- Beta launch:
- Follow us on Twitter @Yallzi or @TheOneTechie for the date to install the app and Crowd-Fun the
internet
- We are looking for partners and developers
- Funding :
- We are going strong for the first prize in crowdfunding drives
- We are in conversations with TX based accelerators
- We love talking to investors even those who want to say NO!
- Community:
- We are looking for advise and happy to share our thoughts
- Future:
- See y’all on Yallzi and at MongoDB World next year
- Philosophy:
- Do one thing, do it right, test, repeat!
/outcome, next
66. Hit is on Twitter
- @YALLZI
- @TheOneTechie
Yes, We’re Hiring:
- http://yallzi.com/internships/
Eureka Moments:
- http://yallzi.com/internships/our-eureka-moments/
Angel Profile:
- https://angel.co/yallzi
On Social Choice Data:
- https://www.linkedin.com/pulse/article/social-choice-data-steve-bond
- https://www.linkedin.com/pulse/how-do-groups-decide-social-choice-
data-part-2-steve-bond
On App Adoption:
- https://www.linkedin.com/pulse/article/first-date-app-steve-bond
- https://www.linkedin.com/pulse/article/userapp-dating-steve-bond
Holly Street Garage, Austin, Texas
----------------------------------------------
Also Found on:
KickStarter,
LaunchLeader,
CrunchBase..
and other fine ‘net sites
/outcome, next
68. /Tricks
Actually, there are no tricks, whatsoever… except
- be “lazy” developers making the best of the tools we build
- provide users, be they sharers, benefactors, or business owners with simple tools:
- map and ‘save’ their most memorable moments and share it with y’all
- see others best memorable moments
- reach out to vendors to invite them into the conversation
For this we needed a thought through, light-weight and flexible model that allows us to build/add
additional artifacts and store them.
We also decided to bank of reverse of Similar Interests and see if people might want to discover
stuff they never experiences before. We are still working on it
We are looking forward to learn from reputable companies and scrappy startUps!
69. What challenges do you solve when you don’t get paid for it?
● A revolution in combining social choice data with behavioral data
that results in Kick Ass User Experience
● New Dimension of Advertising
● We don’t reinvent the wheel, even though we tried 17 times and
came up with helium inflatable wheels supporting a beach chair
with 2 beers and my puppy than annoys me when I work
/What We Do
70. #startUp Recent SCRUM NOTES
● “Man, where did all those competitors come from?”
● VC Breaking News: said they Loved the idea and we definitely should.. call them after we have 1 million DL’s.
● Alerts: Looks like we hacked our own bank account but due to error in the code we left 23 cents. Whose code is
it, i don’t care whose money..
● Battle of API versus App developer is won by API. After all: iPhone processing power is probably greater than
our server!
Notas del editor
Welcome to Yallzi way of Building an Analytics Engine on MongoDB to Revolutionize Advertising.
Dont put on your seatbelts but please open up your curious minds as we are about to go fast into untangling and simplifying the complex problems
I’m Steve Bond, Founder of Yallzi, where we believe your staycation is someone elses’s perfect vacation -- and vice vera! We’re crowd-funning the internet. But more on that later.
In today’s session, we’ll explore how Yallzi is building an analytics engine to power our product and create a new dimension of advertising. We’ll review how we made our decisions to herd the cats of technology, schema, architecture, analytics and more as well as how MongoDB allows us to iterate quickly -- which is critical for our bootstrapped startup.
Before we get starter, Who is in the room: (ops, dev, business)??
And what about MongoDB experience level… who is just exploring…. developing;... in production… TRUE EXPERTS?...
Great! this is the perfect group! let’s get started
we’ll start with an “about” (who Yallzi is, what we do, why you’ll love us), move into our technical challenges and requirements then walk through our Journey with MongoDB… we’ll sprinkle in user stories / horror stories / what we’ve learned and more and end with plenty of time for questions / dialogue.
I’m Steve Bond, same as from a few slides ago… I went from college bench to military then back to weird civilian life, disrupting the status quo. It is fun, pain and real. Always about discipline, focus and carefully calculated risk taking. “you need to take risk but not stupid risk”
In civilian life, I’ve done Engineering, Operations and Business. I’ve both consulted for and run tiny startups, to acquired companies… to some of the largest companies in the world.
I ran a tech consulting company soup to nuts. Ran DB operations for Moviefone… Ran global content management at AOL.
At 24/7 I ran the global consulting practice, which was acquired by WPP -- where I became VP of Global Consulting. Most recently, I ran Software Engineering at Forbes where i led the rebuild of content management, created a mobile strategy, packaged our CMS to be sold as commercial publishing software… and made a few sales.
Roughly 4 years into the Forbes adventure, my bride was asked to relocate from NY to Austin. Being the man in the relationship… this meant only one thing. I put my foot down and put it hard on..
=======================
below is if reordered
Luckily… this was something we could help the world with.
With a personal background in...
….
……
I quickly realized, we could solve this common need for travelers and locals alike!
I put my foot down… on the gas pedal of a u-haul truck.
we loaded up the apartment on UES and moved cross country
This is, in sorts, how Yallzi - /jɑːlzi/ was conceived.
We lost our favorite NYC hangouts over 2 short nights as my bride and I drove cross country to our new life. We were foreigners as we stepped out of the truck into Austin. We didn't know how to "live like Austin locals". And worst of all… It became difficult to procrastinate and find excuses not to unpack boxes.
We asked ourselves why there is no app for this- Why nobody want to crowd Fun the interent
Turned out we weren’t the only ones looking for an app like this.
An app that would allow people to explore new cities, an app that would allow people to share the cities they love, an app that would advertising work for them by breaking the barrier between consumer and vendor.
Locations can be Verticals: Food & Dining, Recreation, Entertainment, Arts & Culture, Sports…
Crowd Fun The Internet
Travel is a huge industry. Today’s travelers travel differently than we’d seen historically. We know there is a growing interest in traveling “like locals”. We see it through preferences away from hotels and towards hostels / airbnb / homeaway… We see it through travel off beaten path (versus tourist check boxes). So why not see it in how we select our travel itineraries and interact with venues!?
So we set out to create Yallzi and crowd fun the internet
YALLZI let's you share all your favorite places with friends or the whole world. (you create purpose-based groups)
YALLZI let's you explore new worlds that other Yallziers have shared.
YALLZI breaks the barrier between Vendor and Consumer.
I put together a power team of folks I’d worked with before. We had a variety of skills and experiences
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercialia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
I put together a power team of folks I’d worked with before. We had a variety of skills.
We focused on C, C++, Java.
Had been using RDBMS for 20 years
Had used MongoDB for 5 years in production for consumer facing, high-profile use cases at Forbes (analytics engine, content management, etc)
Ran on Extra Dry Martinis
Had proven abilities to squeeze 4 weeks of work into 7 days
Gift for finding Free Data before the company behind it commercia
We also had a variety of requirements and could see our challenges before we even began…
SUMMARY: Build and applicationa and analytics engine harvesting and using real time social choice and propensity data
Challenge: FLEXIBLE. Storing and managing dynamic data with usual for any stat up constant pivots for a “ sweet spot”
[INSERT Examples of data: User information, map data, venue data, etc… how does this change over time?]
Challenge: SPEED. Speed of iteration
We’re a startup with constantly changing business requirements. We needed a database that would allow us to iterate as quickly as needed.
Ex: Our business model has changed from x to y. We required a zero barrier to implement
Challenge: SCALE. Scale with our success. We are a bootstrapped startup. We needed a technology compatible with cloud deployment architectures. We couldn’t put up a large upfront investment. We needed to be able to leverage the cloud /commodity hardware and will scale with our success.
We also had a variety of requirements and could see our challenges before we even began…
SUMMARY: Build and applicationa and analytics engine harvesting and using real time social choice and propensity data
Challenge: FLEXIBLE. Storing and managing dynamic data with usual for any stat up constant pivots for a “ sweet spot”
[INSERT Examples of data: User information, map data, venue data, etc… how does this change over time?]
Challenge: SPEED. Speed of iteration
We’re a startup with constantly changing business requirements. We needed a database that would allow us to iterate as quickly as needed.
Ex: Our business model has changed from x to y. We required a zero barrier to implement
Challenge: SCALE. Scale with our success. We are a bootstrapped startup. We needed a technology compatible with cloud deployment architectures. We couldn’t put up a large upfront investment. We needed to be able to leverage the cloud /commodity hardware and will scale with our success.
Indexing… story of how we learned this lesson: About 5 years ago when I lead Engineering at Forbes, we were running into slow performance. To fix, we indexed…. EVERYTHING.
What happened? The application CRAWLED. < how did you learn this / who helped / what did you do >
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
Diving into Schema: we’ll first take a dive into “Actors”.
One type of Actor is Consumer
USERS User Collection is personal and private User data can be shared if desired for vanity or specific purpose( dietary reqs)
Location (Dynamic)
geo : latitude, longitude(geoLocation)
Preferences (Historical & “Acquired”)
Existing preference
Bob loves bicycling followed by a beer and lives on UES... A fellow Yallzier just biked East River Greenway, followed by a beer at Pony Bar. Yallzi renders this plan to Bob.
A fellow Yallzier Has Shared Interests and fellow Yalzier is a referrer
Shared
Bob and Sue both like Mexican, Sue loves Rosa Mexicana. Yallzi asks, Will Bob?)
Sue has similar interests and is a referer
Adjacent and could be “Acquired”
Bob likes Ballets and Opera. Sue loves this + Broadway Show. Yallzi suggest Broadway show)
Sue has similar interests and is a referrer
Availability (Dynamic)
time
Vendors
USERS User Collection is personal and private User data can be shared if desired for vanity or specific purpose( dietary reqs)
Location (Dynamic)
geo : latitude, longitude(geoLocation)
Preferences (Historical & “Acquired”)
Existing preference
Bob loves bicycling followed by a beer and lives on UES... A fellow Yallzier just biked East River Greenway, followed by a beer at Pony Bar. Yallzi renders this plan to Bob.
A fellow Yallzier Has Shared Interests and fellow Yalzier is a referrer
Shared
Bob and Sue both like Mexican, Sue loves Rosa Mexicana. Yallzi asks, Will Bob?)
Sue has similar interests and is a referer
Adjacent and could be “Acquired”
Bob likes Ballets and Opera. Sue loves this + Broadway Show. Yallzi suggest Broadway show)
Sue has similar interests and is a referrer
Availability (Dynamic)
time
Vendors
USERS User Collection is personal and private User data can be shared if desired for vanity or specific purpose( dietary reqs)
Location (Dynamic)
geo : latitude, longitude(geoLocation)
Preferences (Historical & “Acquired”)
Existing preference
Bob loves bicycling followed by a beer and lives on UES... A fellow Yallzier just biked East River Greenway, followed by a beer at Pony Bar. Yallzi renders this plan to Bob.
A fellow Yallzier Has Shared Interests and fellow Yalzier is a referrer
Shared
Bob and Sue both like Mexican, Sue loves Rosa Mexicana. Yallzi asks, Will Bob?)
Sue has similar interests and is a referer
Adjacent and could be “Acquired”
Bob likes Ballets and Opera. Sue loves this + Broadway Show. Yallzi suggest Broadway show)
Sue has similar interests and is a referrer
Availability (Dynamic)
time
Vendors
2nd type of Actor is Vendors.
Location: Don’t move location of restaurant
Vertical: A museum will be arts&culture, a Museum will (rarely, if ever) change into a Sporting Center or Restaurant.
68% = 2.5G 800mb
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
we design something like Google Page Ranking meets Twitter Following model for:
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
(we crowd-fun the internet)
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
And now we’re going to review how the app works, we’ll see both the “sausage creation” and the user interface side by side and talk through our decisions on indexing and schema to provide the analytics required for Yallzi.
small, big data where data is the engine
Metrics
with mongodb we were able to go from idea to prototype in x time
once we prototyped, we moved into alpha roughly 1 month later
we changed our business model
As a wrap up, we (A) reviewed who Yallzi is and what we’re trying to do, we reviewed why Yallzi selected MongoDb (initially for flexibility and scale)
Selected MongoDB initially for flexibility and scale, in addition to other requirements. It provided the best of both worlds: foundation of RDBMS with innovations of NoSQL.
index on article makes most sense
if talkign about preferences: index preferences
if talkign about location, we would index xxxx
overloading any collection with indices will lead to rapid degradation of performance
get one collection, identify the
So what’s next for us?: We’re wrapping up Development for our beta launch. If you’re interested, follow us on Twitter! We’re eager to partner and stay in touch and see you next year at MongoDB World.
Philosophy
Selected MongoDB initially for flexibility and scale, in addition to other requirements. It provided the best of both worlds: foundation of RDBMS with innovations of NoSQL.
With MongoDB: build collections by purpose that you can aggregate on top of
do not over index