<?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: Mayank Patel</title>
    <description>The latest articles on DEV Community by Mayank Patel (@mayank091193).</description>
    <link>https://dev.to/mayank091193</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%2F353270%2Fa6a4a5e6-457e-4561-9a5c-03ff145ab387.png</url>
      <title>DEV Community: Mayank Patel</title>
      <link>https://dev.to/mayank091193</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mayank091193"/>
    <language>en</language>
    <item>
      <title>Seeking your opinion on our upcoming project</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Tue, 21 Jan 2025 12:01:31 +0000</pubDate>
      <link>https://dev.to/mayank091193/seeking-your-opinion-on-our-upcoming-project-15d0</link>
      <guid>https://dev.to/mayank091193/seeking-your-opinion-on-our-upcoming-project-15d0</guid>
      <description>&lt;p&gt;We're building a UI component library using the Quasar Framework and would love your feedback before moving forward with development. It’ll take just 30 seconds to answer 3 quick questions. Your input would mean a lot!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://r.kiteform.com/r/LYigHfQ" rel="noopener noreferrer"&gt;https://r.kiteform.com/r/LYigHfQ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions, you can reach out to me at &lt;a href="mailto:mayank091193@gmail.com"&gt;mayank091193@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ui</category>
      <category>vue</category>
      <category>quasar</category>
      <category>css</category>
    </item>
    <item>
      <title>Quasar Prime Admin Template (Quasar 2/Vue 3 - Typescript &amp; Javascript both versions)</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Wed, 07 Feb 2024 06:36:33 +0000</pubDate>
      <link>https://dev.to/mayank091193/quasar-prime-admin-template-quasar-2vue-3-typescript-javascript-both-versions-9kp</link>
      <guid>https://dev.to/mayank091193/quasar-prime-admin-template-quasar-2vue-3-typescript-javascript-both-versions-9kp</guid>
      <description>&lt;p&gt;&lt;strong&gt;9 Happy Customers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Launched Quasar Prime Admin Template — Your Ultimate Solution for a Powerful and Elegant Dashboard!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developer-Friendly and Highly Customizable&lt;/li&gt;
&lt;li&gt;Premium Quality Applications Made Easy&lt;/li&gt;
&lt;li&gt;Ready-to-Use Template&lt;/li&gt;
&lt;li&gt;Global Dark mode&lt;/li&gt;
&lt;li&gt;Free Lifetime Updates&lt;/li&gt;
&lt;li&gt;One-time payment and get full access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Live preview — &lt;a href="https://quasar-prime-admin-template.netlify.app/analytics"&gt;https://quasar-prime-admin-template.netlify.app/analytics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can either email me at &lt;a href="mailto:mayank091193@gmail.com"&gt;mayank091193@gmail.com&lt;/a&gt; to purchase directly OR&lt;/p&gt;

&lt;p&gt;Buy on Gumroad at &lt;a href="https://techforest9.gumroad.com/l/QuasarPrimeAdminTemplate"&gt;https://techforest9.gumroad.com/l/QuasarPrimeAdminTemplate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiivllqigk6hnu2whkkxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiivllqigk6hnu2whkkxx.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwyj060olg7d5e4cn4rwi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwyj060olg7d5e4cn4rwi.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foq0cq7zhcmqc3kwsznip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foq0cq7zhcmqc3kwsznip.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xy8vzhqdqs046qgnhfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xy8vzhqdqs046qgnhfr.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g7q1nw0vokgb9vs1ikw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g7q1nw0vokgb9vs1ikw.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>quasar</category>
      <category>vue</category>
      <category>crm</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>Writing, packaging, and deploying AWS Lambda function written in Python</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Fri, 10 Feb 2023 07:09:13 +0000</pubDate>
      <link>https://dev.to/mayank091193/writing-packaging-and-deploying-aws-lambda-function-written-in-python-44f4</link>
      <guid>https://dev.to/mayank091193/writing-packaging-and-deploying-aws-lambda-function-written-in-python-44f4</guid>
      <description>&lt;p&gt;&lt;a href="https://twitter.com/mayank91193" rel="noopener noreferrer"&gt;Follow me on Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/i-am-mayank-patel/" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is AWS Lambda
&lt;/h2&gt;

&lt;p&gt;AWS Lambda is a serverless computing service provided by AWS. It is a service that runs your code in response to an event and automatically manages the resources required for running your code. You don't need to worry about any underlying resources which are required.&lt;/p&gt;

