1. What is the best way to manage such project so that we won't collide?
Use a version control system. Having your code placed at a central repository which would then be used by collaborating developers is probably the best way to track of changes made to files and share code in a clean way without mailing each other 'zip' files. That being said, how you implement this in your project depends on a couple of things. Do you have problems with your code being publicly exposed/published?
If not, then head over to Google code which is basically a free project hosting solution provided by Google. You can to choose between two version control systems (VCS); SVN which is a centralized VCS and Mercurial which is a distributed VCS. Though the concept and adoption of the latter is gaining pace among the developer community I'd still recommend going with SVN since it seems to be version control of choice used all the "enterprisy" organizations out there. Learning SVN would would probably give you an upperhand over the other beginner programmers when it comes to trying out professional programming since it looks good on resume. Assuming you would be developing using Eclipse, there are plugins available for both the VCS's so it would definitely provide a pleasant experience when it comes to developing and committing your code.
If this *isn't* an open source project, you might have to shell out a bit and buy a code hosting …