<?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>Forem: Abhinav Chawla</title>
    <description>The latest articles on Forem by Abhinav Chawla (@abhinavchawla13).</description>
    <link>https://forem.com/abhinavchawla13</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%2F366907%2Fb70fb32b-1e9e-4dd9-b746-381239a82449.jpeg</url>
      <title>Forem: Abhinav Chawla</title>
      <link>https://forem.com/abhinavchawla13</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/abhinavchawla13"/>
    <language>en</language>
    <item>
      <title>Personal Portfolio: Final Submission</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Fri, 08 Jan 2021 15:48:58 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/personal-portfolio-final-submission-bib</link>
      <guid>https://forem.com/abhinavchawla13/personal-portfolio-final-submission-bib</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;Howdy, I hereby submit my personal portfolio as part of the DO Hackathon. I have tried my best to add a level of uniqueness and excitement to the project. As a part of the series, I have shared my &lt;a href="https://dev.to/abhinavchawla13/personal-portfolio-inspiration-2fnf"&gt;inspiration&lt;/a&gt;, thought process behind the &lt;a href="https://dev.to/abhinavchawla13/personal-portfolio-design-e18"&gt;design&lt;/a&gt; and the grind to &lt;a href="https://dev.to/abhinavchawla13/personal-portfolio-dev-23p8"&gt;develop&lt;/a&gt; it up.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;I didn't want to build yet another website; rather an experience.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Hope you enjoy it!&lt;/p&gt;

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

&lt;h3&gt;
  
  
  App Link: &lt;a href="https://abhinavchawla.com" rel="noopener noreferrer"&gt;https://abhinavchawla.com&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Deployed on DigitalOcean (&lt;a href="//abhinavchawla-bz8lh.ondigitalocean.app"&gt;direct link&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots (and videos)
&lt;/h3&gt;

&lt;p&gt;Desktop (Larger screens)&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%2Fi.imgur.com%2FuvXWuwz.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%2Fi.imgur.com%2FuvXWuwz.png" alt="desktop"&gt;&lt;/a&gt;Screenshot: Desktop&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/3EocI8lldiI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
Video Demo: Desktop



&lt;p&gt;Mobile (Smaller screens) [Stripped down]&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%2Fi.imgur.com%2FufskSxH.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%2Fi.imgur.com%2FufskSxH.png" alt="phone"&gt;&lt;/a&gt;Screenshot: Mobile&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/A9pLjX2ZMck"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
Video Demo: Mobile



&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;The portfolio is represented by a floating island with the landscape of a town marked down by some of the significant events of my life. I tried to gamify the website (a bit) and I hope the 🚗 shows you around my town! Feel free to click around on different items on the map to learn more about the corresponding events. &lt;/p&gt;

&lt;p&gt;On a side note, since the website is asset and animation heavy, I built out a stripped out version for mobile screens and adjusted it to work only in landscape mode because of the layout. I have tested on only a couple of phones that I had access to, but can't promise the responsiveness throughout the spectrum of mobile sizes these days. Something that I'll be looking next few days after the hackathon ends. &lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abhinavchawla13" rel="noopener noreferrer"&gt;
        abhinavchawla13
      &lt;/a&gt; / &lt;a href="https://github.com/abhinavchawla13/abhinavchawla.com" rel="noopener noreferrer"&gt;
        abhinavchawla.com
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      This project is my personal portfolio!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;My Personal Portfolio: &lt;a href="https://abhinavchawla.com" rel="nofollow noopener noreferrer"&gt;abhinavchawla.com&lt;/a&gt;
&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8269ab8bbf8c2dd2ca1901972f086dfe908c224b5a3b13226d3a09ef49b79f2a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7675656a732532302d2532333335343935652e7376673f267374796c653d666f722d7468652d6261646765266c6f676f3d7675652e6a73266c6f676f436f6c6f723d253233344643303844"&gt;&lt;img src="https://camo.githubusercontent.com/8269ab8bbf8c2dd2ca1901972f086dfe908c224b5a3b13226d3a09ef49b79f2a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7675656a732532302d2532333335343935652e7376673f267374796c653d666f722d7468652d6261646765266c6f676f3d7675652e6a73266c6f676f436f6c6f723d253233344643303844"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c328f56b7ba1efdb1b9e67218de97101ee3d5570b7acaa3b7e71daa930653ef0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4469676974616c4f6365616e2d2532333031363766662e7376673f267374796c653d666f722d7468652d6261646765266c6f676f3d6469676974616c4f6365616e266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/c328f56b7ba1efdb1b9e67218de97101ee3d5570b7acaa3b7e71daa930653ef0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4469676974616c4f6365616e2d2532333031363766662e7376673f267374796c653d666f722d7468652d6261646765266c6f676f3d6469676974616c4f6365616e266c6f676f436f6c6f723d7768697465"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/edd2a764d26bb0364dd5c41e112e60227bab418ba994e0165dce4df977148df0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f61646f626525323070686f746f73686f702532302d2532333331413846462e7376673f267374796c653d666f722d7468652d6261646765266c6f676f3d61646f626525323070686f746f73686f70266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/edd2a764d26bb0364dd5c41e112e60227bab418ba994e0165dce4df977148df0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f61646f626525323070686f746f73686f702532302d2532333331413846462e7376673f267374796c653d666f722d7468652d6261646765266c6f676f3d61646f626525323070686f746f73686f70266c6f676f436f6c6f723d7768697465"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Deployment&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Deployed off the master branch at &lt;a href="https://abhinavchawla.com" rel="nofollow noopener noreferrer"&gt;abhinavchawla.com&lt;/a&gt; via DigitalOcean (&lt;a href="https://github.com/abhinavchawla13/abhinavchawla.comabhinavchawla-bz8lh.ondigitalocean.app" rel="noopener noreferrer"&gt;direct DO link&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can easily spin up a copy of the project using the deploy button below 🚀&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cloud.digitalocean.com/apps/new?repo=https://github.com/abhinavchawla13/abhinavchawla.com/tree/master" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/83e0c8419fa2b020b40d1e048d6ebec7df2d5c3b83fd1223cb51c51d015a058e/68747470733a2f2f6d702d617373657473312e73666f322e6469676974616c6f6365616e7370616365732e636f6d2f6465706c6f792d746f2d646f2f646f2d62746e2d626c75652e737667" alt="Deploy to DO"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Sneak peek&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Desktop (Primary channel)&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2fe464cb30d766c306bec8c41515f218015c6b5c99c57d1e2c1952e0326ecf7b/68747470733a2f2f692e696d6775722e636f6d2f7576585775777a2e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/2fe464cb30d766c306bec8c41515f218015c6b5c99c57d1e2c1952e0326ecf7b/68747470733a2f2f692e696d6775722e636f6d2f7576585775777a2e706e67" alt="screenshot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Mobile (Stripped down)&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/a8a4a9df51ee3521a93bbec6bfc666a3a9fd999b5f8763093c281c808a61baca/68747470733a2f2f692e696d6775722e636f6d2f586a55596b35442e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/a8a4a9df51ee3521a93bbec6bfc666a3a9fd999b5f8763093c281c808a61baca/68747470733a2f2f692e696d6775722e636f6d2f586a55596b35442e706e67" width="600"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2089aa404724201f8e6aa46bf8eaad33e2ac4f4d42657d3de6d5221d8bd2ded8/68747470733a2f2f692e696d6775722e636f6d2f446731753248772e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/2089aa404724201f8e6aa46bf8eaad33e2ac4f4d42657d3de6d5221d8bd2ded8/68747470733a2f2f692e696d6775722e636f6d2f446731753248772e706e67" width="214"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Project setup&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Install dependencies&lt;/h4&gt;

