<?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: Aditya Raman</title>
    <description>The latest articles on DEV Community by Aditya Raman (@ramanaditya).</description>
    <link>https://dev.to/ramanaditya</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%2F239771%2F290965e5-d1b6-4170-8d98-8da5ad9b5229.jpg</url>
      <title>DEV Community: Aditya Raman</title>
      <link>https://dev.to/ramanaditya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ramanaditya"/>
    <language>en</language>
    <item>
      <title>Seasons of Serverless, Lovely Ladoos</title>
      <dc:creator>Aditya Raman</dc:creator>
      <pubDate>Tue, 01 Dec 2020 00:25:11 +0000</pubDate>
      <link>https://dev.to/ramanaditya/seasons-of-serverless-lovely-ladoos-3db6</link>
      <guid>https://dev.to/ramanaditya/seasons-of-serverless-lovely-ladoos-3db6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This article is part of &lt;a href="https://aka.ms/SeasonsOfServerless" rel="noopener noreferrer"&gt;#SeasonsOfServerless&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Each week we will publish a challenge created by &lt;a href="https://dev.to/azure"&gt;Azure Advocates&lt;/a&gt; with amazing &lt;a href="https://studentambassadors.microsoft.com/" rel="noopener noreferrer"&gt;Student Ambassadors&lt;/a&gt; around the world. Discover popular festive recipes and learn how Microsoft Azure empowers you to do more with &lt;a href="https://docs.microsoft.com/en-us/azure/azure-functions/?WT.mc_id=academic-10277-cxall" rel="noopener noreferrer"&gt;Serverless Functions&lt;/a&gt;! 🍽 😍.&lt;br&gt;
Explore our serverless &lt;a href="https://github.com/microsoft/Seasons-of-Serverless/blob/main/RESOURCES.md" rel="noopener noreferrer"&gt;Resources&lt;/a&gt; here and learn how you can contribute solutions &lt;a href="https://github.com/microsoft/Seasons-of-Serverless/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Check original repository at, &lt;a href="https://github.com/microsoft/Seasons-of-Serverless" rel="noopener noreferrer"&gt;https://github.com/microsoft/Seasons-of-Serverless&lt;/a&gt;&lt;br&gt;
Serverless Solution for Lovely Ladoos: &lt;a href="https://github.com/ramanaditya/Seasons-of-Serverless-Solution-Lovely-Ladoos" rel="noopener noreferrer"&gt;https://github.com/ramanaditya/Seasons-of-Serverless-Solution-Lovely-Ladoos&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Challenge 2: Lovely Ladoos
&lt;/h2&gt;

