<?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: Miracle Anyanwu</title>
    <description>The latest articles on DEV Community by Miracle Anyanwu (@polymathwhiz).</description>
    <link>https://dev.to/polymathwhiz</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%2F142841%2F0874fd7b-7fa2-439f-9741-0c4130777933.jpeg</url>
      <title>DEV Community: Miracle Anyanwu</title>
      <link>https://dev.to/polymathwhiz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/polymathwhiz"/>
    <language>en</language>
    <item>
      <title>Overriding the leading property on Appbar in Flutter </title>
      <dc:creator>Miracle Anyanwu</dc:creator>
      <pubDate>Thu, 20 Jun 2019 16:50:09 +0000</pubDate>
      <link>https://dev.to/polymathwhiz/overriding-the-leading-property-on-appbar-in-flutter-2fg2</link>
      <guid>https://dev.to/polymathwhiz/overriding-the-leading-property-on-appbar-in-flutter-2fg2</guid>
      <description>&lt;p&gt;To override or remove the left leading property in Flutter, simply pass a Container() widget as the leading value.&lt;/p&gt;

&lt;h1&gt;
  
  
  Example
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BKqWeDRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cxd0m5zg9nn095f23k9z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BKqWeDRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cxd0m5zg9nn095f23k9z.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
    </item>
    <item>
      <title>Building a file sharing app with Node.js, Vue.js, Cloudinary, and MySQL - Part 3</title>
      <dc:creator>Miracle Anyanwu</dc:creator>
      <pubDate>Thu, 28 Mar 2019 01:31:34 +0000</pubDate>
      <link>https://dev.to/polymathwhiz/building-a-file-sharing-app-with-node-js-vue-js-cloudinary-and-mysql-part-3-1jhk</link>
      <guid>https://dev.to/polymathwhiz/building-a-file-sharing-app-with-node-js-vue-js-cloudinary-and-mysql-part-3-1jhk</guid>
      <description>&lt;p&gt;In this part, we will create our database and write some of the API that will power our application. Now, let's get started!&lt;/p&gt;

&lt;h1&gt;
  
  
  Requirements
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;To follow along with this series, you need the following parts: &lt;a href="https://dev.to/polymathwhiz/building-a-file-sharing-app-with-nodejs-vuejs-cloudinary-and-mysql-part-1-19l0"&gt;Part 1&lt;/a&gt;, &lt;a href="https://dev.to/polymathwhiz/building-a-file-sharing-app-with-nodejs-vuejs-cloudinary-and-mysql---part-2-32nl"&gt;Part 2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You will also need to create an account on &lt;a href="https://cloudinary.com" rel="noopener noreferrer"&gt;Cloudinary&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Building our app
&lt;/h1&gt;

&lt;p&gt;In our &lt;code&gt;connection.js&lt;/code&gt; file, populate it with the following code:&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F963bnaw40aajcihj1bem.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F963bnaw40aajcihj1bem.png" alt="connection.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The code above handles our database connection parameters. &lt;/p&gt;

&lt;p&gt;Next, we create our application entry file &lt;code&gt;index.js&lt;/code&gt; and our environment variable file &lt;code&gt;.env&lt;/code&gt; in our application project root directory. We then populate our &lt;code&gt;index.js&lt;/code&gt; with the following code:&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8bszpkok2cang82wuh9o.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8bszpkok2cang82wuh9o.png" alt="db connection params"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our entry &lt;code&gt;index.js&lt;/code&gt; file, we imported the &lt;code&gt;express&lt;/code&gt;, &lt;code&gt;cors&lt;/code&gt;, &lt;code&gt;dotenv&lt;/code&gt;, and the &lt;code&gt;cloudinary&lt;/code&gt; packages. We also defined our cloudinary configuration parameters (which we will insert later in our &lt;code&gt;.env&lt;/code&gt; variable file). Also, we defined our &lt;code&gt;404&lt;/code&gt; and &lt;code&gt;500&lt;/code&gt; HTTP response fallback routes, and then, we started our local server on port &lt;code&gt;3000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In our &lt;code&gt;.env&lt;/code&gt; file, populate the following with your database configuration information and your cloudinary secrete that can be found on your cloudinary dashboard.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk09u3tw1vqs7sfiyaadf.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk09u3tw1vqs7sfiyaadf.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Replace all the value positions with your correct database and cloudinary configuration information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating our database
&lt;/h2&gt;

&lt;p&gt;Our MySQL database schema will look like this. If you do not have a suitable MySQL database workbench, you can download &lt;a href="https://www.mamp.info/en/" rel="noopener noreferrer"&gt;MAMP&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9bmo48xafhtm2wbz52h2.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9bmo48xafhtm2wbz52h2.png" alt="database structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;In this part of the series, we have created our database, populated our &lt;code&gt;index.js&lt;/code&gt; and added our database and cloudinary configuration information. &lt;/p&gt;

&lt;p&gt;In the next part, we will be implementing the core API that will power our application.&lt;/p&gt;

&lt;p&gt;The source code is also available on &lt;a href="https://github.com/PolymathWhiz/shareable-api" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See you in the next part!&lt;/p&gt;