&lt;/div&gt;
&lt;p&gt;Make sure you have Node.js (v12+, npm v6+) installed&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Compiles and hot-reloads for development&lt;/h4&gt;

&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;npm run serve
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Compiles and minifies for production&lt;/h4&gt;

&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Lints and fixes files&lt;/h4&gt;

&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;npm run lint
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;



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


&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/abhinavchawla13/abhinavchawla.com/blob/master/LICENSE" rel="noopener noreferrer"&gt;MIT License&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;My &lt;a href="https://dev.to/abhinavchawla13/personal-portfolio-inspiration-2fnf"&gt;first post of the series&lt;/a&gt; talked about what inspired me to for this design, so I'll refrain from repeating it all again. &lt;br&gt;
&lt;em&gt;TL;DR: My childhood favourite &lt;a href="https://www.zynga.com/games/farmville/" rel="noopener noreferrer"&gt;FarmVille&lt;/a&gt; inspired me!&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;As I mentioned above, I was pretty fixated that whenever I'll build my digital portfolio, I would make it a fun experience. And so I started this journey ideating, designing, and developing the project. &lt;/p&gt;
&lt;h3&gt;
  
  
  How I built it
&lt;/h3&gt;

&lt;p&gt;I had mostly used &lt;a href="https://heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt; and &lt;a href="https://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase&lt;/a&gt; for different applications, and always wanted to try out DigitalOcean, but never got a chance to do so. Thanks to the credits, I set up my account and added a basic &lt;code&gt;.do/deploy.template.yaml&lt;/code&gt; file and the &lt;strong&gt;"Deploy to DO"&lt;/strong&gt; button in my Vue project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;abhinavchawla&lt;/span&gt;
  &lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;build_command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm build&lt;/span&gt;
    &lt;span class="na"&gt;environment_slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;node-js&lt;/span&gt;
    &lt;span class="na"&gt;git&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;branch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;master&lt;/span&gt;
      &lt;span class="na"&gt;repo_clone_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://github.com/abhinavchawla13/abhinavchawla.com.git&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;abhinavchawla&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It took some trial and error to get it right, but thanks to the documentation (and old friend Google), I was able to get it right and deploy the app fairly quickly. &lt;br&gt;
Lastly, I have had the domain &lt;a href="https://abhinavchawla.com" rel="noopener noreferrer"&gt;abhinavchawla.com&lt;/a&gt; for a few years (bought through &lt;a href="https://www.namecheap.com/" rel="noopener noreferrer"&gt;Namecheap&lt;/a&gt;), so I connected it with my DO 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%2Fi.imgur.com%2FICGZr99.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%2Fi.imgur.com%2FICGZr99.png" alt="domain"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, it was my first time working heavily with animations on a website, more importantly, ensuring these animations work well on a responsive webpage. Huge shoutouts to the &lt;a href="https://greensock.com/docs/v3/GSAP" rel="noopener noreferrer"&gt;GSAP&lt;/a&gt; library for handling most of the leg work and optimization of the animations.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://blog.usejournal.com/vue-js-gsap-animations-26fc6b1c3c5a" rel="noopener noreferrer"&gt;Setting up Vue + GSAP&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.image-map.net/" rel="noopener noreferrer"&gt;Tool for image mapping&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/clarketm/image-map" rel="noopener noreferrer"&gt;Resize image mapping for responsive webpages&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/vue-images-loaded" rel="noopener noreferrer"&gt;Vue image loader&lt;/a&gt;&lt;br&gt;
&lt;a href="https://creativemarket.com/graphicpear0/2879587-Ultimate-3D-Map-Creator-Mapita" rel="noopener noreferrer"&gt;Mapita 3D map elements set&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Words
&lt;/h3&gt;

&lt;p&gt;I wish everyone a Happy New Year 2021 and good health considering the pandemic world we're living in. Feel free to reach out to me if you have any questions or just for a friendly introduction, what better time to meet new people online 😃&lt;/p&gt;

&lt;p&gt;Lastly, I would really appreciate any suggestions or feedback you may have 💛&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>vue</category>
    </item>
    <item>
      <title>Personal Portfolio: Dev</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Wed, 06 Jan 2021 20:43:54 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/personal-portfolio-dev-23p8</link>
      <guid>https://forem.com/abhinavchawla13/personal-portfolio-dev-23p8</guid>
      <description>&lt;p&gt;Let's talk some tech, finally. &lt;/p&gt;

&lt;p&gt;The last two posts revolved around the inspiration and design for the website, and I'll get deeper into some of the development challenges I met (and conquered!), and more importantly some pitfalls I fell into. &lt;/p&gt;

&lt;h2&gt;
  
  
  Stack: What framework did I use?
&lt;/h2&gt;

&lt;p&gt;Answer: &lt;em&gt;Vue&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;True story: I created a Vue project, deleted it thinking it's overkill for this single page application. Create a new frame-less project. Realized my mistake. Re-created a new Vue project again. And I'm so glad I went back to Vue.&lt;/p&gt;

&lt;p&gt;What I initially thought could just be a single large &lt;code&gt;index.html&lt;/code&gt; file, Vue ensured me that I build modular components and give a proper structure to my codebase, which essentially became significant to manage the different layers and animations I'd decided to add to the portfolio. &lt;/p&gt;

&lt;h2&gt;
  
  
  Animations
&lt;/h2&gt;