&lt;p&gt;Featured Region: &lt;strong&gt;India&lt;/strong&gt;&lt;br&gt;
Your Chefs: &lt;strong&gt;&lt;a href="https://twitter.com/paladique" rel="noopener noreferrer"&gt;Jasmine Greenaway&lt;/a&gt;&lt;/strong&gt;, Cloud Advocate (Microsoft) with &lt;strong&gt;&lt;a href="https://www.linkedin.com/in/soumyanarapa-3a8740169/" rel="noopener noreferrer"&gt;Soumya Narapaju&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://twitter.com/_adityaraman" rel="noopener noreferrer"&gt;Aditya Raman&lt;/a&gt;, Microsoft Student Ambassadors&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's &lt;strong&gt;Diwali&lt;/strong&gt; season in India! A very popular delicacy that Indians eat during Diwali are ladoos, balls of flour dipped in sugar syrup. Can you create a machine learning model to detect a proper ladoo? &lt;a href="https://github.com/microsoft/Seasons-of-Serverless/blob/main/Nov-30-2020.md" rel="noopener noreferrer"&gt;Learn more about this challenge&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Teaser
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Mc-DlxKHx8Q"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The Solution creates an &lt;strong&gt;image classifier using Custom Vision API&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The solution also creates a &lt;strong&gt;Serverless Endpoint&lt;/strong&gt; which is used to

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;List&lt;/strong&gt; all the images stored on the &lt;strong&gt;Azure Blob Storage&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; a new image on the &lt;strong&gt;Azure Blob Storage&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predict&lt;/strong&gt; the already uploaded image using &lt;strong&gt;Custom Vision API&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Serverless Compute
&lt;/h2&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%2Fi%2Fe3f7w8b10db18iazx6c6.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%2Fi%2Fe3f7w8b10db18iazx6c6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Serverless computing&lt;/strong&gt; enables developers to &lt;strong&gt;build&lt;/strong&gt; applications &lt;strong&gt;faster&lt;/strong&gt; by eliminating the need for them to &lt;strong&gt;manage infrastructure&lt;/strong&gt;. With serverless applications, the cloud service provider automatically &lt;strong&gt;provisions, scales and manages the infrastructure&lt;/strong&gt; required to run the code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Altogether it can be summarized as
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Function as a Service&lt;/strong&gt;: Modular way of writing business logics as a different application(s) which is/are triggered with the event(s). eg., Azure Functions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stateless Compute Containers&lt;/strong&gt;​: Service which does not require to read/store their previous states after each start.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event-triggered and Ephemeral&lt;/strong&gt;​: Triggered only by events, and they exist until the time it is triggered. If not triggered for a period, the service gets down allowing other services to use their resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamically Allocated​&lt;/strong&gt;: Services gets down when not in use so their resources might be used by other services, that is why they have to be redeployed(behind the scene) thus dynamically allocated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay as you go&lt;/strong&gt;​: Pay for the services that have actually been used.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Advantages and Disadvantages of using Serverless
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Advantages&lt;/th&gt;
&lt;th&gt;Disadvantages&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lower Operational Cost​&lt;/td&gt;
&lt;td&gt;Complex Architecture​&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easily Scalable​&lt;/td&gt;
&lt;td&gt;Execution Time​&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Billing is based upon Usage​&lt;/td&gt;
&lt;td&gt;Execution Frequency​&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy Deployment​&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low Cost​&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Azure CLI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Azure CLI&lt;/strong&gt;: The &lt;strong&gt;Azure command-line&lt;/strong&gt; interface (&lt;strong&gt;Azure CLI&lt;/strong&gt;) is a set of commands used to create and manage Azure resources. The Azure CLI is available across Azure services and is designed to get you working quickly with Azure, with an emphasis on automation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Azure CLI Commands
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Login to Azure&lt;/strong&gt;: The command will open the tab in the browser letting you to log in to the portal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  To check all the available locations
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az account list-locations &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--query&lt;/span&gt; &lt;span class="s2"&gt;"[].{Region:name}"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--out&lt;/span&gt; table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Setting up the subscription
&lt;/h3&gt;

&lt;p&gt;If this step is performed you can skip the subscription argument while creating group, storage and applications. This set as the default subscription on your local system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# To see all the available subscriptions&lt;/span&gt;
az account list 
&lt;span class="c"&gt;# To set the subscription&lt;/span&gt;
az account &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;--subscription&lt;/span&gt; &amp;lt;Subscription-ID or Subscription-Name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create Azure Resource Group
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Azure Resource Group&lt;/strong&gt; is the &lt;strong&gt;container&lt;/strong&gt; to &lt;strong&gt;store&lt;/strong&gt; the resources as the directory in your system. It helps in managing the resources associated with a similar type of solutions or the related one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az group create &lt;span class="nt"&gt;--name&lt;/span&gt; &amp;lt;Your-Resource-Group-Name&amp;gt; &lt;span class="nt"&gt;--location&lt;/span&gt; eastus
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Blob Storage
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Azure Blob storage&lt;/strong&gt; is Microsoft's object storage solution for the cloud. Blob storage is optimized for &lt;strong&gt;storing massive amounts of unstructured data&lt;/strong&gt;. Unstructured data is data that doesn't adhere to a particular data model or definition, such as text or binary data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az storage account create &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--name&lt;/span&gt; &amp;lt;Blob Storage Name&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &amp;lt;Resource Group Name&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--location&lt;/span&gt; eastus &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--sku&lt;/span&gt; Standard_ZRS &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--encryption-services&lt;/span&gt; blob
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create Container
&lt;/h3&gt;

&lt;p&gt;A container organizes a set of blobs, similar to a directory in a file system. A storage account can include an unlimited number of containers, and a container can store an unlimited number of blobs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az ad signed-in-user show &lt;span class="nt"&gt;--query&lt;/span&gt; objectId &lt;span class="nt"&gt;-o&lt;/span&gt; tsv | az role assignment create &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--role&lt;/span&gt; &lt;span class="s2"&gt;"Storage Blob Data Contributor"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--assignee&lt;/span&gt; @- &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--scope&lt;/span&gt; &lt;span class="s2"&gt;"/subscriptions/&amp;lt;Subscription&amp;gt;/resourceGroups/&amp;lt;Resource Group Name&amp;gt;/providers/Microsoft.Storage/storageAccounts/&amp;lt;Blob Storage Name&amp;gt;"&lt;/span&gt;

