Inspiration
The inspiration comes from the physical love locks that are placed on various structures and fences around the world. A romantic gesture symbolizing the strength of love! And while the intentions for it are good, often it is done against recommendation, interferes with the aesthetics of the structures and even endangers them. This is usually causing city officials to take padlocks down and take measures against them. What if we could help embrace this tradition to a virtual format, where you can always see your lock, where you can chose between multiple locations that have their place in your heart, where it is safe for the environment? This is how the idea of lovelocks.world appeared.
It was at the same time that we were about to participate for the first time in the NCT charity run - running against cancer https://www.nct-heidelberg.de/en/the-nct/donations/nct-run.html. So we thought how we can bring those closer together, drive people to donate to this and other charities, and in return give them a free love lock to express their love to the charity, their loved ones or anything else they wish. This is how we started our fundraising campaign for NCT
And now with Amazon Raise-up we can further extend this idea!
What it does
The platform for creating and sharing love locks has been present for the past couple of months, before this buildathon. Love locks can be bought for a fee of $2.
With this buildathon submission we have added the fundraising aspect of the platform. With it, lovelocks.world would act as a proxy, so that it can provide a different way of charities to raise funds and in return give a small gift for each donation - a virtual love lock, symbol of love. The platform allows multiple charities to be available for directing donations to. We are happy to do it without any additional taxes over it, as long as the payment providers allow it, so that the full amount of the donation goes to its recipient.
So the overall experience comes down to this: when users create their own love padlocks, at the last step, when it is expected to purchase the love lock, instead they are provided with a donation option, where user can select between 1 to 3 preselected charities by the platform. Those charities can be dynamic, or time and (virtual) location based. Once the user selects a charity, they use Amazon Pay to process their donation (Sandbox/testing environment, currently no real donations are received).
As a sign of gratitude, the platform gives the love lock for free.
How I built it
This is my first project that I used the serverless concepts. It uses S3 for serving the front end files and Lambda + API Gateway for the backend. With CloudFront in front of both. The database is PostgreSQL managed by Amazon RDS.
The UI, based on Vue.js renders a virtual fence of 10-12 rows and thousands of columns. Locks are loaded and rendered only for the visible part of the screen. When moving along the fence other locks are loaded, through a RESTful API with OData query.
The backend is exposing a RESTful API, served by a Node.js lambda function. The function talks with an Amazon RDS DB for querying and storing locks. It also invokes another Lambda function responsible for starting a headless Chrome and making a screenshot of newly created love locks, to be used as images by the Open Graph protocol.
Challenges I ran into
Because of the above way of how I built it, initially it was challenging to develop locally. At a later point I was able to accomplish a workflow that solves this in a manner that is as much closer to production as possible.
My location also made it hard to register for Amazon Pay account, however with the help from Devpost and Amazon team I was able to get a hold on to a testing environment and integrate it with.
Accomplishments that I'm proud of
I am proud that for the purpose of this project I could easily switch from the current payment provider to Amazon Pay. There are still some missing pieces, that I would be able to solve with non testing account and more tighter integration.
What I learned
I am happy that I learned more about the serverless application model, how to work with it for local development as well as prepare for staging and production environment. Any public AWS environment actually, it makes it super simple to make deployments, partially because the declarative-ness of Cloud Formation, partially because of the small compute units.
What's next for Love Locks - Spread Love, Support Charity
I would love to explore further the idea of registering as a non profit and pretty much acting as a proxy to other charities. So that every cent that is donated through our platform goes to the right receiver. So a discussion with AWS's Nonprofit team would be great start!
Built With
- api-gateway
- cloudfront
- javascript
- lambda
- node.js
- s3
- vue
Log in or sign up for Devpost to join the conversation.