There are several techniques for determining the budget for a project. One of the most popular ones is breaking down the project into small tasks, determining what technologies you will need, and then estimating the time for each task and the average rate of developers needed to complete the project.