az storage container create &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--account-name&lt;/span&gt; &amp;lt;Storage Account&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--name&lt;/span&gt; &amp;lt;Container Name&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--auth-mode&lt;/span&gt; login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Azure Functions
&lt;/h2&gt;

&lt;p&gt;Azure Functions is a serverless compute service that lets you run event-triggered code without having to explicitly provision or manage infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Azure Functions Core Tools&lt;/strong&gt;: To develop and test the functions locally using a terminal or command prompt. This is required and can be downloaded from &lt;a href="https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=macos%2Ccsharp%2Cbash#v2" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating Functions Project
&lt;/h3&gt;

&lt;p&gt;The command initializes the project and creates a project directory - worker-runtime denotes the language you want to use in the application&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# This will generate a folder containing two files host.json and local.settings.json&lt;/span&gt;
func init Seasons-of-Serverless-Solution-Lovely-Ladoos &lt;span class="nt"&gt;--worker-runtime&lt;/span&gt; node

&lt;span class="nb"&gt;cd &lt;/span&gt;Seasons-of-Serverless-Solution-Lovely-Ladoos
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;The values of these files can be changed according to the connection strings which you had or will have for DB, storage etc.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating Functions Template
&lt;/h3&gt;

&lt;p&gt;To Create a JavaScript HTTP Trigger, this is a sample template to create the HTTP Trigger.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Here a pre-built template for the Http Trigger will be created&lt;/span&gt;
&lt;span class="c"&gt;# with two files, function.json and index.js&lt;/span&gt;
&lt;span class="c"&gt;# We are going to write our logics in the index.js&lt;/span&gt;
&lt;span class="c"&gt;# To create blob endpoint&lt;/span&gt;
func new &lt;span class="nt"&gt;--template&lt;/span&gt; &lt;span class="s2"&gt;"Http Trigger"&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; blobs

&lt;span class="c"&gt;# To create prediction endpoint&lt;/span&gt;
func new &lt;span class="nt"&gt;--template&lt;/span&gt; &lt;span class="s2"&gt;"Http Trigger"&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; predict
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Initialize your nodeJs project with npm
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Refer to the GitHub Repository for the complete code: &lt;a href="https://github.com/ramanaditya/Seasons-of-Serverless-Solution-Lovely-Ladoos" rel="noopener noreferrer"&gt;ramanaditya/Seasons-of-Serverless-Solution-Lovely-Ladoos&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  List all the blobs in a Blob Storage Container
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BlobServiceClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;StorageSharedKeyCredential&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;newPipeline&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@azure/storage-blob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sharedKeyCredential&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;StorageSharedKeyCredential&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AZURE_STORAGE_ACCOUNT_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AZURE_STORAGE_ACCOUNT_ACCESS_KEY&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pipeline&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;newPipeline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sharedKeyCredential&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;containerName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;CONTAINER_NAME&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blobServiceClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BlobServiceClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`https://&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AZURE_STORAGE_ACCOUNT_NAME&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.blob.core.windows.net`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pipeline&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;containerClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;blobServiceClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getContainerClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;containerName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;listBlobsResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;containerClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listBlobFlatSegment&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Uploading the image to the Blob Storage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BlobServiceClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@azure/storage-blob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;streamifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;streamifier&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;containerName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;CONTAINER_NAME&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blobServiceClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;BlobServiceClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fromConnectionString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AzureWebJobsStorage&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;containerClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;blobServiceClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getContainerClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;containerName&lt;/span&gt;&lt;span class="p"&gt;);;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockBlobClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;containerClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockBlobClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fileName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;blockBlobClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;uploadStream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;streamifier&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createReadStream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fileData&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="nx"&gt;fileData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Predict the image with image URL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Import Dependencies&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;msRest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@azure/ms-rest-js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;PredictionAPIClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@azure/cognitiveservices-customvision-prediction&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Get the env variables&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;projectId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PROJECT_ID&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;publishedName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PUBLISHED_NAME&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;predictionKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PREDICTION_KEY&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;endPoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PREDICTION_ENDPOINT&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;predictionResourceId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PREDICTION_RESOURCE_ID&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;predictor_credentials&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;msRest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ApiKeyCredentials&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;inHeader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Prediction-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;predictionKey&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;predictor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PredictionAPIClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;predictor_credentials&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;endPoint&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;predictor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;classifyImageUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;projectId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;publishedName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;imageUrl&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Custom Vision API
&lt;/h2&gt;

