Only charge what you believe your efforts worth considering the requirement and the time it takes to develop. It can be a fixed payment or a monthly payment or milestone based payment. Depending on the nature of the project and your preferences. It's a challenge when it comes to determining the cost as a freelancer because the rates are not standardized and most people keep it as a god's secret. So I've adopted the above model which works for me and people find it fair too.