&lt;p&gt;The vision that I had with this project involved a lot of animations. And I wanted to work with a library that is proven to be fast, efficient, and small enough. But first, I tried to use the basic CSS animations. It started well, was happy for some time before I accidentally tested the webpage on a Macbook (was originally working on my Windows machine).&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%2Fi.imgur.com%2FaOKfOAw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FaOKfOAw.gif" alt="balloons-animated"&gt;&lt;/a&gt;&lt;/p&gt;
Example of the initial animations [Low FPS gif]



&lt;p&gt;While the basic CSS transitions were working fine on my PC, they were slightly lagging on the Mac Chrome browser. Considering, these were just a couple of the animations, I decided to try out a library called &lt;a href="https://greensock.com/docs/v3/GSAP" rel="noopener noreferrer"&gt;GSAP&lt;/a&gt; that I had read about previously. I integrated it with my Vue project and replicated the animations with it. &lt;/p&gt;

&lt;p&gt;It worked &lt;em&gt;flawlessly&lt;/em&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Image Mapping
&lt;/h2&gt;

&lt;p&gt;As you might have seen in my previous &lt;a href="https://dev.to/abhinavchawla13/personal-portfolio-design-e18"&gt;post&lt;/a&gt;, I had designed a floating island. The island had two distinct features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Floatation: The island had an inherent pulse-animation moving a few pixels up and down. Also, I added a subtle sideways animation on cursor movements over the x-axis.&lt;/li&gt;
&lt;li&gt;Clickable events: There were multiple objects clickable on the island, that can be seen with a yellow glow. This is where things get tricky.&lt;/li&gt;
&lt;/ol&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%2Fi.imgur.com%2FNGstLZ3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FNGstLZ3.gif" alt="floating"&gt;&lt;/a&gt;&lt;/p&gt;
Exemplifying effects discussed in (1) [Low FPS gif]



&lt;p&gt;Let's discuss the second point in more detail. My initial idea was to superimpose individual images for all the events on top of the island image, so it's easier to add an animated glow (unlike the current static glow) and add clickable events. While this sounded reasonable, it ended up being a headache as the island size isn't constant; it's responsive to the size of the screen. Hence, &lt;em&gt;sizing and positioning&lt;/em&gt; the individual smaller images relative to the main island were too much of a hassle. &lt;/p&gt;

&lt;p&gt;Looking for an alternate, I came across &lt;a href="https://www.w3schools.com/html/html_images_imagemap.asp" rel="noopener noreferrer"&gt;HTML Image Maps&lt;/a&gt;; to be honest, I had no idea this feature existed, and it was going to make my life a lot easier. Fortunately, I found a great &lt;a href="https://www.image-map.net/" rel="noopener noreferrer"&gt;onlne tool&lt;/a&gt; to help me draw down the area boundaries for my map.&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%2Fi.imgur.com%2F2AOp4N0.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%2Fi.imgur.com%2F2AOp4N0.png" alt="image-map"&gt;&lt;/a&gt;&lt;/p&gt;
image-map.net tool



&lt;p&gt;So, all good, I guessed? Well, not really. Image maps work well with absolute fixed-size images but don't resize relatively when the original image's size changes as in my case. After digging around Stackoverflow and trying multiple solutions, hope seemed grim. Until, I found this &lt;em&gt;magical&lt;/em&gt; package &lt;a href="https://github.com/clarketm/image-map" rel="noopener noreferrer"&gt;image-map&lt;/a&gt; which somehow integrated with Vue and automatically readjusted all the area boundaries as the screen size changed. Seriously, this package saved me. 🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  Loading
&lt;/h2&gt;