&lt;p&gt;One example of such an event is a file uploaded to the S3 bucket. You can trigger your lambda function when the file is uploaded to your S3 bucket. You can think of a data processing job where files are being uploaded to your bucket and you want to start processing as soon as files arrive in the bucket. This will help you achieve real-time data processing use cases.&lt;/p&gt;

&lt;p&gt;Now that you know what the AWS lambda function is, let's create our first Lambda function.&lt;/p&gt;

&lt;p&gt;Create the file named app.py and include the following code in it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This is a handler
def handler_name(event, context):
    # Your logic
    return True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You must be wondering what is handler_name function. Basically, the handler function is a method in your code that processes events. When you invoke your lambda function, lambda runs your handler method. For example, if you have configured an event for triggering the lambda function on file upload in an S3 bucket, upon successful upload of the file in a bucket, Lambda will run your method named handler_name .&lt;/p&gt;

&lt;p&gt;Now that we know what the handler is, we need to know how we define the handler's name. It depends on 2 things.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The filename in which your handler method is written&lt;/li&gt;
&lt;li&gt;Your handler method name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, the filename is app.py and the method name is lambda_handler , your lambda handler name will be app.lambda_handler .Basically filename.handler_method_name&lt;/p&gt;

&lt;p&gt;When your Lambda function is invoked, lambda passes 2 arguments to your handler function. event and context (Lambda context)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;event&lt;/strong&gt;: The first argument is event which is the JSON document that contains data for your Lambda function to process&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;context&lt;/strong&gt;: The context object provides methods and properties that provide information about the invocation, the function, and the runtime environment. For example, it contains a unique ID for each lambda invocation.&lt;/p&gt;

