diff --git a/assets/css/custom.css b/assets/css/custom.css index f154ed1..c6131fc 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -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; } \ No newline at end of file diff --git a/config.toml b/config.toml index ceecb47..d3ca371 100644 --- a/config.toml +++ b/config.toml @@ -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" diff --git a/content/blog/2019-02-03-bcb-presentation.md b/content/blog/2019-02-03-bcb-presentation.md new file mode 100644 index 0000000..5e3d3cc --- /dev/null +++ b/content/blog/2019-02-03-bcb-presentation.md @@ -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: + +Presentation + +A small summary of [upi.link](https://upi.link) + +
+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. +diff --git a/content/blog/2019-02-17-progress-update-1-upilink.md b/content/blog/2019-02-17-progress-update-1-upilink.md new file mode 100644 index 0000000..6f9fc95 --- /dev/null +++ b/content/blog/2019-02-17-progress-update-1-upilink.md @@ -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 Apex/Up +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 +Trello Board. You can +email to the board 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 #BharatKeVeer +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) + + diff --git a/content/blog/2019-02-24-progress-update-2-upilink.md b/content/blog/2019-02-24-progress-update-2-upilink.md new file mode 100644 index 0000000..29b65ea --- /dev/null +++ b/content/blog/2019-02-24-progress-update-2-upilink.md @@ -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 user profiles 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 send page 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. + diff --git a/layouts/index.html b/layouts/index.html index 722550f..ec4a156 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -6,12 +6,15 @@ {{ end }} {{ define "main" }}
-