Managing Software Projects with freelancers can be a challenging and demanding job. You can consider your self in a real company and your the CEO of it. it Needs daily tracking of progress and work closely with freelancers to chive the project objective.
First, before going to develop and programming the app or the website. If you took some time and explain to the freelancer what is the purpose of this project and what is the project objectives it can help him see the big picture and increase his understanding which allow him to think with you and try to help you with estimating the need for the project or he can been in a similar project so he might give you something useful.
after explaining the business needs, start with listing the requirement need. What you need the system provide you with? What are the features you want to include in the system?
Remember that the freelancer does not live in your mind so he don’t know what you want unless you explain it to him.
To agree on the deadline and what features you want, list them down on a piece of paper or a word document. Try to look them over and over. Ask the people who will be the users of the system what they think about these requirement, what they would like to see in the system. Remember that as the more they participate, the more they feel as a part of the team and the chance they will change to this system and use it will increase.
You can also use this excel sheet to track the requirement. This way you can agree on a deadline on the project and the cost. Remember that not always you write as a requirement will be always the optimal solution. You might need to do changes or additions which cost money and delay the deadline. So have some extra money on the budget and at least 2-3 weeks to the deadline as a reserve.