Mining solves two problems: double spending and initial distribution of funds.
You need some way of addressing double-spending; otherwise people can just copy money over and over. Besides Bitcoin's system, there are two secure, distributed ways of addressing double-spending: Ripple's solution and Proof of Stake with broadcast checkpoints.
Ripple's solution is to have a handful of semi-trusted nodes called validators, which are picked by humans. They come to a consensus, and then they all sign the consensus. A client will refuse to trust the state of the network unless all of its validators have signed off on it.
Proof of Stake is a system where nodes generate blocks like normal, but instead of trying to repeatedly hash them, they use their funds as proof that they're a real node. You also need to have checkpoints regularly broadcast by a central node, because otherwise the system is susceptible to an attack where someone rewrites the entire history at once.
This is the harder of the two problems.
Initial Distribution of Funds
You also need some way to issue funds in the first place. There's a bunch of ways that you can issue initial funds: per email address, per IP address, per phone number, et cetera. The problem with this there's generally no way of implementing them in a distributed fashion.
For example, suppose you make a rule saying that a person must prove that they own a Twitter account, and then they get 100 coins. But when other nodes are checking this, half of them get a response saying that the account doesn't exist. (This has happened a couple of times in the past with Twitter.)
A good compromise solution is to have a key held by the developer that has the power to mint X coins every Y hours. Then, have a central server that issues coins according to whatever policy you want.