<?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: Benoît Durand</title>
    <description>The latest articles on DEV Community by Benoît Durand (@duranbe).</description>
    <link>https://dev.to/duranbe</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%2F780510%2F95c139d4-9438-4065-82d9-ae890cae48d8.jpeg</url>
      <title>DEV Community: Benoît Durand</title>
      <link>https://dev.to/duranbe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/duranbe"/>
    <language>en</language>
    <item>
      <title>MongoDB Atlas Hackathon Submission - CookReview</title>
      <dc:creator>Benoît Durand</dc:creator>
      <pubDate>Wed, 07 Dec 2022 17:12:37 +0000</pubDate>
      <link>https://dev.to/duranbe/mongodb-atlas-hackathon-submission-cookreview-j08</link>
      <guid>https://dev.to/duranbe/mongodb-atlas-hackathon-submission-cookreview-j08</guid>
      <description>&lt;p&gt;My submission for the MongoDB Atlas Hackathon consist in a web application called &lt;strong&gt;CookReview&lt;/strong&gt; that let you find restaurants in the USA based on full text search on previous customer reviews. Thanks to community you can find more information on the restaurant that you can not find on other websites (e.g Price/Quality ratio, events, atmosphere) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2GKXSJfj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0jw3x7hy3d4utfevnad.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2GKXSJfj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0jw3x7hy3d4utfevnad.gif" alt="Image description" width="880" height="741"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;Event tought this project is built using a FARM stack, this project more found itself in the &lt;strong&gt;Search No More&lt;/strong&gt; Category since it's heavily depends on MongoDB Atlas Search Feature. &lt;/p&gt;

&lt;p&gt;Atlas search is used here for 3 differents use case:&lt;/p&gt;

&lt;h3&gt;
  
  
  Full text search based on user input
&lt;/h3&gt;

&lt;p&gt;When a user search for a restaurant a query is ran to find related information that should match the user input, if it's found then the score is boosted &lt;a href="https://www.mongodb.com/docs/atlas/atlas-search/scoring/#boost"&gt;Doc&lt;/a&gt; by a factor 3, since it's a perfect match.&lt;/p&gt;

&lt;p&gt;In the case of user clicking on Vegan and New York City, those two parameters are putted in a must condition signifying that the query MUST match those two parameters. We can not recommand a non-vegan restaurant or a restaurant outside of New York to a user that search for those.&lt;/p&gt;

&lt;p&gt;Another way to optmize the query result was to use the Synonyms feature &lt;a href="https://www.mongodb.com/docs/atlas/atlas-search/synonyms/#define-synonym-mappings-in-your-fts-index"&gt;Docs&lt;/a&gt; of Atlas search by providing a collection of equivalent words to enhance the query result. For that I created two different collections&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To enhance geographical user input, a collection containing all the US State and their ISO abbreviation, such that when a user  input a full state name, Atlas Search can make the link to a postal code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xbph9PM4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gg8k72d307gs33ngji1z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xbph9PM4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gg8k72d307gs33ngji1z.png" alt="State Name - ISO" width="408" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To add more words with the same meaning such as café and coffee, etc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EXhOk-4D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1jk4m03lex6s6xd5grcd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EXhOk-4D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1jk4m03lex6s6xd5grcd.png" alt="Synonyms" width="376" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Smart chose of icons based on restaurant information
&lt;/h3&gt;

&lt;p&gt;Another usage I made of Atlas Search was to find the best icon corresponding to a restaurant name and type so I dont have to do it&lt;/p&gt;

&lt;p&gt;To put that in use I wrote this simple query&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"$search"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"index"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;lt;RESTAURANT_INFO&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                    &lt;/span&gt;&lt;span class="nl"&gt;"wildcard"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"$limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"$project"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"$toString"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$_id"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"filename"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"$meta"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"searchScore"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Into this collection where each svg icon is linked to a word describing it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IFausERK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8vlyim8qly274dndx8g6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IFausERK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8vlyim8qly274dndx8g6.png" alt="Svg" width="402" height="298"&gt;&lt;/a&gt;&lt;br&gt;
Here is an example where chosen icon is a sushi &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vu3ilAnm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/omxzreuan8f9g5thydpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vu3ilAnm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/omxzreuan8f9g5thydpq.png" alt="Image description" width="880" height="465"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Autocomplete of restaurant name
&lt;/h3&gt;

&lt;p&gt;Using MongoDB Atlas Seach autocomplete feature I was able to quickly make an autocomplete system based on restaurant name&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y_j9Up9P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7ymjnkd9d8tn67n2cn0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y_j9Up9P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7ymjnkd9d8tn67n2cn0.gif" alt="Image description" width="880" height="242"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"$search"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"index"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"reviews"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"autocomplete"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Name"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"$limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"$project"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"$toString"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$_id"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://cookreview.duranbe.tech"&gt;http://cookreview.duranbe.tech&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xj6prGkx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/adoqry6lm0nhcs7r2api.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xj6prGkx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/adoqry6lm0nhcs7r2api.png" alt="Image description" width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Source Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/duranbe/restaurants-reviews"&gt;https://github.com/duranbe/restaurants-reviews&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Story behind the project
&lt;/h2&gt;

