| @@ -23,6 +23,9 @@ body { | |||
| a[rel*="external"]::after { | |||
| content: " " url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20class='i-external'%20viewBox='0%200%2032%2032'%20width='14'%20height='14'%20fill='none'%20stroke='%23ff9800'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='9.38%'%3E%3Cpath%20d='M14%209%20L3%209%203%2029%2023%2029%2023%2018%20M18%204%20L28%204%2028%2014%20M28%204%20L14%2018'/%3E%3C/svg%3E"); | |||
| } | |||
| nav a { | |||
| padding: 2px; | |||
| } | |||
| nav a.active { | |||
| background-color: inherit; | |||
| color: #000; | |||
| @@ -65,4 +68,8 @@ a:hover { | |||
| border-style: solid; | |||
| height: 4rem; | |||
| width: 4rem; | |||
| } | |||
| small { | |||
| font-weight: 400; | |||
| } | |||
| @@ -1,6 +1,6 @@ | |||
| baseurl = "https://rohanverma.net/" # Controls base URL sitewide | |||
| languageCode = "en-US" # Controls site language | |||
| title = "rohanverma.net" # Homepage title and page title suffix | |||
| title = "Rohan Verma" # Homepage title and page title suffix | |||
| paginate = 11 # Number of posts to show before paginating | |||
| disqusShortname = "rhnvrm" | |||
| googleAnalytics = "UA-90695618-1" | |||
| @@ -0,0 +1,26 @@ | |||
| --- | |||
| title: Presentation about upi.link at Barcamp Bangalore - Techlash | |||
| author: Rohan Verma | |||
| type: post | |||
| date: 2019-02-03T12:38:24+00:00 | |||
| url: blog/2019/02/03/presentation-bcb-upilink | |||
| categories: | |||
| - upi.link | |||
| --- | |||
| I recently got a chance to talk about [upi.link](https://upi.link)during | |||
| [Techlash at Barcamp Bangalore](https://barcampbangalore.com/bcb/bcb-spring-2019/bcb-spring-2019-techlash/building-a-mobile-app-neutral-upi-request-link-generator-at-https-upi-link). | |||
| I got to tell people about having started this small project. Here is the link to my presentation: | |||
| <a href="https://upi.link/presentation/">Presentation</a> | |||
| A small summary of [upi.link](https://upi.link) | |||
| <blockquote> | |||
| Introducing [upi.link](https://upi.link), which is is a Payment Service Provider (PSP) neutral | |||
| UPI Request Link generator built upon the UPI Deeplinking Spec, enabling SMEs and individual users | |||
| to collect payments directly by sharing links on chat apps or embedding on their own websites, | |||
| without having to rely on building their own mobile apps and calling intents, making manual | |||
| UPI requests on PSP apps, tying up with service aggregators that charge fees, or even | |||
| purchasing licenses to APIs when they are just getting started. | |||
| </blockquote> | |||
| @@ -0,0 +1,91 @@ | |||
| --- | |||
| title: upi.link - Progress Update 1 | |||
| author: Rohan Verma | |||
| type: post | |||
| date: 2019-02-17T12:38:24+00:00 | |||
| url: blog/2019/02/14/progress-update-1-upilink | |||
| categories: | |||
| - upi.link | |||
| --- | |||
| ## What am I building, in a sentence? | |||
| 🔗upi.link: A programmable shortlink generator based on UPI (universal bank2bank payments service in 🇮🇳) sharable via social media & chat. | |||
| ## What did I complete till now? | |||
| ### Highlights | |||
| #### Deployed at [upi.link](https://upi.link) | |||
| I used AWS Free tier to deploy this website to reduce cost for hosting this. It uses AWS Lambda | |||
| Functions to generate shortlinks which | |||
| are stored inside Redis with a TTL of 3 Days. Authentication is | |||
| implemented using a postgres backend along with secure cookies for sessions. | |||
| I will port the lambda functions I wrote for | |||
| shortlink generation out of AWS Lambda | |||
| to my custom backend written in Golang as authentication. This is because | |||
| I have seen that the cold start for Lambdas is pretty slow for my use case and takes about | |||
| 5-6 seconds which for the users seems like 10 seconds. | |||
| The frontend is written using Nuxt.js which is a Universal app framework on top of | |||
| Vue and is similar to what Next.js is for React. This was a neccessity for this use case | |||
| as I need the links shared on social media as well as chat with | |||
| HTML OG (Open Graph) tags to be populated dynamically based on their content. The only other option | |||
| was to write a static website served through templating either in Go (Go templates) | |||
| or Python (Django/Flask using Jinja templates), but then I would not be able to utilize | |||
| the rapid development offered by Vue/Nuxt. Also, I can now separate my API and frontend, maybe | |||
| totally host the API proxied via <a href="https://github.com/apex/up">Apex/Up</a> | |||
| and the frontend via | |||
| S3 buckets to reduce the cost to host the site. | |||
| #### Created a roadmap | |||
| I shared this project with a few friends and groups and lots of feature requests | |||
| as well ideas propped up. To keep a track of all these I created a public | |||
| <a href="//trello.com/b/VynO9sAk">Trello Board</a>. You can <a href="mailto:[email protected]"> | |||
| email to the board </a> for adding more feature requests. | |||
| ### Features | |||
| #### Donation Campaigns | |||
| One of the major features this week, I added a campaign collection feature. | |||
| The first campaign to be hosted is the <a href="https://upi.link/c/BharatKeVeer">#BharatKeVeer</a> | |||
| campaign which was launched to collect funds for contributing to the | |||
| wives of the CRPF Soldiers who lost their lives during the Pulwama terrorist attack. | |||
| #### Temp Link Generator | |||
| I updated the temporary link generator on the home page. Now you don't need to bother | |||
| with the Long Link and you can directly see the page. | |||
| #### Whatsapp/Telegram Share buttons | |||
| Buttons for sharing on Whatsapp and Telegram were added below the generated shortlink | |||
| #### UPI App compatible QR Code | |||
| QR code with the embeded Deeplinking Intent is now displayed on the | |||
| redirect page for people who open the link on their laptops/desktops | |||
| so that they can simply scan the link from their phone. | |||
| #### Emails via AWS SES | |||
| My SES request for sending emails was approved, I added the email button | |||
| behind authentication. | |||
| ### 📌Misc | |||
| #### Progress Blogs | |||
| Well, this blog, honestly, I wanted to have a blog where I could track the progress on this | |||
| project but I did not want to have another setup on say Ghost/Wordpress. So again Nuxt came | |||
| to my rescue and now I just have to add a page to my Nuxt folder and it handles everything | |||
| else such as routing etc. | |||
| #### Recorded demo video 📹 | |||
| You can view this video on [youtube](https://youtu.be/USK4UOn1Xkw) | |||
| <iframe width="100%" height="480" src="https://www.youtube.com/embed/USK4UOn1Xkw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> | |||
| @@ -0,0 +1,51 @@ | |||
| --- | |||
| title: upi.link - Progress Update 2 | |||
| author: Rohan Verma | |||
| type: post | |||
| date: 2019-02-24T12:38:24+00:00 | |||
| url: blog/2019/02/24/progress-update-2-upilink | |||
| categories: | |||
| - upi.link | |||
| --- | |||
| ## Highlights | |||
| I wanted to finish the underlying infrastructural things | |||
| so that I can start to focus on the higher level | |||
| features. | |||
| ## Features | |||
| ### Implemented User Profiles | |||
| Added support for <a href="https://upi.link/profile">user profiles</a> this week. | |||
| Now, I can extend the user authentication table with profile data. | |||
| Since, I want to store minimal data about the users on my server, | |||
| I have used gravatar to load the profile | |||
| photo and as of now no other information other than email is stored. | |||
| Maybe, next week based on user feedback | |||
| I might save the preferred UPI VPA so that the user does not have to | |||
| type it every time. | |||
| ### Track generated links | |||
| Now users can track the permanent links they have generated so that | |||
| they don't have to create a new one every time. | |||
| This same feature will be used to display links on the public | |||
| profile which will be released next week. Also, | |||
| users will be able to edit and delete these as well soon so they | |||
| can be reused. | |||
| ### Email preview | |||
| Now, you can preview the email that will be sent beside the | |||
| link generator on the <a href="https://upi.link/send">send page</a> in | |||
| real time. I will add support to the profile page to send | |||
| emails directly from there to multiple comma separated emails. | |||
| ### Front page design | |||
| The home page has improved quite a lot from what we started, | |||
| now we have more details about the features and | |||
| a more clearer text explaining what upi.link aims to become. | |||
| @@ -6,12 +6,15 @@ | |||
| {{ end }} | |||
| {{ define "main" }} | |||
| <header> | |||
| <h1>{{ .Title }}</h1> | |||
| <h1>{{ .Title }} <small>(rhnvrm)</small></h1> | |||
| </header> | |||
| <div class="leader"> | |||
| <img src="/wp-content/uploads/me.jpg" class="myimage"> | |||
| <div>Hello World 👋, I'm Rohan, and welcome to my homepage.</div> | |||
| <div> | |||
| Hello World 👋 <br> | |||
| Welcome to my homepage. | |||
| </div> | |||
| </div> | |||
| <br> | |||
| @@ -56,7 +59,7 @@ | |||
| <br> | |||
| My blog is also available through <a href="https://rohanverma.net/blog/index.xml">[RSS]</a> | |||
| {{ end }} | |||
| {{ define "footer" }} | |||
| {{ partial "powered-by.html" . }} | |||