steemgifts, the technical part.
Steemgifts is a steem app that allows you to create an account and get a pretty printable gift card along with it. This is usefull for adoption and giving people something physical instead of like "hey uh here is an account with some money inside."
If you're reading this, it means you're here for the technicals and get an explaination of some of my technical choices. If you did not already, I suggest you look at Fredrikaa's post about steemgifts. Note that the project is open source so you can red the source code as you go.
Disclamer : I'm not a nodejs expert nor a steem expert, so I had to learn stuff on the go which may be heresy from your point of view :)
Why we did not use steemconnect
It's a good question, and probably the one that's gonna get asked the most. Well it's for a simple reason : steemconnect doesn't have an api for account creation(yet) so if we wanted to integrate everything within the same website we had to ask for the active key.
Trust us we would have used steemconnect if we had the choice, we even created a steemgifts app (aka an account) for 6 steem which makes us sadder every day with the price going up.
Why is all the money powered up
We really wanted to make it as simple as possible. One of the first version had 3 fields :
- Delegated Steem
- Steem powered up
But in the end we wanted to make the process as simple as possible. so we ended up going for the account creation with no delegation and with everything powered up.
Why can't I just generate a card for an account that I already created
What modules do you use ?
I use :
- Jimp for creating the card (tutorial coming for that because boy it wasn't easy)
- Steemjs for all the steem related stuff
- express for all the web stuff
- xss for xss protection
- nodemailer to send mails
- qr-image to generate the password qr code
- email-validator to check the validity of an email
Why don't you display the image when you're done ?
If I display the card image directly, it means that anyone can access it, and I can't take that risk. In future versions if we have a login system why not. But for now it's a no.
More questions ?
Feel free to hit me up on steemit.chat :)