Hi all, I want to create a mobile field worker data solution.
Let me explain... I work for a company that has some software used by call takers to enter information into a database about faults with electrical appliances they manufacture, sell to customers, and then provide maintenance contracts for. The company has a number of field workers (growing number) servicing these appliances, and information about the faults and customer locations is fed to them by printing off job sheets from the call taking system and then either faxing them to the engineers or the engineers drop in to the office and collect them. There are lots of problems with this, such as lost job information, incomplete forms, incorrect non validated data, the cost of printing off job sheets and also the engineers having to collect, regular phone calls to the engineers to update them on call informtion, and then the fact that all this data then has to be inputted back into another system manully. Basically I want to create a means of getting this data to them electronically. I know there are a few companies who could provide this solution but they are very expensive and possibly overkill at the moment, we could start developing our own basic system then it can grow over time. I have looked at the options for developing the client for these "electronic job sheets" and have decided upon Microsoft Pocket PC and the .net compact framework. It seems the easiest environment for developing and the PDA's can be obtained very cheaply as a package from a GSM/GPRS data carrier. The server side is where cost savings can be made and so i have decided on a linux based server side using a database backend such as PostgreSQL. It would be usefull (and preferable) to make the server side of the applicaiton portable, I have looked at Java and quite frankly I have gone off the idea, it seems too complicated and I don't need to have my application tick all the buzzword boxes - basically it doesn't need to be a fashionable solution and if it did I would run it all under Windows and .net from client to server. I have decided on Python (hopefully your advice will confirm to me it's the correct decision) I have not developed any software of this type before and the trouble I am having is deciding on how to interface between the client apps and the server side. Problem 1 - Physical connectivity how would I make the actual network connection in to the server from the client Running a VPN connection over GPRS ? Connecting to the web on the client then using web services ? The above decisions probably depend on the answer to problem 2... How to connect to the data If I have a VPN connection to the network as described above could it be just as simple as using ODBC to connect to the server and access the data like just any other database application (not knowing how network heavy this would be over a much slower connection than a LAN) Or even simpler I could just export data for the engineers into XML or .csv files and expose them using a web server the client then just connects to the server and then downloads the job data , and uploads completed job information Or (this is where the bulk of the python part comes into it), I create a network server in Python that the clients connect to this could be a two way thing then, as the client app could connect first thing in the morning and collect jobs but I could also push data to the client such as job updates and notifications making it much smarter and interactive. There are currently around 60 engineers and they will be requesting data at specific times, first thing in morning and probably midday being the most busy times where probably all engineers will be connecting at once. So if I go down the network server route it will have to handle multiple connections from clients and then connect to a database to retrieve job information for each specific engineer and then send over the connection to the client. The number of engineers is increasing steadily and so this application needs to be fairly scaleable. I have a grander plan for this, as much of the work will be done in my own time, as sort of a pet project, and if possible I would like to make the application customizable and maybe even sell to other companies although lets not run before we can walk eh :) I know this post isn't Python specific but there are some smart guys on here that could point me in the right direction or at least give me something to think about :) Thanks in advance -- http://mail.python.org/mailman/listinfo/python-list