The developer documentation right now leaves a lot to be desired, you'll have to figure a lot of things out yourself: https://developers.steem.io/
The best way to learn is probably to look at some smaller open source Steem tools on how they do it. I just looked at the two JavaScript Steem libraries dsteem & steem-js and the C++ Steem code and found everything I needed out myself.
As for monetizing upvotes, you basically use Steem as your database. Every item becomes a Steem post and that can be upvoted. And then, to fund development, you can set a percentage of the upvote rewards to go to you. That's how DTube for example does it, they take a 25% cut off the Steem upvote rewards for videos AFAIK.
RE: Steem Dapp Development