&lt;p&gt;Custom Vision lets you build, deploy, and improve your own image classifiers. An image classifier is an AI service that applies labels (which represent classes) to images, based on their visual characteristics. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The solution here is not the only solution, one can use the Serverless Function or the Azure CLI for the same, we just went with the simpler method of using the Azure Portal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in the Azure Portal, search for Cognitive Services → Custom Vision or search for Custom Vision, and click Create.&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%2Fi%2Fv6gtukcyimbvmrx7c10e.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%2Fi%2Fv6gtukcyimbvmrx7c10e.png" alt="create custom vision"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the subscription, resource group you created above.&lt;br&gt;
Select the pricing tier best suited for your purpose, well here I would go with Free F0 Pricing Tier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It takes a few minutes to deploy&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%2Fi%2F39ujh0uqoeyift0cshbl.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%2Fi%2F39ujh0uqoeyift0cshbl.png" alt="custom vision deployment"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to 'Go to prediction resource' ie., &lt;a href="https://www.customvision.ai/" rel="noopener noreferrer"&gt;customvision.ai&lt;/a&gt; portal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a New Project&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: &amp;lt;Any Name&amp;gt;
Description: &amp;lt;Any Description&amp;gt;
Resources: &amp;lt;The Resource just created&amp;gt;
Project Types: Classification
Classification Types: Multiclass (Single tag per image)
Domains: Food
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;On the Custom Vision Portal, click on 'Add Images', and upload the images of "ladoos" and tag them as "ladoo". At the end Upload all the files. &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;For your simplicity, I have attached the dataset: &lt;a href="https://github.com/ramanaditya/Seasons-of-Serverless-Solution-Lovely-Ladoos/tree/main/datasets" rel="noopener noreferrer"&gt;ramanaditya/Seasons-of-Serverless-Solution-Lovely-Ladoos/tree/main/datasets&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fi%2F30vtbjnuqdsme8cum6e9.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%2Fi%2F30vtbjnuqdsme8cum6e9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similarly, upload the images of doughnut and sesame buns.&lt;/li&gt;
&lt;li&gt;Once all the images are uploaded click on &lt;strong&gt;Train&lt;/strong&gt;, you can select any training options, here I have selected "&lt;strong&gt;Quick Training&lt;/strong&gt;".&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the training is completed you will find the beautiful statistics&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%2Fi%2F7kk7ppx23oz2jh7hwasx.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%2Fi%2F7kk7ppx23oz2jh7hwasx.png" alt="statistics"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on "&lt;strong&gt;Publish&lt;/strong&gt;" to publish your prediction model to be used in the Azure Functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While publishing save the "&lt;strong&gt;Published Name&lt;/strong&gt;" to your &lt;code&gt;.env&lt;/code&gt; file&lt;br&gt;
Navigate to &lt;code&gt;settings&lt;/code&gt; and store &lt;code&gt;Project ID, Prediction Endpoint, Prediction Key and Prediction Resource ID&lt;/code&gt; in the &lt;code&gt;.env&lt;/code&gt; file.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Run locally
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;func start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Check the working of API Endpoints
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GET: /api/blobs 
&lt;/h3&gt;

&lt;p&gt;List all the images stored with their image URL&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%2Fi%2Fab0t35qkbogagozdzh0u.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%2Fi%2Fab0t35qkbogagozdzh0u.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  POST: /api/blobs
&lt;/h3&gt;

&lt;p&gt;To upload the image to the blob storage&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%2Fi%2F13nsf3bdumy3dl346v1r.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%2Fi%2F13nsf3bdumy3dl346v1r.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GET: /api/predict?imageurl=&amp;lt;imageUrl&amp;gt;
&lt;/h3&gt;

