Question

I'm about to start a fairly large project for a mid-sized business with a lot of integration with other systems (POS, accounting, website, inventory, purchasing, etc.) The purpose of the system is to try to reduce current data siloing and give employees role-based access to the specific data entry and reports they need, as well as to replace some manual and redundant business processes. The system needs to be cross-platform (Windows/Linux), open source and is primarily for LAN use.

My experience is mostly PHP/web/app development, but I have developed a few LAN apps using Java/Servoy (like Filemaker). I found Servoy to be very rapid and to easily make use of different data providers (DB products), but it's not open source, and any non-standard development is in Java/Swing (which is verbose and takes a lot of time).

I'm interested in learning Python/Django or Ruby/Rails - but I'm not sure if these are the best solutions for building a mission critical data entry/reporting LAN app. Is a web client/server really a good choice for this type of application?

Thanks in advance for any tips/ advice.

Was it helpful?

Solution 4

Thank you everyone for your helpful answers! I think they address most of the issues raised by the question. But I think the key to the "final answer" (IMO) rests on the "multiple database" aspect. Railsninja suggested a piece of software he used for a project to extend rails functionality in this manner - thank you for the link! That could have been a possible solution - but it sounds like it was used for one project, and I worry about the testing since it is not a part of the mainstream Rails build.

Then I found out that multi-db support is just around the corner for a Django core update (eta late August 2009). So I think I am going to dive in to the project with Django.

OTHER TIPS

If you're comfortable with a LAMP-style stack with PHP, then there's no reason you can't use either Django or Rails. Both are mature, well documented platforms with active, helpful communities.

Based on what you've described, there's no reason that you can't use either technology.

Both of these technologies are certainly mature enough to run Mission Critical applications, you just need to look at the number of big sites already on the internet that are running these technologies, so from that point of view you shouldn't be concerned.

You only need to worry about your learning curve, if you feel confident in learning them well enough to write quality code for your client then go for it. Have a look at each of them, decide which technology you would prefer and get coding.

Hope your application goes well :)

You could also take a look at ExtJS for the frontend. I've made an ExtJS frontend for a company Dashboard, and using a Django backend managing the URL dispatching, the ORM and the data retrieval (communicating with the frontend with JSON webservices) and users love it, because it's almost as interactive as a local application (use something modern like Firefox 3.5, Chrome, Safari 4 or Explorer 8 for better javascript performance) but easy to manage for programmers and administrators (no installations, no local backups, no upgrade problems, etc.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top