&lt;p&gt;Let's assume &lt;code&gt;event&lt;/code&gt; data is &lt;code&gt;{first_name: "Mayank", last_name: "Patel"}&lt;/code&gt; . Now update your lambda_handler with the following code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def lambda_handler(event, context):
    message = 'Hello {} {}, this is from Lambda Function!'.format(event['first_name'], event['last_name'])  
    return { 
        'message' : message
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we need to build the deployment package.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prepare a deployment package with no dependencies
&lt;/h2&gt;

&lt;p&gt;Open your terminal and run the following commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mkdir my_function&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd my_function&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy your &lt;code&gt;app.py&lt;/code&gt; file in this folder&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;zip lambda_deployment_package.zip app.py&lt;/code&gt; This will generate your deployment package named lambda_deployment_package.zip in your project root directory&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prepare a deployment package with dependencies
&lt;/h2&gt;

&lt;p&gt;Let's update the handler method with the following content which has a dependency on python requests library&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests
def lambda_handler(event, context):   
    response = requests.get("https://www.example.com/")
    print(response.text)
    return response.text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, open your terminal and run the following commands.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mkdir my_function&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd my_function&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Install requests library in the &lt;code&gt;venv&lt;/code&gt; folder using the following command&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pip install --target ./venv requests&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Now create the deployment package with installed library in venv&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd venv&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zip -r ../lambda_deployment_package.zip .&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The above commands will generate your deployment package named lambda_deployment_package.zip in your project root directory&lt;/li&gt;
&lt;li&gt;Now add the &lt;code&gt;app.py&lt;/code&gt; file to the root of your zip file using below command&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd ..&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zip lambda_deployment_package.zip app.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After following the above steps, now you have your lambda deployment package ready locally. Now, it's time to deploy this package.&lt;/p&gt;

&lt;p&gt;Follow the below steps to deploy your local lambda package.&lt;/p&gt;

&lt;p&gt;There are 2 ways you can deploy your lambda function. Using AWS CLI or from the console.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy using AWS CLI
&lt;/h2&gt;

&lt;p&gt;Here, I assume you have configured AWS CLI.&lt;/p&gt;

&lt;p&gt;Please create the execution policy. It gives your lambda function access to AWS resources.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws iam create-role --role-name lambda-ex --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, you need to add permission to your role&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, run the below command to deploy your package.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws lambda create-function --function-name my-function --zip-file fileb://lambda_deployment_package.zip --handler app.lambda_handler --runtime python3.9 --role arn:aws:iam::123456789012:role/lambda-ex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, replace &lt;strong&gt;123456789012&lt;/strong&gt; with your AWS Account ID. You can get it by logging into the AWS console and clicking on your name in the top-right corner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy using AWS Console
&lt;/h2&gt;

&lt;p&gt;Please follow the below steps to deploy your lambda function&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login to your AWS console and search/open the AWS Lambda service&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Create function&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Give input to Function name and select appropriate runtime. We will choose &lt;code&gt;python3.9&lt;/code&gt; and hit &lt;code&gt;Create function&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Now, select your newly created function if not selected&lt;/li&gt;
&lt;li&gt;Under the &lt;strong&gt;code&lt;/strong&gt; tab, click &lt;strong&gt;Upload from&lt;/strong&gt; option. There are 2 ways to upload. Either you can upload the lambda package zip file from the local disk or you can upload your zip file to S3 and give S3 location. We will upload it from the local disk. Upload and hit &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Now, under the &lt;strong&gt;Runtime settings&lt;/strong&gt; section, hit &lt;strong&gt;Edit&lt;/strong&gt; and give your Handler name. In our case, it is &lt;code&gt;app.lambda_handler&lt;/code&gt; and hit &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, you can test your lambda function. However, there are some key settings that you may want to set for your function.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Memory &amp;amp; Timeout&lt;/strong&gt;: Under the &lt;strong&gt;Configuration&lt;/strong&gt; tab -&amp;gt; General configuration, hit Edit update &lt;strong&gt;Memory&lt;/strong&gt; and &lt;strong&gt;Timeout&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concurrency&lt;/strong&gt;: You can set concurrency for your lambda function under Concurrency sub-tab&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Test the Lambda function
&lt;/h2&gt;

&lt;p&gt;To test your newly deployed serverless lambda function, head to the Test sub-tab.&lt;/p&gt;

&lt;p&gt;You can either Save your Test event by giving the name and providing input to &lt;strong&gt;Event JSON&lt;/strong&gt; if applicable and hit &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you don't want to Save and just want to Test, hit Test after giving input to &lt;strong&gt;Event JSON&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So far, I have covered basic lambda function package preparation, deployment, and setting key configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Realtime data processing: For example, if you want to process the data that you are receiving in the form of files, you can choose to upload files in the S3 bucket and trigger your lambda function as soon as the file arrives in the S3 bucket&lt;/li&gt;
&lt;li&gt;If you are developing the website and you want to host the back-end service on AWS Lambda function&lt;/li&gt;
&lt;li&gt;If you want to perform some sort of data analytics on top of the data you have in your warehouse&lt;/li&gt;
&lt;li&gt;Log analysis&lt;/li&gt;
&lt;li&gt;Document conversion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits of Lambda
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No servers to manage&lt;/li&gt;
&lt;li&gt;Continuous scaling&lt;/li&gt;
&lt;li&gt;Increases innovation&lt;/li&gt;
&lt;li&gt;Pay-for-use billing model&lt;/li&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So far I have covered the basics of AWS lambda which include writing Lambda handler method, preparing lambda package with and without dependencies, and deploying lambda function using AWS CLI and from AWS Console.&lt;/p&gt;

&lt;p&gt;There is more to it like configuring VPC, Retry behavior, Limitation of lambda package size, Lambda layering, etc.&lt;/p&gt;

&lt;p&gt;I will be covering more details in my future blogs about AWS serverless service. If you want me to explain in detail or explain any of the use case, let me know in comment below.&lt;/p&gt;

&lt;p&gt;Thank you for taking the time in reading my blog!&lt;/p&gt;

</description>
      <category>vibecoding</category>
    </item>
    <item>
      <title>Deploy web application built using Quasar framework and Python Flask framework on AWS EC2 instance, using PM2 &amp; Nginx web server</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Thu, 09 Feb 2023 06:25:22 +0000</pubDate>
      <link>https://dev.to/mayank091193/deploy-web-application-built-using-quasar-framework-and-python-flask-framework-on-aws-ec2-instance-using-pm2-nginx-web-server-4l77</link>
      <guid>https://dev.to/mayank091193/deploy-web-application-built-using-quasar-framework-and-python-flask-framework-on-aws-ec2-instance-using-pm2-nginx-web-server-4l77</guid>
      <description>&lt;p&gt;&lt;a href="https://twitter.com/mayank91193" rel="noopener noreferrer"&gt;Follow me on Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/i-am-mayank-patel/" rel="noopener noreferrer"&gt;Follow me on LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Quasar Framework?&lt;/strong&gt;&lt;br&gt;
Quasar framework is a Vue.js-based framework for building websites with a single codebase and you can deploy it on the web as SPA, PWA, SSR, and to Android, iOS, and Desktop apps too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Python flask framework?&lt;/strong&gt;&lt;br&gt;
Flask framework is a micro framework that is written in Python. It is called a micro framework because it doesn't require any tools or libraries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is PM2?&lt;/strong&gt;&lt;br&gt;
pm2 is a process manager that makes the management of background processes easy. It's very easy to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Nginx?&lt;/strong&gt;&lt;br&gt;
Nginx is a web server and it can be even used as a reverse proxy, load balancer, mail proxy, or HTTP Cache.&lt;/p&gt;

&lt;p&gt;I assume you have an application built and running using the Quasar framework which is connected to Python flask framework API. Please set up the Database as per your application requirement and give the correct Database URI in the configuration.&lt;/p&gt;

&lt;p&gt;Few assumptions for the whole blog we are making:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repository name: &lt;strong&gt;demo-app&lt;/strong&gt; (Front-end content is in quasar-app folder and the back-end is stored at the root level with file &lt;strong&gt;app.py&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;Ubuntu server running on IP &lt;strong&gt;10.209.201.30&lt;/strong&gt;, Username: &lt;strong&gt;ubuntu&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;key to connect: &lt;strong&gt;private.pem&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, let's SSH into the server&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh -i private.pem ubuntu@10.209.201.30&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Clone your repository on the server and setup both front-end&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone &amp;lt;your_repo_url&amp;gt;&lt;br&gt;
cd quasar-app&lt;br&gt;
npm install&lt;br&gt;
Now, check if front-end is running fine or not by running quasar dev&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Setup back-end. Here I am assuming you have requirements stored in requirements.txt file.&lt;/p&gt;

&lt;p&gt;Install python3: &lt;code&gt;sudo apt install python3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Install pip3: &lt;code&gt;sudo apt install python3-pip&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Install virtualenv: &lt;code&gt;pip3 install virtualenv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup back-end&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;virtualenv venv&lt;br&gt;
source venv/bin/activate&lt;br&gt;
pip install -r requirements.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now check if your flask app is running fine by running the command python app.py&lt;/p&gt;

&lt;p&gt;So far both the front-end and back-end are working fine on the server.&lt;/p&gt;

&lt;p&gt;Let's install pm2 now.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install pm2 -g&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now run your back-end app in background using pm2&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pm2 start app.py --interpreter venv/bin/python3&lt;br&gt;
pm2 save&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It is important to run pm2 save so that so it will respawn after reboot&lt;/p&gt;

&lt;p&gt;Now, your back-end app is continuously running on the server in background on port 5000 (Assuming you have defined port 5000)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup front-end&lt;/strong&gt;&lt;br&gt;
To set up the front-end, first, you need to build your Quasar app.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;quasar build&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once you run the quasar build command, it will create the spa folder in the &lt;code&gt;dist&lt;/code&gt; directory. (path: &lt;code&gt;dist/spa&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;To make the front end available, you need to copy spa folder at &lt;code&gt;/var/www/html/&lt;/code&gt; path.&lt;/p&gt;

&lt;p&gt;I recommend you create the deployment script named &lt;code&gt;deploy-front-end.sh&lt;/code&gt; within your quasar-app folder with the following content.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo rm -rf /var/www/html/demo_app/&lt;br&gt;
sudo cp -r dist/spa /var/www/html/demo_app&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will copy static app (spa) at &lt;code&gt;/var/www/html&lt;/code&gt; location.&lt;/p&gt;

&lt;p&gt;Now, you can expose your front end to the outside world through the Nginx web server.&lt;/p&gt;

&lt;p&gt;Now, your front-end and back-end both are working on the server.&lt;/p&gt;

&lt;p&gt;The final step is to configure your full-stack application in Nginx.&lt;/p&gt;

&lt;p&gt;Navigate to &lt;code&gt;/etc/nginx/&lt;/code&gt; location. There you will see 2 folders named &lt;code&gt;sites-available&lt;/code&gt; and &lt;code&gt;sites-enabled&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sites-available&lt;/code&gt; contains configuration files of all the available websites you may have.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sites-enabled&lt;/code&gt; contains those websites which are currently live.&lt;/p&gt;

&lt;p&gt;Now go to sites-available folder and create the file named demo_app with the following content.&lt;/p&gt;

&lt;p&gt;`server {&lt;br&gt;
    root /var/www/html;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server_name _;
location /api/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5000;
}
location / {
    root /var/www/html/demo_app;
    try_files $uri $uri/ /index.html;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}`&lt;/p&gt;

&lt;p&gt;Here, &lt;code&gt;/api&lt;/code&gt; is where your back-end running. Since your python is running on port &lt;code&gt;5000&lt;/code&gt; , you can see I have given location &lt;code&gt;http://127.0.0.1:5000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Since we have copied the front-end to &lt;code&gt;/var/www/html/demo_app&lt;/code&gt; location, in Nginx &lt;code&gt;/&lt;/code&gt; location, I have given that path.&lt;/p&gt;

&lt;p&gt;Now, your website is available but not yet live. We need to link it to sites-enabled location to make it available on the internet.&lt;/p&gt;

&lt;p&gt;Navigate to &lt;code&gt;/etc/nginx/sites-enabled&lt;/code&gt; location and run the following command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo ln -s ../sites-available/demo_app&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, run the following commands to restart the Nginx web server so that it considers the latest changes made to it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo service nginx reload&lt;br&gt;
sudo service nginx restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, your website is live. If you haven't mapped the domain, you can access your website using the EC2 server's public IP or public URL.&lt;/p&gt;

&lt;p&gt;I hope this will help you deploy your full-stack applications which you have developed using the Quasar framework and Python-Flask framework on the AWS EC2 server.&lt;/p&gt;

&lt;p&gt;Do let me know of any doubts or issues you may have. Thank you for reading&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>Basics of AWS VPC: Understanding Subnets, Route Tables, Internet Gateways, and NAT Gateways</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Wed, 25 Jan 2023 12:12:09 +0000</pubDate>
      <link>https://dev.to/mayank091193/mastering-aws-vpc-understanding-subnets-route-tables-internet-gateways-and-nat-gateways-3gff</link>
      <guid>https://dev.to/mayank091193/mastering-aws-vpc-understanding-subnets-route-tables-internet-gateways-and-nat-gateways-3gff</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is AWS VPC?&lt;/strong&gt;&lt;br&gt;
Amazon Virtual Private Cloud (VPC) is a virtual network allocated to your AWS account. If you are wondering what a virtual network is, it allows communication between computers, servers, or other devices. VPC allows you to start AWS resources like EC2(Server) in your virtual network.&lt;/p&gt;

&lt;p&gt;VPC is basically an IP CIDR block that AWS allocates to your AWS account. White creating the AWS VPC, you just need to give inputs to the VPC name and IPv4 CIDR block for example 10.30.0.0/24. There are some advanced configuration options as well but you don't need to worry about them for now.&lt;/p&gt;

&lt;p&gt;For example, you have created VPC named dev-vpc with an IP range 10.0.0.0/24&lt;/p&gt;

&lt;p&gt;VPC Name: &lt;strong&gt;dev-vpc&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IPV4 Range: &lt;strong&gt;10.0.0.0/24&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, this IP range is allocated to your AWS account and nobody else can have the same IP range.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Subnet?&lt;/strong&gt;&lt;br&gt;
A subnet is a set of IP addresses in your VPC. A subnet must be in a single availability zone. Availability Zones are distinct locations within the AWS Region. For example, one availability zone is ap-south-1: Asia Pacific.&lt;/p&gt;

&lt;p&gt;To create a new Subnet, you need to first select the VPC from the VPC dropdown. Second, name your subnet, choose the availability zone and give IPV4 CIDR block. Please note that your IPV4 CIDR block must reside within the IP range of your selected VPC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create public subnet&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose VPC: &lt;strong&gt;dev-vpc&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Subnet name: &lt;strong&gt;public-subnet-1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Availability Zone: &lt;strong&gt;ap-south-1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;IPV4 CIDR Block: &lt;strong&gt;10.0.1.0/24&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create private subnet&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose VPC: &lt;strong&gt;dev-vpc&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Subnet name: &lt;strong&gt;private-subnet-1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Availability Zone: &lt;strong&gt;ap-south-1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;IPV4 CIDR Block: &lt;strong&gt;10.0.2.0/24&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you create the subnet, resources within this subnet are not able to connect to the internet or route outbound traffic yet. There are 2 types of subnects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public subnet&lt;/li&gt;
&lt;li&gt;Private subnet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Difference between the public subnet and private subnet&lt;br&gt;
If we talk in simple language, instances in the public subnet can send traffic to the outside world whereas instances in the private subnet can't.&lt;/p&gt;

&lt;p&gt;Now you must be wondering how we define/identify public and private subnets. To understand it better, let's come back to the subnet we created named public-subnet-1. I have named it "public" but it is not public yet.&lt;/p&gt;

&lt;p&gt;To understand between the public subnet and private subnet, let's understand the Route table, Internet gateway, and NAT gateway&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Route Table&lt;/strong&gt;: It is used to do routing decisions. It contains existing routes to CIDR blocks outside of the ranges in your VPC. For example, it controls routing to Internet gateways, NAT gateways&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Internet Gateway&lt;/strong&gt;: It is a component that allows communication between VPC and internet. If your VPC doesn't have an internet gateway, resources within your VPC can't be accessed from the internet. For example, a website deployed to one of your EC2 servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NAT Gateway&lt;/strong&gt;: A Network Address Translation (NAT) allows instances in your private subnet to connect to outside services like Databases but restricts external services to connecting to these instances.&lt;/p&gt;

&lt;p&gt;One key thing to note while creating NAT Gateway is that "You must create NAT gateway in a public subnet so that other resources within the same VPC can communicate internally"&lt;/p&gt;

&lt;p&gt;You just need to give a name to the route table and create. Once the route table is created, you can select that route table, and add routes to it. For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RTB-Public&lt;/strong&gt;: A route table with a target to Internet gateway is a public route table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RTB-Private&lt;/strong&gt;: A route table with a target to NAT gateway is a private route table.&lt;/p&gt;

&lt;p&gt;Now, let's come to the difference between public and private subnets.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A subnet which is connected to Public route table is Public subnet since the resources under that subnet can route outbound traffic to internet and outside services can also connect to these instances.&lt;/p&gt;

&lt;p&gt;A subnet which is connected to Private route table is Private subnet since the resources under that subnet can route outbound traffic to internet but outside services can't connect to these instances.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Create an Internet Gateway named "&lt;strong&gt;igw-dev&lt;/strong&gt;".&lt;/p&gt;

&lt;p&gt;Create the NAT Gateway named "nat-dev" under one of the public subnets.&lt;/p&gt;

&lt;p&gt;Choose route table RTB-Public, select Routes tab, and select Add Route. Under the Target, select the internet gateway named "&lt;strong&gt;igw-dev&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;Choose route table RTB-Private, select Routes tab, and select Add Route. Under the Target, select the NAT gateway named "&lt;strong&gt;nat-dev&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;Now, both public and private route tables are ready. We can assign subnets to these route tables.&lt;/p&gt;

&lt;p&gt;Select route table RTB-Public again. Select the "Subnet associations" tab and click "Edit subnet associations". There check "public-subnet-1" and click "Save associations"&lt;/p&gt;

&lt;p&gt;Select route table RTB-Private again. Select the "Subnet associations" tab and click "Edit subnet associations". There check "private-subnet-1" and click "Save associations"&lt;/p&gt;

&lt;p&gt;Now, you have successfully created VPC, Subnets (Public &amp;amp; Private), Internet gateway, NAT gateway, Route tables and associations between Route table to Subnets.&lt;/p&gt;

&lt;p&gt;Please post your comments regarding any doubts you may have! Thank you for taking the time to read my blog.&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>hackathon</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Quasar Admin CRM New Version [Premium] .. Quasar 2/Vue 3</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Wed, 19 Oct 2022 12:14:08 +0000</pubDate>
      <link>https://dev.to/mayank091193/quasar-admin-crm-new-version-premium-quasar-2vue-3-59m9</link>
      <guid>https://dev.to/mayank091193/quasar-admin-crm-new-version-premium-quasar-2vue-3-59m9</guid>
      <description>&lt;p&gt;I have re-designed my Admin CRM template and given it a totally new look. You can buy the new version for $79. If you are interested, please email me at &lt;a href="mailto:mayank091193@gmail.com"&gt;mayank091193@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live preview: &lt;a href="https://quasar-admin-crm-premium.netlify.app/" rel="noopener noreferrer"&gt;https://quasar-admin-crm-premium.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Few Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modern and responsive design&lt;/li&gt;
&lt;li&gt;CRM Dashboard&lt;/li&gt;
&lt;li&gt;Analytics Dashboard&lt;/li&gt;
&lt;li&gt;Charts&lt;/li&gt;
&lt;li&gt;Calendar&lt;/li&gt;
&lt;li&gt;Export Feature&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please provide your valuable feedback and I will try to work on it. I will be adding a few more screens to the premium version in the near future.&lt;/p&gt;

&lt;p&gt;Please find some screenshots of the new version below.&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%2Fprkrfzvec819hte09zad.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%2Fprkrfzvec819hte09zad.png" alt="Analytics"&gt;&lt;/a&gt;&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%2Fyn39zopjzs8posr8y2k9.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%2Fyn39zopjzs8posr8y2k9.png" alt="CRM"&gt;&lt;/a&gt;&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%2Fjr2tmiz7m75lmw9f7mmf.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%2Fjr2tmiz7m75lmw9f7mmf.png" alt="Customer List"&gt;&lt;/a&gt;&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%2Fkj2iux7c6r81zb69zntp.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%2Fkj2iux7c6r81zb69zntp.png" alt="Login"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
      <category>template</category>
      <category>quasarframework</category>
    </item>
    <item>
      <title>Open source templates using Quasar framework/Vue.js</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Wed, 14 Sep 2022 13:16:58 +0000</pubDate>
      <link>https://dev.to/mayank091193/open-source-templates-using-quasar-frameworkvuejs-4jmd</link>
      <guid>https://dev.to/mayank091193/open-source-templates-using-quasar-frameworkvuejs-4jmd</guid>
      <description>&lt;p&gt;If you are looking for open source Quasar templates, please do checkout my work on GitHub. It may help you speed up at least your front-end development.&lt;/p&gt;

&lt;p&gt;Please provide the valuable feedback as it helps me build better templates in the future.&lt;/p&gt;

&lt;p&gt;If my work helps you in any way, please do consider supporting my work.&lt;/p&gt;

&lt;p&gt;GitHub Sponsors: &lt;a href="https://github.com/sponsors/mayank091193"&gt;https://github.com/sponsors/mayank091193&lt;/a&gt;&lt;br&gt;
Buy me a coffee: &lt;a href="https://www.buymeacoffee.com/mayank091193"&gt;https://www.buymeacoffee.com/mayank091193&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are looking for the template built using latest version of Quasar framework/Vue.js, you can checkout my premium admin CRM template(Live preview) at the below link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://next-quasar-admin-crm.netlify.app/"&gt;https://next-quasar-admin-crm.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you,&lt;br&gt;
Mayank Patel&lt;br&gt;
&lt;a href="mailto:mayank091193@gmail.com"&gt;mayank091193@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vue</category>
      <category>opensource</category>
      <category>quasar</category>
    </item>
    <item>
      <title>Quasar admin CRM with Quasar 2!</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Mon, 03 Jan 2022 12:02:43 +0000</pubDate>
      <link>https://dev.to/mayank091193/quasar-admin-crm-with-quasar-2-5c78</link>
      <guid>https://dev.to/mayank091193/quasar-admin-crm-with-quasar-2-5c78</guid>
      <description>&lt;p&gt;I have migrated my Quasar Admin CRM template to Quasar 2! I am offering it at the cheap price of $49! If you want to purchase, please send me an email at &lt;a href="mailto:mayank091193@gmail.com"&gt;mayank091193@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live demo: &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://next-quasar-admin-crm.netlify.app/"&gt;https://next-quasar-admin-crm.netlify.app/&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Do let me know in case of any questions.&lt;/p&gt;

</description>
      <category>vue</category>
      <category>javascript</category>
      <category>css</category>
      <category>quasarframework</category>
    </item>
    <item>
      <title>Quasar App Extension QWidgets</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Mon, 01 Feb 2021 15:27:10 +0000</pubDate>
      <link>https://dev.to/mayank091193/quasar-app-extension-qwidgets-1bdj</link>
      <guid>https://dev.to/mayank091193/quasar-app-extension-qwidgets-1bdj</guid>
      <description>&lt;p&gt;I just released the new quasar extension QWidgets (NPM Package). It allows you to render cool beautiful widgets on your website.&lt;/p&gt;

&lt;p&gt;Widgets added in the first version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Countdown&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stopwatch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Weather&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NPM Package: &lt;a href="https://www.npmjs.com/package/quasar-app-extension-q-widgets" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/quasar-app-extension-q-widgets&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/mayank091193/quasar-widgets" rel="noopener noreferrer"&gt;https://github.com/mayank091193/quasar-widgets&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live Preview: &lt;a href="https://quasar-widgets.netlify.app/#/docs" rel="noopener noreferrer"&gt;https://quasar-widgets.netlify.app/#/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any feature request would be greatly appreciated. I will try my best to add the new widget.&lt;/p&gt;

&lt;p&gt;Few Screenshots:&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%2Fi%2F15ndqeq8haj7p6oqtkf4.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%2F15ndqeq8haj7p6oqtkf4.png" alt="Alt Text"&gt;&lt;/a&gt;&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%2Fi%2Fno03rdb78q291z92qigz.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%2Fno03rdb78q291z92qigz.png" alt="Alt Text"&gt;&lt;/a&gt;&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%2Fi%2Fkpuamax18lkptcgjrws2.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%2Fkpuamax18lkptcgjrws2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any feedback will be greatly appreciated!&lt;/p&gt;

&lt;p&gt;In case you want to support my open source work, do check out my GitHub profile:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/mayank091193" rel="noopener noreferrer"&gt;https://github.com/sponsors/mayank091193&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
      <category>quasarframework</category>
      <category>npm</category>
      <category>css</category>
    </item>
    <item>
      <title>Quasar Admin CRM - Global dark mode (All pages)</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Thu, 13 Aug 2020 05:41:12 +0000</pubDate>
      <link>https://dev.to/mayank091193/quasar-admin-crm-global-dark-mode-all-pages-3gff</link>
      <guid>https://dev.to/mayank091193/quasar-admin-crm-global-dark-mode-all-pages-3gff</guid>
      <description>&lt;p&gt;Quasar Admin CRM global dark mode is here! Integrated the dark mode on all pages.&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/mayank091193/quasar-admin-crm"&gt;https://github.com/mayank091193/quasar-admin-crm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live preview: &lt;a href="https://quasar-admin-crm-template.netlify.app/dashboard"&gt;https://quasar-admin-crm-template.netlify.app/dashboard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any feedback will be greatly appreciated.&lt;/p&gt;

&lt;p&gt;If it helps you, Sponsor me to support my open-source work💖 &lt;a href="https://github.com/sponsors/mayank091193"&gt;https://github.com/sponsors/mayank091193&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cIkigOcj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ovlefg99fj6n7l3wq5c7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cIkigOcj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ovlefg99fj6n7l3wq5c7.png" alt="Quasar Admin CRM - Dark mode"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vue</category>
      <category>css</category>
      <category>quasarframework</category>
    </item>
    <item>
      <title>QDraggableTree v0.0.4 has been released!</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Thu, 16 Jul 2020 10:36:52 +0000</pubDate>
      <link>https://dev.to/mayank091193/qdraggabletree-v0-0-4-has-been-released-a1m</link>
      <guid>https://dev.to/mayank091193/qdraggabletree-v0-0-4-has-been-released-a1m</guid>
      <description>&lt;p&gt;QDraggableTree v0.0.4 has been released!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added the ability to drag a node as a sub child of a node without children&lt;/li&gt;
&lt;li&gt;Ability to drop a node even if the sub-tree is closed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/mayank091193/quasar-draggable-tree"&gt;https://github.com/mayank091193/quasar-draggable-tree&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live preview: &lt;a href="https://quasar-draggable-tree.netlify.app/docs"&gt;https://quasar-draggable-tree.netlify.app/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NPM Package: &lt;a href="https://npmjs.com/package/quasar-app-extension-qdraggabletree"&gt;https://npmjs.com/package/quasar-app-extension-qdraggabletree&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please check out the release notes here. &lt;a href="https://github.com/mayank091193/quasar-draggable-tree/blob/master/app-extension/CHANGELOG.md"&gt;https://github.com/mayank091193/quasar-draggable-tree/blob/master/app-extension/CHANGELOG.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it helps you, Sponsor me to support my open-source work💖 &lt;a href="https://github.com/sponsors/mayank091193"&gt;https://github.com/sponsors/mayank091193&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any feedback will be greatly appreciated.&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;

</description>
      <category>vue</category>
      <category>javascript</category>
      <category>css</category>
      <category>quasarframework</category>
    </item>
    <item>
      <title>Quasar Admin CRM version 3 (Dark mode)</title>
      <dc:creator>Mayank Patel</dc:creator>
      <pubDate>Thu, 09 Jul 2020 10:05:04 +0000</pubDate>
      <link>https://dev.to/mayank091193/quasar-admin-crm-version-3-dark-mode-13b9</link>
      <guid>https://dev.to/mayank091193/quasar-admin-crm-version-3-dark-mode-13b9</guid>
      <description>&lt;p&gt;Quasar Admin CRM version 3 (Dark mode) is here! Any feedback will be greatly appreciated.&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/mayank091193/quasar-admin-crm" rel="noopener noreferrer"&gt;https://github.com/mayank091193/quasar-admin-crm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live preview: &lt;a href="https://quasar-admin-crm-template.netlify.app/dashboard_v3" rel="noopener noreferrer"&gt;https://quasar-admin-crm-template.netlify.app/dashboard_v3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it helps you, Sponsor me to support my open-source work💖 &lt;a href="https://github.com/sponsors/mayank091193" rel="noopener noreferrer"&gt;https://github.com/sponsors/mayank091193&lt;/a&gt;&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%2Fi%2Fj75h2e4myeo77u2qdvh5.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%2Fj75h2e4myeo77u2qdvh5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you will like it.&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>html</category>
      <category>vue</category>
      <category>quasarframework</category>
    </item>
  </channel>
</rss>