&lt;p&gt;To predict the image&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%2Fi%2F0e68yypdn3tu6w141yj3.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%2Fi%2F0e68yypdn3tu6w141yj3.png" alt="predict"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Chefs for the Challenge
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/paladique" rel="noopener noreferrer"&gt;Jasmine Greenaway&lt;/a&gt;, Cloud Advocate (Microsoft)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/in/soumyanarapa-3a8740169/" rel="noopener noreferrer"&gt;Rama Soumya Naraparaju&lt;/a&gt;, Microsoft Student Ambassadors&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/_adityaraman" rel="noopener noreferrer"&gt;Aditya Raman&lt;/a&gt; (me), Microsoft Student Ambassadors&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>seasonsofserverless</category>
      <category>azure</category>
      <category>serverless</category>
      <category>customvision</category>
    </item>
    <item>
      <title>Open Source Projects Thread</title>
      <dc:creator>Aditya Raman</dc:creator>
      <pubDate>Thu, 01 Oct 2020 16:19:01 +0000</pubDate>
      <link>https://dev.to/ramanaditya/open-source-projects-thread-20gp</link>
      <guid>https://dev.to/ramanaditya/open-source-projects-thread-20gp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A little help will guide someone to eventually create some indistinguishable future.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Hacktoberfest 2020
&lt;/h2&gt;

&lt;p&gt;A complete month of &lt;strong&gt;October&lt;/strong&gt; dedicated to &lt;strong&gt;Open Source Development&lt;/strong&gt; and learning more about different open-source software. We get a chance to contribute to the development of open-source software and communities. &lt;br&gt;
Although it is common for the developers who continue to develop throughout the year. But the best thing is every year the freshers or the people who just started with the development gets an awesome timeline to learn and contribute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perks
&lt;/h2&gt;

&lt;p&gt;You get a choice to pick a limited edition &lt;strong&gt;T-shirt&lt;/strong&gt; or plant a tree. But that is just motivation, else you have a chance to step up in the world of innovation and development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this thread
&lt;/h2&gt;

&lt;p&gt;Generally, freshers have a great challenge in selecting the project. They try going with the listed projects on the &lt;strong&gt;Hacktoberfest&lt;/strong&gt; website, which are really little difficult or they aren't resourceful or knowledgeable to get their PR accepted.&lt;/p&gt;

&lt;p&gt;So We(You and me) are creating this thread and you can add the open-source projects which are accepting the PR from the people broadly classified into three parts as &lt;code&gt;easy&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt; and &lt;code&gt;hard&lt;/code&gt;. You can add &lt;code&gt;first-timer&lt;/code&gt; as well.&lt;/p&gt;

&lt;p&gt;You can append your projects or the projects you know are accepting PRs for this &lt;strong&gt;Hacktoberfest&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Links:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hacktoberfest.digitalocean.com/"&gt;Hacktoberfest Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Request a comment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add a link to the GitHub repository or the project website&lt;/li&gt;
&lt;li&gt;Add label &lt;code&gt;first-timer&lt;/code&gt;, &lt;code&gt;easy&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;hard&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Post the comment&lt;/li&gt;
&lt;li&gt;If you are a part of a community who supports open-source, do mention them or the link to their website so that people might like to contribute and connect for their development.&lt;/li&gt;
&lt;li&gt;Yay! you just helped someone to make their first contribution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are free to share and repost with or without any permission(s). Solely used for Open Source Development.&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Serverless with GraphQL #ServerlessSeptember</title>
      <dc:creator>Aditya Raman</dc:creator>
      <pubDate>Wed, 09 Sep 2020 16:52:42 +0000</pubDate>
      <link>https://dev.to/ramanaditya/serverless-with-graphql-serverlessseptember-1n2k</link>
      <guid>https://dev.to/ramanaditya/serverless-with-graphql-serverlessseptember-1n2k</guid>
      <description>&lt;p&gt;Everything on Azure. Scalable and cost-effective Serverless system leveraging GraphQL API hosted on Azure. Easy deployable and production-ready code with Azure CLI and Azure DevOps. Built a simple API to query your professional details. You can modify and create your own API, isn't it beautiful. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GraphQL API URL:&lt;/strong&gt; &lt;a href="https://ramanaditya-graphql.azurewebsites.net/graphql?code=mWybiYT9VGKSkNsZvuzMPajaNiMYvbEBhc6LErNr8hnXdeunrqOR7w=="&gt;https://ramanaditya-graphql.azurewebsites.net/graphql?code=mWybiYT9VGKSkNsZvuzMPajaNiMYvbEBhc6LErNr8hnXdeunrqOR7w==&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Project
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Medium Article:&lt;/strong&gt; &lt;a href="https://medium.com/@ramanaditya/serverless-with-graphql-c0bf59078303"&gt;https://medium.com/@ramanaditya/serverless-with-graphql-c0bf59078303&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article is part of &lt;strong&gt;#ServerlessSeptember&lt;/strong&gt; &lt;a href="https://aka.ms/ServerlessSeptember2020"&gt;https://aka.ms/ServerlessSeptember2020&lt;/a&gt;. You'll find other helpful articles, detailed tutorials, and videos in this all-things-Serverless content collection. New articles from community members and cloud advocates are published every week from Monday to Thursday through September. &lt;/p&gt;

