In past projects, I have tried to take payments through crypto, but found that all of the payment systems were really complicated for me, and the potential buyers. I was always interested in blockchain tech and crypto, so I decided to make my own payment system that's friendly for the buyer and seller.
What it does
Allows merchants to sell their product with Bitcoin with minimal coding experience. Buyers sign up with Oauth2, (google, github, and discord). Buyers can then give Coin-Tunnel their bitcoin wallet public or private keys or opt to make a cloud wallet. The keys are then encrypted and then stored in MongoDB. (Nothing confidential is ever stored directly in MongoDB, it's all either encrypted or hashed)
How I built it
I used Node.JS to build most of the API and web app, while using the
bitcoinjs-lib NPM packages to contact the Bitcoin blockchain. I used the EJS engine to render my HTML webpages, and used a website builder to get the HTML for the pages. (I'm not that good at HTML/CSS)
Challenges I ran into
Some challenges that I ran into, was trying to use Google's Oauth2 platform, broadcasting transactions and new wallets to the bitcoin network, and managing user's API keys.
Accomplishments that I'm proud of
I'm really proud of creating an API service that's easy to use and managing API keys securely. (I learned how to hash these keys and store them in Mongodb). I'm also proud of the web app that I built, and all of the functionality has.
What I learned
I learned how to manage API keys, gained a lot more insight into how the bitcoin network works, and also learned how to encrypt, decrypt, and hash info.
What's next for Coin Tunnel
I would really like to make a way for buyers that haven't signed up to still be able to use this platform. (DONE!!!) Add alt-coin support, (litecoin is in the pipes)