To apply you must first have a Google login and create a profile on the GSoC site. Then find a mentoring organization that interests you. Each mentoring organization suggests projects. You can then discuss the project with the mentoring organization to find out more about it.
TheUsers' Guide tells you how to apply by writing proposals. Each proposal is submitted to the sponsoring mentoring organization. You can submit up to 20 proposals.
If you are accepted you will be paired with a mentor who will guide your programming project.