SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Natalie Arellano
Vanessa Dean
Tuesday, July 8
Flatiron School Presents
FOMO No Mo’
FOMO
Other Events Happening Tonight
(you made the right choice)
API Requests
Request URL for members from Flatiron Presents
meetup.com/2/members?group_id=14306982&key=1afad67
Request URL for events that the member’s groups
are hosting in the next week
https://api.meetup.com/2/events?&sign=true&
photo-host=public&member_id=9053050&
time=1404858600000,%201405463400000
&page=20&key=1afad6758asdfb3q4f
Net::HTTP.get(“https://api.meetup.com/2/events?
&sign=true&photo-host=public&member_id=9053050& time=140485860
JSON.parse(Net::HTTP.get(events_request_uri))
Data Structure
railroady -M | dot -Tpng > models.png
Schema
Initialization
Member.all.sample(3).each do |member|
my_hash["results"].each do |result|
# create the event if not exists
event = Event.find_or_create_by(:name => result["name"],
:date => result["time"],
:url => result["event_url"])
# create the group if not exists, and assign it to the event
event.group = Group.find_or_create_by(:name => result["group"]["name"],
:urlname => result["group"]["urlname"])
# assign the group color -- assign color is defined on Group
event.group.assign_color
# add the current member to the group if not already a member
event.group.members << member unless event.group.members.include?(member)
# add the event date based on the time in milliseconds given by Meetup
event.assign_date(Time.at(event.date.to_i/1000).to_date)
end
end
def assign_date(new_date)
my_date = EventDate.find_or_create_by(event_date: new_date)
self.event_date = my_date
end
DEMO
Lessons Learned
• APIs can be demystified
• Objects make things easier
• Value of collaboration
Next Steps We Could Take
• Add ability to choose the seed group (instead of
always sampling from Flatiron Presents members)
• Let user sign in with their Meetup account and
choose groups they are a part of
• Add filters, e.g. narrow search results by location,
pizza == true
Questions?
Thanks!
We are:
Natalie Arellano
natalie.p.arellano@gmail.com
and
Vanessa Dean
vanessa.dean@gmail.com

Weitere ähnliche Inhalte

Mehr von Flatiron School

Mehr von Flatiron School (8)

Into to Node.js: Building Fast, Scaleable Network Applications
Into to Node.js: Building Fast, Scaleable Network ApplicationsInto to Node.js: Building Fast, Scaleable Network Applications
Into to Node.js: Building Fast, Scaleable Network Applications
 
What's a Core Image? An Image-Processing Framework on iOS and OS X
What's a Core Image? An Image-Processing Framework on iOS and OS XWhat's a Core Image? An Image-Processing Framework on iOS and OS X
What's a Core Image? An Image-Processing Framework on iOS and OS X
 
Intro to D3: Data-Driven Documents
Intro to D3: Data-Driven DocumentsIntro to D3: Data-Driven Documents
Intro to D3: Data-Driven Documents
 
Database Opt
Database Opt Database Opt
Database Opt
 
Citi Bike Finder
Citi Bike FinderCiti Bike Finder
Citi Bike Finder
 
JSON overview and demo
JSON overview and demoJSON overview and demo
JSON overview and demo
 
Creating Ruby Gems
Creating Ruby Gems Creating Ruby Gems
Creating Ruby Gems
 
Form Helpers
Form Helpers Form Helpers
Form Helpers
 

Kürzlich hochgeladen

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Kürzlich hochgeladen (20)

AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 

FOMO No Mo'

Hinweis der Redaktion

  1. I’m plagued by the fear of missing out.
  2. We created an app that addresses this by using the Meetup API to creep on all of you in the Flatiron Presents group and create a list of other events that you might be attending in the next week.
  3. Then it samples a few members at at time to create a list of events being hosted by the other other groups in the upcoming week.
  4. Meetup API lets you pull tons of information - including GET requests for events
  5. Meetup API is great for newbies because there is a ton of documentation
  6. I love the console. Allows you to search for events and build an API request using tons of different search criteria - including member id. The console will spit out a request URL for you.
  7. Request URLs look big and scary but is really just a list of search criteria tacked onto a basic get request. Not actually my API key - don’t try to use it. Don’t even need to because everyone on Meetup automatically gets one.
  8. Use Net::HTPP from ruby library to make the request and it returns JSON data.
  9. JSON parser in the ruby library and it returns a hash of details that we want - including the date/time of the event and event URL - as info on the group hosting. Natalie is going to talk more about how we used this data in our app.
  10. Using APIs is all about reading the documentation and testing things out - don’t be intimidated! Adding models and join tables can make it much easier to work with the data than relying on lower level structures like arrays and hashes
  11. Pizza == true is Brandon’s idea to scan for events serving pizza.