&lt;p&gt;The original idea came to me by browsing Kaggle. As a Machine Learning graduate and incoming Software Engineer I wanted to build a data-driven application.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;When building this project I learned more about MongoDB, and Atlas Search feature that gives a lot of options to developper and a solve a lots of problems, such as an autocomplete feature. &lt;/p&gt;

&lt;p&gt;I also learned more about React and Tailwind, as it is the first big project I am working on with these technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ressources
&lt;/h2&gt;

&lt;p&gt;MongoDB Atlas Search : &lt;a href="https://www.mongodb.com/docs/atlas/atlas-search/atlas-search-overview/"&gt;https://www.mongodb.com/docs/atlas/atlas-search/atlas-search-overview/&lt;/a&gt;&lt;br&gt;
React : &lt;a href="https://reactjs.org"&gt;https://reactjs.org&lt;/a&gt; &lt;br&gt;
Tailwind : &lt;a href="https://tailwindcss.com"&gt;https://tailwindcss.com&lt;/a&gt;&lt;br&gt;
DrawKit (Illustrations) : &lt;a href="https://www.drawkit.com"&gt;https://www.drawkit.com&lt;/a&gt;&lt;br&gt;
Fast API : &lt;a href="https://fastapi.tiangolo.com"&gt;https://fastapi.tiangolo.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>atlashackathon22</category>
      <category>react</category>
      <category>fastapi</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>Importing a csv to MongoDB Atlas on Debian with mongoimport</title>
      <dc:creator>Benoît Durand</dc:creator>
      <pubDate>Sat, 26 Nov 2022 09:53:28 +0000</pubDate>
      <link>https://dev.to/duranbe/importing-a-csv-to-mongodb-atlas-on-debian-with-mongoimport-26i6</link>
      <guid>https://dev.to/duranbe/importing-a-csv-to-mongodb-atlas-on-debian-with-mongoimport-26i6</guid>
      <description>&lt;p&gt;In those times of MongoDB Atlas Hackathon I thought it will be useful to share with the community the process to upload csv/tsv files to MongoDB Atlas service, as it can be use in case a building a data-driven service.&lt;/p&gt;

&lt;p&gt;NB : This tutorial is mainly targeted to Debian User.&lt;/p&gt;

&lt;p&gt;Pre Requisites : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debian Linux Installed&lt;/li&gt;
&lt;li&gt;a MongoDB Atlas database cluster &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installing MongoDB Database Tools 🌱
&lt;/h2&gt;

&lt;p&gt;To upload our csv file the first thing we need is to install MongoDB Database Tools on our machine. This will allow us to use the mongoimport tool and bunch of others mongodb related tools such as :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mongodump
mongorestore
bsondump
mongoimport
mongoexport
mongostat
mongotop
mongofiles
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To do that you need to select your operating system and download the package &lt;a href="https://www.mongodb.com/try/download/database-tools" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;br&gt;
In case you are like me on Debian or WSL you can directly use one of these commands :&lt;/p&gt;
&lt;h3&gt;
  
  
  Debian 11
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-debian11-x86_64-100.6.1.deb 
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; ./mongodb-database-tools-debian11-x86_64-100.6.1.deb 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Debian 10
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-debian10-x86_64-100.6.1.deb
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; ./mongodb-database-tools-debian10-x86_64-100.6.1.deb 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;And then all the mentionned tools should be installed ! &lt;/p&gt;
&lt;h2&gt;
  
  
  Upload a csv file using the mongoimport command 🌱🌱
&lt;/h2&gt;

&lt;p&gt;The mongoimport command can be use with the following syntax :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mongoimport &amp;lt;options&amp;gt; &amp;lt;connection-string&amp;gt; &amp;lt;file&amp;gt;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Where the connection-string is your mongodb cluster connection string, in the following format :&lt;br&gt;
&lt;code&gt;mongodb+srv://&amp;lt;username&amp;gt;:&amp;lt;password&amp;gt;@&amp;lt;host&amp;gt;/&amp;lt;database&amp;gt;&lt;br&gt;
&lt;/code&gt;or&lt;br&gt;
&lt;code&gt;mongodb://&amp;lt;username&amp;gt;:&amp;lt;password&amp;gt;@&amp;lt;host&amp;gt;/&amp;lt;database&amp;gt;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
The file arguments is the path of the csv you want to upload, such as &lt;code&gt;imdb_data.csv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Options are bunch of others configurations you can use such as &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--headerline&lt;/code&gt; : To make mongodb use the first line of the csv as the fields reference&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--collection=&amp;lt;collection_name&amp;gt;&lt;/code&gt;: To define which collections to use in your db, otherwise mongo will create one using the name of the csv file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To get a detail of all the options you can refer the help using &lt;code&gt;mongoimport --help&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In my case I used the following command to make sure things were done right :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mongoimport \
--uri=mongodb+srv://USERNAME:PASSWORD@HOST \
--db=DB\
--type=csv \
--headerline  \
--DATA.csv \

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's it ! You can comment below your thought and issues 👇&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>linux</category>
    </item>
    <item>
      <title>Explore Seattle City Bikes trips</title>
      <dc:creator>Benoît Durand</dc:creator>
      <pubDate>Wed, 05 Jan 2022 19:32:15 +0000</pubDate>
      <link>https://dev.to/duranbe/explore-and-predict-seattle-city-bikes-trips-cac</link>
      <guid>https://dev.to/duranbe/explore-and-predict-seattle-city-bikes-trips-cac</guid>
      <description>&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;If like me you had the chance to live in a big city or a capital, you certainly came across these bikes :&lt;br&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%2F9wg22xkwri5xczycne40.jpg" 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%2F9wg22xkwri5xczycne40.jpg" alt="Nextbike by Holger Schué on Pixabay"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Theses bike sharing services are pretty popular nowadays and as a user I'm a pretty big fan of them. That's why as a Data Science student I chose to dig and play a bit with the data I could find about them.&lt;/p&gt;