</description>
      <category>node</category>
      <category>vue</category>
      <category>mysql</category>
      <category>cloudinary</category>
    </item>
    <item>
      <title>Hi, I'm Miracle Anyanwu (PolymathWhiz)</title>
      <dc:creator>Miracle Anyanwu</dc:creator>
      <pubDate>Wed, 20 Mar 2019 22:37:13 +0000</pubDate>
      <link>https://dev.to/polymathwhiz/hi-im-miracle-anyanwu-polymathwhiz-1igf</link>
      <guid>https://dev.to/polymathwhiz/hi-im-miracle-anyanwu-polymathwhiz-1igf</guid>
      <description>&lt;p&gt;You can find me on Twitter and GitHub, Instagram and the web as &lt;a class="mentioned-user" href="https://dev.to/polymathwhiz"&gt;@polymathwhiz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love JavaScript but I've played with other exciting languages.&lt;/p&gt;

&lt;p&gt;I'm so happy to meet you all!&lt;/p&gt;

</description>
      <category>introduction</category>
    </item>
    <item>
      <title>Building a file sharing app with Node.js, Vue.js, Cloudinary, and MySQL - Part 2</title>
      <dc:creator>Miracle Anyanwu</dc:creator>
      <pubDate>Wed, 20 Mar 2019 21:29:58 +0000</pubDate>
      <link>https://dev.to/polymathwhiz/building-a-file-sharing-app-with-nodejs-vuejs-cloudinary-and-mysql---part-2-32nl</link>
      <guid>https://dev.to/polymathwhiz/building-a-file-sharing-app-with-nodejs-vuejs-cloudinary-and-mysql---part-2-32nl</guid>
      <description>&lt;p&gt;In this tutorial, we will be creating an application that lets an individual upload an image. After uploading, the system generates a unique downloadable link that automatically disappears after 3 hours. &lt;/p&gt;

&lt;h1&gt;
  
  
  Getting Started
&lt;/h1&gt;

&lt;p&gt;We will set up our Node.js API using &lt;a href="https://www.npmjs.com" rel="noopener noreferrer"&gt;NPM&lt;/a&gt;, and then install some packages that will enable us to complete some tasks without having to rebuild the wheels.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Structure
&lt;/h2&gt;

&lt;p&gt;Let's setup our Node app &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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkmfe1l0qf8dawgu0nruo.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkmfe1l0qf8dawgu0nruo.png" title="Generating our node app" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Folder
&lt;/h2&gt;

&lt;p&gt;This is how our application folder will be like&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvt8d5osms0qtrs1q2ded.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvt8d5osms0qtrs1q2ded.png" title="Current folder structure" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Packages
&lt;/h2&gt;

&lt;p&gt;You should have created the project folders at this point to house all the source code. This app depends on a couple of packages and we will use npm to install them. Navigate to the project directory you just created and you should have seen that the &lt;code&gt;npm init&lt;/code&gt; command automagically created a package.json file with the content 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwupkchdlf4pp442el0hm.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwupkchdlf4pp442el0hm.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing addition dependencies
&lt;/h2&gt;

&lt;p&gt;We need to install the following dependencies to make our work easy to implement&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;dotenv&lt;/code&gt; - Loads environment variables from .env for nodejs projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;express&lt;/code&gt; - Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;cloudinary&lt;/code&gt; - Cloudinary is a cloud service that offers a solution to a web application's entire image management pipeline. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;cors&lt;/code&gt; - CORS is a node.js package for providing a Connect/Express middleware that can be used to enable CORS with various options.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;multer&lt;/code&gt; - Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploading files. It is written on top of busboy for maximum efficiency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;mysql2&lt;/code&gt; - fast node-mysql compatible mysql driver for node.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;nodemon&lt;/code&gt; - Monitor for any changes in your node.js application and automatically restart the server - perfect for development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;request&lt;/code&gt; - Simplified HTTP request client.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now let's run the &lt;code&gt;npm install&lt;/code&gt; command or &lt;code&gt;npm i&lt;/code&gt; for short&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0d5yml47b3md0rv1wq7n.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0d5yml47b3md0rv1wq7n.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, we went through generating our node app and downloading the necessary dependencies we need in our app. In the upcoming series, we will be putting the downloaded dependencies to good use and writing our custom functions. We will also be designing our database to handle our data.&lt;/p&gt;

&lt;p&gt;See you in the next article!&lt;/p&gt;

</description>
      <category>node</category>
      <category>vue</category>
      <category>cloudinary</category>
      <category>mysql</category>
    </item>
    <item>
      <title>Building a file sharing app with Node.js, Vue.js, Cloudinary, and MySQL: Part 1</title>
      <dc:creator>Miracle Anyanwu</dc:creator>
      <pubDate>Wed, 20 Mar 2019 00:18:08 +0000</pubDate>
      <link>https://dev.to/polymathwhiz/building-a-file-sharing-app-with-nodejs-vuejs-cloudinary-and-mysql-part-1-19l0</link>
      <guid>https://dev.to/polymathwhiz/building-a-file-sharing-app-with-nodejs-vuejs-cloudinary-and-mysql-part-1-19l0</guid>
      <description>&lt;p&gt;In this tutorial series, we will be creating a secure file sharing app with links that automatically expires using Node.js for the API, Vue.js for the frontend, Cloudinary to host our images and MySQL for storing the records.&lt;/p&gt;

&lt;p&gt;In the upcoming series, we will be going from an idea to a fully functional secure file sharing application.&lt;/p&gt;

</description>
      <category>node</category>
      <category>vue</category>
      <category>cloudinary</category>
      <category>mysql</category>
    </item>
  </channel>
</rss>
