<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: reid j sherman</title>
    <description>The latest articles on DEV Community by reid j sherman (@reidjs).</description>
    <link>https://dev.to/reidjs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F776191%2F470edb4d-129a-4fa5-915e-f1c9da89e2c1.jpeg</url>
      <title>DEV Community: reid j sherman</title>
      <link>https://dev.to/reidjs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/reidjs"/>
    <language>en</language>
    <item>
      <title>Venmo Search</title>
      <dc:creator>reid j sherman</dc:creator>
      <pubDate>Mon, 03 Jan 2022 22:36:24 +0000</pubDate>
      <link>https://dev.to/reidjs/venmo-search-4gbj</link>
      <guid>https://dev.to/reidjs/venmo-search-4gbj</guid>
      <description>&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;I loaded over 300,000 Public Venmo Transactions into a Mongo Atlas database and use Atlas' Full Text Search to search by transaction memo.&lt;br&gt;
Venmo transactions are interesting for full text search because users have to leave a public memo on every transaction. What relationships can you infer between Venmo users, based on their transaction memo? Are they friends, roommates, family, coworkers, lovers, or something else? &lt;/p&gt;

&lt;p&gt;Deployed Application: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://reidjs.github.io/venmo-search-frontend/" rel="noopener noreferrer"&gt;https://reidjs.github.io/venmo-search-frontend/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Choose Your Own Adventure&lt;/p&gt;
&lt;h3&gt;
  
  
  Link to Code
&lt;/h3&gt;

&lt;p&gt;Frontend Repo:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/reidjs" rel="noopener noreferrer"&gt;
        reidjs
      &lt;/a&gt; / &lt;a href="https://github.com/reidjs/venmo-search-frontend" rel="noopener noreferrer"&gt;
        venmo-search-frontend
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Venmo Search&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Deployed here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://reidjs.github.io/venmo-search-frontend/" rel="nofollow noopener noreferrer"&gt;https://reidjs.github.io/venmo-search-frontend/&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;About&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Uses MongoDB's Atlas Search to search hundreds of thousands of Venmo transactions. Made for dev.to's mongodb hackathon&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/reidjs/venmo-search-frontenddemo.gif"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Freidjs%2Fvenmo-search-frontenddemo.gif" alt="demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;I built this to explore using MongoDB's Atlas Search as an alternative to ElasticSearch for full text search. I used Venmo data because&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;it's public&lt;/li&gt;
&lt;li&gt;users are forced to leave a text "comment" for every transaction&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Usage&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Production&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://reidjs.github.io/venmo-search-frontend/" rel="nofollow noopener noreferrer"&gt;https://reidjs.github.io/venmo-search-frontend/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Type a query&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Local Development&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start backend &lt;a href="https://github.com/reidjs/venmo-search-server" rel="noopener noreferrer"&gt;https://github.com/reidjs/venmo-search-server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Start frontend with &lt;code&gt;npm run dev&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open browser to localhost:8000&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Notes&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Venmo dataset from &lt;a href="https://github.com/sa7mon/venmo-data" rel="noopener noreferrer"&gt;https://github.com/sa7mon/venmo-data&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Out of the 7,000,000 transactions, I only used about 342,000 venmo transactions (free tier Mongo Atlas)&lt;/li&gt;
&lt;li&gt;To decide which transactions went into the database, I 'ranked' each transaction according to how long the comment was. Longer comment = more likely to be in database.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How to load in BSON data to atlas:
&lt;code&gt;mongorestore --uri mongodb+srv://[USERNAME]:[PASSWORD]@cluster0.abbj1.mongodb.net/[DATABASE] venmo.bson&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;How to Load in JSON data…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/reidjs/venmo-search-frontend" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;Backend Repo:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/reidjs" rel="noopener noreferrer"&gt;
        reidjs
      &lt;/a&gt; / &lt;a href="https://github.com/reidjs/venmo-search-server" rel="noopener noreferrer"&gt;
        venmo-search-server
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://dashboard.heroku.com/apps/venmo-search" rel="nofollow noopener noreferrer"&gt;https://dashboard.heroku.com/apps/venmo-search&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://venmo-search.herokuapp.com/?q=hello" rel="nofollow noopener noreferrer"&gt;https://venmo-search.herokuapp.com/?q=hello&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;deploy changes to heroku:
&lt;code&gt;npm run deploy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Run locally:
&lt;code&gt;npm start&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Looped through 7 million records to calculate the score on each one
This nearly set my 2.6GHZ 6Core i7 32GB MBPro on fire
In hindsight maybe I should have calculated a virtual field w/ mongoose, but this was the easy, dumb way of doing it.
After about an hour I had at least 500,000 scores calculated, which was a big enough dataset to load into atlas&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/reidjs/venmo-search-server" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85il9vumlsiht6nhmbap.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85il9vumlsiht6nhmbap.gif" alt="Deployed application"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>atlashackathon</category>
    </item>
  </channel>
</rss>