&lt;p&gt;The project consist in a small one-page dashboard to analyze and predicts the cycle share trips of the Pronto Cycle Share system, that was operating between 2014 and 2016 in Seattle, USA.&lt;/p&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%2Ferigkdt9vcpa4vxxmfbl.png" 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%2Ferigkdt9vcpa4vxxmfbl.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;br&gt;
This project was built with FastAPI, MongoDB, Docker, Bootstrap and Chartjs.&lt;/p&gt;

&lt;p&gt;Project can be accessed at the following url :&lt;br&gt;
&lt;a href="http://194-195-242-254.ip.linodeusercontent.com" rel="noopener noreferrer"&gt;Pronto Dashboard&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;This project belongs to the &lt;strong&gt;Prime Time&lt;/strong&gt; category.&lt;/p&gt;
&lt;h3&gt;
  
  
  Link to Code
&lt;/h3&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/duranbe" rel="noopener noreferrer"&gt;
        duranbe
      &lt;/a&gt; / &lt;a href="https://github.com/duranbe/bike-sharing" rel="noopener noreferrer"&gt;
        bike-sharing
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Dashboard on Pronto Bikes Data 🚴‍♂️ for MongoDB Atlas Hackathon
    &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;Bike Sharing&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;Pronto Bike Sharing Dashboard&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Overview&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The project consist in a small one-page dashboard to analyze and predicts the cycle share trips of the Pronto Cycle Share system, that was operating between 2014 and 2016 in Seattle, USA.&lt;/p&gt;
&lt;p&gt;It was created for the DEV.TO and MongoDB atlashackathon&lt;/p&gt;
&lt;p&gt;Dev post : &lt;a href="https://dev.to/duranbe/explore-and-predict-seattle-city-bikes-trips-cac" rel="nofollow"&gt;https://dev.to/duranbe/explore-and-predict-seattle-city-bikes-trips-cac&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This project was built with FastAPI, MongoDB, Docker, Bootstrap and Chartjs.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/duranbe/bike-sharing/blob/main/img/snapshot.PNG?raw=true"&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%2Fduranbe%2Fbike-sharing%2Fraw%2Fmain%2Fimg%2Fsnapshot.PNG%3Fraw%3Dtrue" alt="screen"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Setting up the project&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;This project is built with Docker 🐋,&lt;/p&gt;
&lt;p&gt;First step is to build the image&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;docker build . -t bike-sharing
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then create a container, map the network port and the .env file&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;docker run --name bike-sharing-container -p 80:80 --env-file .env bike-sharing
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To stop and delete the container&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;docker rm --force bike-sharing-container
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Ressources&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/duranbe/bike-sharingmongodb.com/developer/quickstart/python-quickstart-fastapi/" rel="noopener noreferrer"&gt;MongoDB Quickstart : Fastapi and MongoDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/pronto/cycle-share-dataset" rel="nofollow noopener noreferrer"&gt;Pronto Cycle Share dataset on Kaggle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fastapi.tiangolo.com" rel="nofollow noopener noreferrer"&gt;FastAPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com" rel="nofollow noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/duranbe/bike-sharingMongoDB.com" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.chartjs.org" rel="nofollow noopener noreferrer"&gt;ChartJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://getbootstrap.com" rel="nofollow noopener noreferrer"&gt;Bootstrap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&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/duranbe/bike-sharing" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


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

&lt;ul&gt;
&lt;li&gt;&lt;a href="//mongodb.com/developer/quickstart/python-quickstart-fastapi/"&gt;MongoDB Quickstart : Fastapi and MongoDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/pronto/cycle-share-dataset" rel="noopener noreferrer"&gt;Pronto Cycle Share dataset on Kaggle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fastapi.tiangolo.com" rel="noopener noreferrer"&gt;FastAPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//MongoDB.com"&gt;MongoDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.chartjs.org" rel="noopener noreferrer"&gt;ChartJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://getbootstrap.com" rel="noopener noreferrer"&gt;Bootstrap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>atlashackathon</category>
      <category>python</category>
      <category>javascript</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