&lt;p&gt;Since this website loads a lot of different assets, I wanted to add a loader (and no, lazy-loading wasn't the solution for this case). So, I need a loader to incrementally progress based on all the assets commutatively. Adding an individual event on each asset seemed like overworking. Another sweet package to the rescue - &lt;a href="https://www.npmjs.com/package/vue-images-loaded" rel="noopener noreferrer"&gt;vue-images-loaded&lt;/a&gt;; it ran a listener for all the images being downloaded and I could figure out the progress for the loader, and therefore when to close it and show the main content without worrying about assets not being loaded properly.&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%2Fi.imgur.com%2FQ9DoghK.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FQ9DoghK.gif" alt="loading"&gt;&lt;/a&gt;&lt;/p&gt;
Loading animation [Low FPS gif]






&lt;p&gt;That's all for now, I'll be showcasing the final project in the next post. So, stay tuned for it! Feel free to ask any questions you may have about the development process 🤓&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>webdev</category>
      <category>vue</category>
      <category>gsap</category>
    </item>
    <item>
      <title>Personal Portfolio: Design</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Tue, 05 Jan 2021 16:56:59 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/personal-portfolio-design-e18</link>
      <guid>https://forem.com/abhinavchawla13/personal-portfolio-design-e18</guid>
      <description>&lt;p&gt;As I mentioned in the previous post, I decided to take inspiration from Farmville and started building out my own city. &lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1
&lt;/h2&gt;

&lt;p&gt;One cold-Canadian Saturday morning, I sat down and started laying down the ground for my town, literally, well on Photoshop! I decided to create a map with multiple clickable objects which when clicked, will give you more information about that event associated with my life. After hours and hours, I finally had something planned out. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qUXT77bC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/p7Ka6TM.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qUXT77bC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/p7Ka6TM.jpg" alt="town"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Friendly note:&lt;/strong&gt; Please remember to save your Photoshop files at fixed intervals, randomly my laptop decided to die and Photoshop's autosaved feature bailed on me!&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 2
&lt;/h2&gt;

&lt;p&gt;After adding 100s of layers on photoshop for individual map objects, I felt accomplished. I could see my vision of the town coming to life. My first thoughts were to ensure the town covers the entire visible screen of the webpage. While that looked good, I gave myself a couple of days to try to think if I can come up with something else; something even better. I took some time to view further design sources until I stumbled on the idea of a floating island. &lt;/p&gt;

&lt;p&gt;What if my entire webpage is covered with an end-to-end image of my town, but it contains a floating island with my town on it? I thought to give it a shot. So, I designed a floating island.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Phase 3
&lt;/h2&gt;

&lt;p&gt;Now, it was time to take the town created in Phase 1, to be put on to this island. This seemed simple at first, but it took me some time to weed out the unnecessary layers I had and add minor adjustments to mark it complete. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MJ-T6Fcw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/Ybh8l5M.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MJ-T6Fcw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/Ybh8l5M.png" alt="island-town"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 4
&lt;/h2&gt;

&lt;p&gt;Lastly, I needed to highlight the items that would be clickable by the user. I came back to this after I had started working on the development of the webpage. I initially had thought of adding an animation around the building, but because a responsive webpage makes it tough, a lot tougher, to handle image resizing, I decided to have a static glow around these items on the map. Finally, I had this:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K_xOA-De--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/R5h3mPZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K_xOA-De--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/R5h3mPZ.png" alt="island-town-glow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 5 (Let's keep it a secret, for now)
&lt;/h2&gt;

&lt;p&gt;I hope this post gives you a sneak peek into my island-town, but you may ask, how does the final website look? There's some more design to it, but I'll save the final sauce for the submission post. 😉 &lt;/p&gt;

&lt;p&gt;See you soon!&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>design</category>
      <category>uiux</category>
    </item>
    <item>
      <title>Personal Portfolio: Inspiration</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Mon, 04 Jan 2021 18:12:32 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/personal-portfolio-inspiration-2fnf</link>
      <guid>https://forem.com/abhinavchawla13/personal-portfolio-inspiration-2fnf</guid>
      <description>&lt;p&gt;I think it's been more than a year or so that I wished I had time to work on my personal website. I would always end up taking up other side projects, pushing back this personal project always on the back of my list. While the year 2020 was coming to end, I had almost wrapped around most of my projects and the DigitalOcean hackathon announcement gave me the final jolt to go ahead with building my portfolio application. &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%2Fmedia2.giphy.com%2Fmedia%2FS5yqNNTQlEZfqQ7InC%2Fgiphy.gif%3Fcid%3Decf05e47pzrwga9bbtf089ziyma58xcan0nsulitfeskv9m2%26rid%3Dgiphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2FS5yqNNTQlEZfqQ7InC%2Fgiphy.gif%3Fcid%3Decf05e47pzrwga9bbtf089ziyma58xcan0nsulitfeskv9m2%26rid%3Dgiphy.gif" alt="Let's go!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Inspiration
&lt;/h1&gt;

&lt;p&gt;Though I'm a developer by profession, I have a strong inclination towards design. I'm always on the lookout for interesting and innovative UIs. I won't lie, I had thought about a lot of designs over the past few months whenever I would imagine working on this project, but now I had to actually make a call. Decide a design, and get going with it. And so did I start working on it. &lt;/p&gt;

&lt;p&gt;It would be unfair to not mention the brilliant resources and ideas shared by designers all across the globe on &lt;a href="https://pinterest.com" rel="noopener noreferrer"&gt;Pinterest&lt;/a&gt;, &lt;a href="http://dribble.com" rel="noopener noreferrer"&gt;Dribble&lt;/a&gt;, &lt;a href="http://awwwards.com/" rel="noopener noreferrer"&gt;Awwwards&lt;/a&gt; and multiple &lt;a href="http://instagram.com" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt; channels. &lt;/p&gt;

&lt;h1&gt;
  
  
  What did I decide?
&lt;/h1&gt;

&lt;p&gt;After a lot of contemplation (by a lot, I mean a lot 😅), I questioned myself what if I built a city for myself. Does anyone remember &lt;a href="https://www.zynga.com/games/farmville/" rel="noopener noreferrer"&gt;FarmVille&lt;/a&gt; game? I do remember being addicted to it at a certain point, maybe a decade ago! So I thought why not to draw inspiration from the age-old classic, and built something similar (of course, with much fewer complications - or well, so I thought so). &lt;/p&gt;

&lt;p&gt;For those who have never played Farmville, this was the original design before it got all &lt;em&gt;fancy&lt;/em&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%2Fmedia2.giphy.com%2Fmedia%2F3o6ZsTgjNX7aFOTL44%2Fgiphy.gif%3Fcid%3Decf05e47j45bqvitg5rlm61x6w50awjauf0yr7q4cvesgr0v%26rid%3Dgiphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2F3o6ZsTgjNX7aFOTL44%2Fgiphy.gif%3Fcid%3Decf05e47j45bqvitg5rlm61x6w50awjauf0yr7q4cvesgr0v%26rid%3Dgiphy.gif" alt="Farmville"&gt;&lt;/a&gt;&lt;/p&gt;
FarmVille by Zyanga



&lt;h1&gt;
  
  
  How do I build it?
&lt;/h1&gt;

&lt;p&gt;So, even before going to the technical dilemma, I faced the challenge of how to design this city of mine. Even after I build my city, how do you I build a webpage out of it? So, lots of questions had to be answered, and I sat down with my old pal, Adobe Photoshop, and started to draw some ideas into artboards. Found this really awesome &lt;a href="https://www.graphicpear.com/mapita-isometric-3d-map-builder/" rel="noopener noreferrer"&gt;Mapita map builder&lt;/a&gt; which helped me layout my town.&lt;/p&gt;

&lt;p&gt;On the technical side, I was faced with the question of whether to build it out with Vanilla JS or use some framework. After a lot of back-and-forths, I ended up using Vue. I envisioned a decent amount of animations, and basic CSS transitions weren't being very friendly on different browsers, so I ended up exploring this library called &lt;a href="https://greensock.com/docs/v3/GSAP" rel="noopener noreferrer"&gt;GSAP&lt;/a&gt;; and it's just great!&lt;/p&gt;

&lt;p&gt;I promise to share some of the designs that I have been working on in the next post so you start getting a picture of what I have been working on in the past three weeks. Till then, take care everyone.&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>personal</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>GitHub: Monetize documentation</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Wed, 03 Jun 2020 02:35:27 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/github-monetize-documentation-217l</link>
      <guid>https://forem.com/abhinavchawla13/github-monetize-documentation-217l</guid>
      <description>&lt;p&gt;&lt;em&gt;(Update: June 4, 12:17pm: There was an error for users trying to sign in for the first time, which has been fixed and pushed!)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;"We have met the enemy, and it is us." - Walt Kelly&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;As a fellow developer, I think I would need to go out of my way to explain the importance of proper documentation to everyone in the community. We all know that source code itself is not a substitute to a readable and easy to understand documentation. Nonetheless, a lot of developers choose not to spend enough time to write proper supporting documentation for the projects (We all have gone through times where going through the source code isn't fun 😅).&lt;/p&gt;

&lt;p&gt;To incentivize the developers, I decided to &lt;strong&gt;web-monetize README.md documentation on GitHub&lt;/strong&gt;. I hope it becomes a stepping stone to help the community to invest time into writing documentations and show support for each other's work! &lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Sign in with your GitHub
&lt;/h3&gt;

&lt;p&gt;I implemented GitHub OAuth enabling users to simply sign in with their GitHub account. &lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 2: Add your wallet pointer and connect a repository
&lt;/h3&gt;

&lt;p&gt;Once logged in, you can easily add (or update) your wallet pointer. After you have done so, you can connect any repository(s), public or private, within your GitHub account. This will automatically create a documentation link (unpublished initially)&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 3: Add documentation and publish it
&lt;/h3&gt;

&lt;p&gt;This is the exciting part! I built a markdown editor and you can use it to edit your documentation here and save it. Once you publish it, the GitHub repository will have an updated README file with monetized label (named it &lt;em&gt;Documento&lt;/em&gt;) and link to the documentation. &lt;br&gt;
Further, once you unpublish the documentation, the GitHub README will be updated with the documentation you have saved on the application.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 4: Your web monetized documentation is good to go!
&lt;/h3&gt;

&lt;p&gt;This documentation link in the README is web monetized with the wallet pointer you added in step 2. Users without an enabled Coil browser would not be able to view it.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Link to demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;FYI:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;Since the backend is hosted on the free-tier of &lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt;, it goes off to sleep after every 30 minutes of inactivity. The first time you sign in,&lt;/em&gt; &lt;strong&gt;&lt;em&gt;it may take 8-12 seconds to load,&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;since the server has to wake up before responding. (Sorry about that!)&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github-monetize.web.app/" rel="noopener noreferrer"&gt;https://github-monetize.web.app/&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I created a &lt;strong&gt;dummy GitHub account&lt;/strong&gt; for users who do not have a GitHub account or maybe do not want to share access to the application.&lt;br&gt;
Username: &lt;strong&gt;dummy-cntrl&lt;/strong&gt;&lt;br&gt;
Password: &lt;strong&gt;Dummy#12&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;em&gt;(Update: I received few verification emails for this GitHub account for verification codes, so you may not be able to log in without them. In that case, I'll recommend you to use your personal GitHub account!)&lt;/em&gt;
&lt;/h4&gt;


&lt;h3&gt;
  
  
  Sample repository with monetized documentation
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dummy-cntrl" rel="noopener noreferrer"&gt;
        dummy-cntrl
      &lt;/a&gt; / &lt;a href="https://github.com/dummy-cntrl/test-01" rel="noopener noreferrer"&gt;
        test-01
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h5&gt;
  
  
  Here's the direct documentation &lt;a href="https://github-monetize.firebaseapp.com/view/5ecd6f47cdf7990017614ef5" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/h5&gt;




&lt;h2&gt;
  
  
  Here's the code
&lt;/h2&gt;

&lt;p&gt;Web UI&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abhinavchawla13" rel="noopener noreferrer"&gt;
        abhinavchawla13
      &lt;/a&gt; / &lt;a href="https://github.com/abhinavchawla13/github-monetize-ui" rel="noopener noreferrer"&gt;
        github-monetize-ui
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Backend API&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abhinavchawla13" rel="noopener noreferrer"&gt;
        abhinavchawla13
      &lt;/a&gt; / &lt;a href="https://github.com/abhinavchawla13/github-monetize-api" rel="noopener noreferrer"&gt;
        github-monetize-api
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;em&gt;I have not monetized the documentations for these GitHub repos so anyone can have a look at them&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I used &lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; with &lt;a href="https://expressjs.com/" rel="noopener noreferrer"&gt;Express&lt;/a&gt; framework to develop my backend API. On the database side, I deployed a &lt;a href="https://www.mongodb.com/" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt; instance on &lt;a href="https://www.mongodb.com/cloud/atlas" rel="noopener noreferrer"&gt;Atlas&lt;/a&gt;. The backend is auto-deployed on &lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt; free-dyno right now. &lt;/p&gt;

&lt;p&gt;I used &lt;a href="https://firebase.google.com/docs/auth" rel="noopener noreferrer"&gt;Firebase authentication&lt;/a&gt; to manage user logging on the admin portal. For GitHub, I connected via GitHub OAuth authorization application and used &lt;a href="https://developer.github.com/v3/" rel="noopener noreferrer"&gt;GitHub API v3&lt;/a&gt; to access user repositories.&lt;/p&gt;

&lt;p&gt;For the UI, I decided to use &lt;a href="https://vuejs.org/" rel="noopener noreferrer"&gt;Vue.js&lt;/a&gt;. I recently started using the Vue framework, and I'm lovin' it! Besides this, I also did my debut run with &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; and I'm impressed again! Overall, great two new tools in my UI toolkit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some hurdles (might get a bit too techy 🤐)
&lt;/h3&gt;

&lt;p&gt;Being new to Vue, I had some issues setting up the meta tags with the monetization pointer. Since, I used the same host for each documentation link, I needed to dynamically update the meta tag with the pointer for the owner of the repository. In the end, I used the handy &lt;code&gt;vue-meta&lt;/code&gt; plugin to help me resolve the issue.&lt;/p&gt;

&lt;p&gt;I also had some issue when I tried to compile Tailwind CSS. Initially the CSS wasn't purging as expected, and later it was overriding the CSS for a notification library (&lt;code&gt;vuejs-noty&lt;/code&gt;) I was using. Eventually I was able to fix it by adding &lt;code&gt;whitelistPatterns&lt;/code&gt; inside the Tailwind configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finals thoughts
&lt;/h2&gt;

&lt;p&gt;This was my first deep dive into the web monetization, and I can see it harnessing use into multiple web streams. Point being, this new payment standard seems promising and looking forward to interesting projects being build using it in the near future.&lt;/p&gt;

&lt;p&gt;Lastly, let's save ourselves from the nightmares of reverse-engineering undocumented code 🙅‍♂️. Feel free to reach out if you have any concerns or want to collaborate on interesting projects in the future!&lt;/p&gt;

</description>
      <category>gftwhackathon</category>
      <category>showdev</category>
      <category>webmonetization</category>
      <category>github</category>
    </item>
    <item>
      <title>BeTheHope - Series Finale! [4]</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Wed, 29 Apr 2020 21:04:02 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/bethehope-series-finale-4-2ifc</link>
      <guid>https://forem.com/abhinavchawla13/bethehope-series-finale-4-2ifc</guid>
      <description>&lt;p&gt;Something about me: I like to discover and dissect everyday problems, and use my software background to come up with creative solutions. As I mentioned in my previous &lt;a href="https://dev.to/abhinavchawla13/bethehope-first-glimpse-1-29ei"&gt;post&lt;/a&gt;, I came across multiple instances in my day-to-day life where donating money to organizations was a long and confusing process. BeTheHope is my effort towards trying to centralize and simplify the donation process.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Cumbersome donation processes paired with fickle minded millennials are a recipe for disaster.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;In the world of contactless payments and instant money transfers, the online donation process is far behind. I developed BeTheHope to streamline the donation process, and tackle the problem of endless clicks and unclear processes, to easily get valuable donations from the donor to the recipient.&lt;/p&gt;

&lt;p&gt;Here’s a &lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=nBZlpwKwr-s" rel="noopener noreferrer"&gt;video&lt;/a&gt;&lt;/strong&gt; with the walkthrough of the project (I won’t deny, after spending sleepless nights over getting my final render, my first instinct was to end the video with  &lt;em&gt;’Please like, share and subscribe to my channel’&lt;/em&gt; 🏅)&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/nBZlpwKwr-s"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;strong&gt;BeTheHope creates short URLs and QR codes linked to customized donation campaigns, that are distributable via text, email, WhatsApp or social media posts, making one-click donations possible using Apple Pay and Google Pay.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As I discussed my love for numbers in my previous &lt;a href="https://dev.to/abhinavchawla13/bethehope-what-did-data-say-3-2970"&gt;post&lt;/a&gt;, here’s a &lt;strong&gt;&lt;a href="https://drive.google.com/open?id=1mtx085kZxZ1r3rvF3XYq7zghrfM1598W" rel="noopener noreferrer"&gt;deck&lt;/a&gt;&lt;/strong&gt; I put together with some fascinating stats which motivated me to build this solution.&lt;br&gt;
&lt;iframe src="https://www.slideshare.net/slideshow/embed_code/key/5Msjq79ucDqFHG" alt="5Msjq79ucDqFHG on slideshare.net" width="100%" height="487"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h5&gt;
  
  
  A high quality copy of the deck is available &lt;a href="https://drive.google.com/open?id=1mtx085kZxZ1r3rvF3XYq7zghrfM1598W" rel="noopener noreferrer"&gt;here&lt;/a&gt;.
&lt;/h5&gt;




&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Important FYI:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;Since the backend is hosted on the free-tier of &lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt;, it goes off to sleep after every 30 minutes of inactivity. The first time you open a link below,&lt;/em&gt; &lt;strong&gt;&lt;em&gt;it may take 8-12 seconds to load,&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;since the server has to wake up before responding. (Sorry about that!)&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Donation Page: &lt;a href="http://bth.fund/CAcares/covid" rel="noopener noreferrer"&gt;http://bth.fund/CAcares/covid&lt;/a&gt;
&lt;/h3&gt;

&lt;h6&gt;
  
  
  (this short url will automatically get redirected to &lt;a href="https://bethehope.fund/CAcares/covid" rel="noopener noreferrer"&gt;https://bethehope.fund/CAcares/covid&lt;/a&gt;)
&lt;/h6&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I’m currently using a test key for &lt;a href="https://stripe.com/en-ca" rel="noopener noreferrer"&gt;Stripe&lt;/a&gt;, so you guys can try donating, and would &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; be charged. &lt;em&gt;Apple Pay&lt;/em&gt; option will &lt;strong&gt;&lt;em&gt;only&lt;/em&gt;&lt;/strong&gt; show on &lt;em&gt;Safari&lt;/em&gt; on any iOS device with Apple Pay enabled; likewise &lt;em&gt;Google Pay&lt;/em&gt; will &lt;strong&gt;&lt;em&gt;only&lt;/em&gt;&lt;/strong&gt; show on &lt;em&gt;Chrome&lt;/em&gt;.&lt;br&gt;
You can try out a credit card payment with test card number: &lt;strong&gt;4242-4242-4242-4242&lt;/strong&gt;.&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%2Fimgur.com%2FzOkBBwe.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%2Fimgur.com%2FzOkBBwe.png" alt="donation page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Admin Portal: &lt;a href="https://admin.bethehope.fund/" rel="noopener noreferrer"&gt;https://admin.bethehope.fund/&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I have &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; opened signups for the public, as my private keys are tied to the backend APIs for &lt;a href="https://stripe.com/en-ca" rel="noopener noreferrer"&gt;Stripe&lt;/a&gt; and &lt;a href="http://twilio.com/" rel="noopener noreferrer"&gt;Twilio&lt;/a&gt; for now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can use the following credentials to explore the portal:&lt;br&gt;
Username: &lt;a href="mailto:admin@canadacares.com"&gt;admin@canadacares.com&lt;/a&gt;&lt;br&gt;
Password: 123456&lt;/strong&gt;&lt;br&gt;
(Super secure password, I know, I know!)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: &lt;em&gt;I have currently disabled the account to prevent exposing donor emails. If you want to explore the portal, please feel free to reach out to me, and I can help you with providing alternate access credentials.&lt;/em&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%2Fimgur.com%2FJ4c0Yoa.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%2Fimgur.com%2FJ4c0Yoa.png" alt="admin page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Incase you have any questions or concerns, please feel free reach out to me at &lt;em&gt;&lt;a href="mailto:abhinavchawla13@gmail.com"&gt;abhinavchawla13@gmail.com&lt;/a&gt;&lt;/em&gt;
&lt;/h5&gt;




&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;The code might be private at some point in time, if you want to have a sneak-peak, feel free to reach out to me!&lt;/em&gt;&lt;br&gt;
I split my code into three repositories to manage easy deployments, and created all three under a parent project (Github Organization): &lt;strong&gt;&lt;em&gt;&lt;a href="https://github.com/bethehope" rel="noopener noreferrer"&gt;bethehope&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What's the stack?
&lt;/h2&gt;

&lt;p&gt;I used &lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; with &lt;a href="https://expressjs.com/" rel="noopener noreferrer"&gt;Express&lt;/a&gt; framework to develop my backend API. On the database side, I deployed a &lt;a href="https://www.mongodb.com/" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt; instance on &lt;a href="https://www.mongodb.com/cloud/atlas" rel="noopener noreferrer"&gt;Atlas&lt;/a&gt;. The backend is auto-deployed on &lt;a href="https://www.heroku.com/" rel="noopener noreferrer"&gt;Heroku&lt;/a&gt; free-dyno right now. &lt;/p&gt;

&lt;p&gt;I used &lt;a href="https://firebase.google.com/docs/auth" rel="noopener noreferrer"&gt;Firebase authentication&lt;/a&gt; to manage user logging on the admin portal.  To handle the payments (donations), I opted to choose &lt;a href="https://stripe.com/en-ca" rel="noopener noreferrer"&gt;Stripe’s&lt;/a&gt; digital wallet and card payment APIs. And of course, I used &lt;a href="http://twilio.com/" rel="noopener noreferrer"&gt;Twilio&lt;/a&gt; to enable text, email and WhatsApp messaging 😉&lt;/p&gt;

&lt;p&gt;On the UI side, I decided to use &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 8&lt;/a&gt;. I didn’t have much experience with Angular 8, but I had previously worked on AngularJS and a bit on React, so I thought this would be a good project to learn it on the go. Oh well, I’ll say there’s a lot more to learn, and I will look further into optimizing my code. Both the UI repositories are manually deployed on &lt;a href="https://firebase.google.com/docs/hosting" rel="noopener noreferrer"&gt;Firebase Hosting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, I bought both the domains (&lt;a href="http://bth.fund" rel="noopener noreferrer"&gt;bth.fund&lt;/a&gt;, &lt;a href="https://bethehope.fund" rel="noopener noreferrer"&gt;bethehope.fund&lt;/a&gt;) on &lt;a href="https://www.namecheap.com/" rel="noopener noreferrer"&gt;Namecheap&lt;/a&gt; and handled the redirection from bth.fund to bethehope.fund using their cloudserver tools. &lt;/p&gt;




&lt;h2&gt;
  
  
  Some places where I felt a bit lost
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Redirection between the URLs&lt;/strong&gt; was tiring, and I wholeheartedly accept that DevOps isn’t me thing 😪. Nonetheless, &lt;a href="https://www.namecheap.com/" rel="noopener noreferrer"&gt;Namecheap&lt;/a&gt; support was really helpful to get me setup. I still haven’t been able to apply a SSL certificate (&lt;code&gt;https&lt;/code&gt;) on the &lt;a href="http://bth.fund" rel="noopener noreferrer"&gt;bth.fund&lt;/a&gt; domain, which is automatically applied onto the &lt;a href="https://bethehope.fund" rel="noopener noreferrer"&gt;bethehope.fund&lt;/a&gt; domain by Firebase hosting.&lt;/p&gt;

&lt;p&gt;Also, &lt;strong&gt;enabling Apple Pay&lt;/strong&gt; took some digging, since it required a developer key from Apple, a configuration file to be deployed, plus it only runs on SSL (so unfortunately can’t test it on localhost directly). I came across &lt;strong&gt;this handy tool for quick localhost deployments&lt;/strong&gt; (with SSL): &lt;a href="https://ngrok.com/" rel="noopener noreferrer"&gt;ngrok&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, &lt;strong&gt;video editing is hard&lt;/strong&gt;. Period. Tried ClipChamp, tried iMovie. Ended with using &lt;a href="https://www.adobe.com/ca/products/premiere.html" rel="noopener noreferrer"&gt;Adobe Premiere&lt;/a&gt; (and requiring a 1-hour tutorial on how to use it from a good friend). A quick shoutout to &lt;a href="https://tool.animaker.com/voice-app" rel="noopener noreferrer"&gt;Animaker&lt;/a&gt; for the voice-over tool and &lt;a href="https://www.bensound.com/royalty-free-music/track/tenderness" rel="noopener noreferrer"&gt;Bensound&lt;/a&gt; for background music.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;As you probably noticed, I never shared code snippets or went too techie. This is only because I wanted to keep my posts user-friendly for everyone–dev community &amp;amp; the remaining happy souls on this planet (haha, just kidding!).&lt;/p&gt;

&lt;p&gt;That said, I love talking about code, and I’m just a ping away for anyone who wants to discuss the code or &lt;em&gt;any&lt;/em&gt; other aspect about this project. Also totally okay if you just want to say &lt;em&gt;hello&lt;/em&gt; 👋&lt;em&gt;!&lt;/em&gt; I’m always excited to meet new people and collaborate on different projects, and am definitely open to work on BeTheHope together to take this project across the borders into the global community.&lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>donation</category>
      <category>community</category>
    </item>
    <item>
      <title>BeTheHope - What did Data say? [3]</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Tue, 28 Apr 2020 16:32:57 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/bethehope-what-did-data-say-3-2970</link>
      <guid>https://forem.com/abhinavchawla13/bethehope-what-did-data-say-3-2970</guid>
      <description>&lt;p&gt;Hello again! In the past, there have been times when I had an idea, and I felt that this is it. This is my Eureka moment. In eagerness to start working on the project, I ended up forgetting to do some research to see if alternates exist or data supports my thesis. And well, I’ll just say that it ended up in a few disappointing endings.&lt;/p&gt;

&lt;p&gt;Learning from these mistakes, over the past year, whenever I start a new project, I try to dig in some data to ensure that the idea brings something unique to the table, can be backed by data and it’s feasibility to reach the intended audience. &lt;/p&gt;

&lt;h3&gt;
  
  
  I ask myself, is it worth pulling all-nighters?
&lt;/h3&gt;

&lt;p&gt;And with BeTheHope, it was a definite &lt;strong&gt;&lt;em&gt;yes&lt;/em&gt;&lt;/strong&gt;. First week, my brain was juggling around between a couple of ideas. Eventually, I let the data decide (so maybe I can call myself a data-driven person? 🤓). I had gathered enough data to convince myself to build a solution easing donations for everyone. &lt;/p&gt;




&lt;h3&gt;
  
  
  How’s the progress been so far?
&lt;/h3&gt;

&lt;p&gt;Luckily, I’m almost done with the development, ahead of my schedule, so I decided to work on a couple of cool things to show my passion for the project. Firstly, since I had done the heavy load of digging some valuable data in the first week, I decided to prepare a deck with some numbers to show the importance of this solution. For now, here’s a quick peek (I’ll share the complete deck in the submission post):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9QsZabMS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/O6jyNIK.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9QsZabMS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/O6jyNIK.jpg" alt="Deck"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Secondly, I never thought I'd be doing this, but since I have some time on my hands, I decided to try getting my hands dirty trying to edit a walkthrough demo video for the entire platform. To be honest, I basically realized how hard it is to edit videos (Salute to YouTubers!). Nonetheless, I’m super excited to complete it. If done right, I’ll be putting it into my hall of fame 😎&lt;/p&gt;

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




&lt;p&gt;Before I leave, a quick update on the donations page (shared in first &lt;a href="https://dev.to/abhinavchawla13/bethehope-first-glimpse-1-29ei"&gt;post&lt;/a&gt;) for the donors: As it is a mobile-first page, I re-designed the page to provide desktop viewers a similar experience as they would get on their mobile devices. Here it is:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RVeT_74k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/mOFltSW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RVeT_74k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/mOFltSW.png" alt="Donation page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m happy with the progress; hopefully I should be able to wrap things up soon and post my final submission by tomorrow 🤞. Until then, Happy Hackathon! &lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>data</category>
      <category>presentation</category>
      <category>video</category>
    </item>
    <item>
      <title>BeTheHope - Let's Campaign [2]</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Sun, 26 Apr 2020 21:53:45 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/bethehope-let-s-campaign-2-41d3</link>
      <guid>https://forem.com/abhinavchawla13/bethehope-let-s-campaign-2-41d3</guid>
      <description>&lt;p&gt;Happy Sunday! I hope you had a chance to go over my previous &lt;a href="https://dev.to/abhinavchawla13/bethehope-first-glimpse-1-29ei"&gt;post&lt;/a&gt;, and it gave you an idea of how easy the donation process can be for donors.&lt;/p&gt;

&lt;p&gt;In this post, I will give an overview of how Small Business Owners (SBOs), Charities and NGOs can leverage the &lt;strong&gt;BeTheHope admin portal&lt;/strong&gt; to create campaigns, and share the short URLs and QR codes with the public.&lt;/p&gt;

&lt;h3&gt;
  
  
  So, what is a campaign?
&lt;/h3&gt;

&lt;p&gt;The dictionary definition of campaign is, &lt;em&gt;"work in an organized and active way toward a particular goal"&lt;/em&gt;. Now, let me walk you through what a campaign means in this application. A campaign is a customized donation link. For instance, any organization can create a campaign for the education of underprivileged children in Canada. Simply put, &lt;strong&gt;the cause is the campaign&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The screenshot below gives us an overview of the campaigns created by the organization &lt;em&gt;'Care Canada'&lt;/em&gt;. The selected campaign has the campaign code &lt;em&gt;'summer'&lt;/em&gt;, and it shows the URL and QR code which can easily be shared by the organization. This provides a convenient way for users to donate as we saw in the short &lt;a href="https://www.youtube.com/watch?v=y_fr0XbOyiE"&gt;video demo&lt;/a&gt; in the last post. Next to the campaign code, we see more information about the campaign such as the description, date of creation, and most importantly the donations collected to date.&lt;/p&gt;

&lt;p&gt;It’s fairly easy to create a new campaign by clicking the &lt;em&gt;‘Create’&lt;/em&gt; button on the top-right corner and filling out a couple of fields (which I’ll cover in a walkthrough video soon).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A7VPUf6l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/WbTY2P5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A7VPUf6l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/WbTY2P5.png" alt="Campaigns view"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Sweet, how can I share it?
&lt;/h3&gt;

&lt;p&gt;*drumroll*.. *drumroll*.. &lt;br&gt;
Answer is &lt;strong&gt;Twilio&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;The dashboard has a &lt;em&gt;'Reach People'&lt;/em&gt; page which provides users the ability to add any campaign code they created before, list out phone numbers or emails and add a custom message. They can share it with others via text messages, emails or WhatsApp (or even better: all of them 😁). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TP1BqIYl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/83VREAA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TP1BqIYl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/83VREAA.png" alt="Reach People view"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here’s a sample of the text, email and WhatsApp message you will receive respectively. The URL will take you to the same convenient donation page that you saw in the demo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nXcBDg_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/lGqImAN.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nXcBDg_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/lGqImAN.jpg" alt="Notification Reached view"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  ... and what should I do with the QR Code?
&lt;/h3&gt;

&lt;p&gt;Share it via social media or add it to pamphlets, business cards and t-shirts! Leave no stones unturned to make your campaign as noticeable as possible!&lt;/p&gt;




&lt;p&gt;My aim with this project is to make the donation process easier for both the donor and the donee. I’m glad that my vision is finally translating into reality and I will keep you posted on new updates. Till then, stay home and stay safe!&lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>donation</category>
      <category>twilio</category>
      <category>campaigns</category>
    </item>
    <item>
      <title>BeTheHope - First Glimpse [1]</title>
      <dc:creator>Abhinav Chawla</dc:creator>
      <pubDate>Thu, 23 Apr 2020 17:46:44 +0000</pubDate>
      <link>https://forem.com/abhinavchawla13/bethehope-first-glimpse-1-29ei</link>
      <guid>https://forem.com/abhinavchawla13/bethehope-first-glimpse-1-29ei</guid>
      <description>&lt;p&gt;Hey everyone, I’m Abhinav Chawla from Toronto, Canada. FYI: This is my first post here at DEV.to, and I won’t lie, I didn’t know about this platform before I came across this hackathon. So thanks to Twilio for bringing me here; I have been quite impressed with the community (somehow, I’m getting a strong feeling that I’ll be liking this over the ‘blue’ social platforms 😉) &lt;/p&gt;

&lt;h3&gt;
  
  
  So, what’s my project?
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;….Wait, wait. Before explaining my idea, let me tell you how I came up with it in the first place.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Story 1&lt;/strong&gt;: It was my sister’s birthday back in January, and I decided to donate on her behalf. Once I started exploring options online, I realized that it took me &lt;strong&gt;an average of about 20 clicks&lt;/strong&gt; before I could reach the “Donate” button (including finding the Call-to-Action button, account registration, personal information, payment details). If I’m in a mood to drop $25 from my pocket, you better take it ASAP before my brain forces me to buy a pizza &lt;em&gt;(I’ll take pineapple on it, oops)&lt;/em&gt; with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Story 2&lt;/strong&gt;: Before the social distancing laws came into effect, I noticed a friendly rally held by animal activists in Toronto. I approached a volunteer and asked them how I could donate. Since I didn’t have cash on me (btw, who still carries bills?), they handed me &lt;strong&gt;a website to go home and open and donate&lt;/strong&gt;. &lt;em&gt;And of course, that never happened!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Yeah, yeah, but what’s the idea?
&lt;/h3&gt;

&lt;p&gt;Since then, I always thought what if donations could be quicker, even instantaneous as these decisions are impulsive; especially within the millennials. So, with all the motivation (hackathon’s push) needed, I decided to build out my solution. &lt;strong&gt;BeTheHope provides short URLs and QR codes, which can be distributed via texts, emails or social media providing an elegant user experience with an option of one-click payments integrated via Apple Pay and Google Pay.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me show you guys a quick glimpse (I promise I’ll share more soon), here’s the teaser:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/y_fr0XbOyiE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;How does it solve the problem? Well, I would finish donating by the time my brain wanders off and takes me to Dominos website. Plus, what if the volunteers at the rally wore a t-shirt with the QR code printed? Things could have been much simpler. &lt;/p&gt;

&lt;p&gt;Lastly, I came up with the name &lt;em&gt;BeTheHope&lt;/em&gt; for the project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Another FYI: I am a master procrastinator when it comes to writing blog posts, so sorry for not putting this up this sooner. Keep an eye for updates in the following days, before the final submission.]&lt;/em&gt;&lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>donation</category>
      <category>shorturls</category>
      <category>qrcodes</category>
    </item>
  </channel>
</rss>
