You are on page 1of 2

 

API Engineering Case Study 


Assignment Deliverables 
1. A minimum viable product written in Python or Node JS with any database and 
framework of your choice. 
2. Bonus points: ​Twitter Streaming rather than search. 
3. Bonus points: ​NoSQL databases. 
4. Bonus points: ​CSV export API for filtered data. 
 
Push it on git/bitbucket. Submit your assignment using the ​form on website​. 

Problem Statement 
Use Twitter Search/Streaming API to fetch are store the target tweets with metadata 
(eg: user details, tweet time, favorites and retweet counts etc ) for a recent high traffic event 
and create a MVP. 
 
Following APIs are the requirements for a Minimum Viable Product. 
 
1. API 1 ​to trigger a twitter search/stream for ​recent high traffic events. 
(eg: modi, AbkiBarModiSarkar, ModiForPM etc were high traffic terms during elections 
back in 2014) 
 
○ Trigger search/stream for keyword sent in request 
○ You can use libraries for twitter search or streaming. 
○ Stream/Fetch tweets from twitter and store a normalized and curated version 
of that tweet data. Architect appropriate database and schema keeping 
redundancy and query simplicity in mind. 
 
2. API 2 ​to return stored tweets and their metadata based on applied filters/search. 
 
○ API should be paginated 
○ It must support text search in tweet text/user name 
○ has sorting available by date time, tweet text etc 
 
   
○ API should have filters like user/screen name, retweet count, favorite count, 
date range, language, user follower counts, user mentions, URLs etc. (The 
more the merrier) in such a way that: 
 
■ Date range filter in case of date (eg: tweet date etc) 
■ Less than, greater than, equal to filter in case of integer column 
(eg: retweet count) 
■ Starts with, ends with, contains, exact match in case of string (eg: 
tweet text/user's name/screen name/ URLs/ user mentions etc) 
 
3. API  3  (For  Bonus  Points)  ​to  export  filtered  data  as  CSV  with  selected  columns  of 
your  choice  (whichever  columns  make  more  sense  to  have  in  csv  for  lets  say 
someone who wants to perform some analysis on it) 
 
Additional Questions 
If you have questions related to the assignment deliverables, please drop an email to 
ajay.gupta@innovaccer.com​ and we will try to reach you back ASAP 
 
Cheers, and good luck :) 

You might also like