&lt;p&gt;Find out more about how &lt;strong&gt;Microsoft Azure&lt;/strong&gt; enables your &lt;strong&gt;Serverless functions&lt;/strong&gt; at&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=servsept20-devto-cxaall"&gt;https://docs.microsoft.com/azure/azure-functions/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Query
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;query {
    hello
}

query {
    name: {
        firstName
        lastName
    }
}

query {
    connect {
        professional {
            email
            website
            linkedin
            github
        }
        social {
            twitter
            instagram
        }
    }
}

query {
    skills {
        language
        database
        cloudService
        frameworks
        vcs
        api
        industryKnowledge
    }
}

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Important Links:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Medium:&lt;/strong&gt; &lt;a href="https://medium.com/@ramanaditya/serverless-with-graphql-c0bf59078303"&gt;https://medium.com/@ramanaditya/serverless-with-graphql-c0bf59078303&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Azure DevOps:&lt;/strong&gt; &lt;a href="https://bellatrixdata@dev.azure.com/bellatrixdata/serverless-graphql/_git/serverless-graphql"&gt;https://bellatrixdata@dev.azure.com/bellatrixdata/serverless-graphql/_git/serverless-graphql&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ramanaditya/serverless-graphql.git"&gt;https://github.com/ramanaditya/serverless-graphql.git&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GraphQL API URL:&lt;/strong&gt; &lt;a href="https://ramanaditya-graphql.azurewebsites.net/graphql?code=mWybiYT9VGKSkNsZvuzMPajaNiMYvbEBhc6LErNr8hnXdeunrqOR7w=="&gt;https://ramanaditya-graphql.azurewebsites.net/graphql?code=mWybiYT9VGKSkNsZvuzMPajaNiMYvbEBhc6LErNr8hnXdeunrqOR7w==&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FvPRkc4J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wy0zusqqtlnhkz2ujajr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FvPRkc4J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wy0zusqqtlnhkz2ujajr.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>graphql</category>
      <category>devops</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Reconfiguring your journey to Data Science</title>
      <dc:creator>Aditya Raman</dc:creator>
      <pubDate>Thu, 28 May 2020 07:52:04 +0000</pubDate>
      <link>https://dev.to/ramanaditya/reconfiguring-your-journey-to-data-science-1fl8</link>
      <guid>https://dev.to/ramanaditya/reconfiguring-your-journey-to-data-science-1fl8</guid>
      <description>&lt;p&gt;Nothing is better than writing what you have learnt, the journey was quite tough, but yes, &lt;code&gt;YOU can do this&lt;/code&gt;.&lt;br&gt;
I have written a blog on &lt;strong&gt;"Reconfiguring your journey to Data Science"&lt;/strong&gt; . The blog will guide you when to jump on this technology and when to prepare more before starting with Data Science. &lt;/p&gt;

&lt;p&gt;Do read this and let me know your feedback.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/bellatrixdata/reconfigure-your-journey-to-data-science-44092971082c" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afill%3A88%3A88%2F1%2APtyQN1ZTNuqnzcxz7qD4lA.jpeg" alt="Aditya Raman"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/bellatrixdata/reconfigure-your-journey-to-data-science-44092971082c" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Reconfigure your journey to Data Science | by Aditya Raman | bellatrixdata | Medium&lt;/h2&gt;
      &lt;h3&gt;Aditya Raman ・ &lt;time&gt;May 30, 2020&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&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%2Fmedium-f709f79cf29704f9f4c2a83f950b2964e95007a3e311b77f686915c71574fef2.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;I will be quite happy if my work helps you in any way. Let me know about this too.&lt;/p&gt;

&lt;p&gt;If you want me to write on any special segment, comment below, I will look into it.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Hacktoberfest</title>
      <dc:creator>Aditya Raman</dc:creator>
      <pubDate>Mon, 30 Sep 2019 22:48:18 +0000</pubDate>
      <link>https://dev.to/ramanaditya/hacktoberfest-56jb</link>
      <guid>https://dev.to/ramanaditya/hacktoberfest-56jb</guid>
      <description>&lt;h1&gt;
  
  
  hacktoberfest
&lt;/h1&gt;

&lt;p&gt;This is the time when everyone come forward to contribute towards open source.&lt;/p&gt;

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