I've been working with GPS systems for 3+ years, so I can help you out.
Typical accuracy of GPS devices is 10~30 meters depending on the number of satellites used to acquire the GPS position. I can help you select an device appropriate for your requirements.
There is open source software that works quite will it is called OpenGTS, it is written in Java, and supports what you have described, and more. I have installed, configured, and customized OpenGTS many times. It is the software I reccomend.
Please contact me on the Freelancer site if you have any questions or further requirements