[Zope] Help in deciding approach to Web App

John Schinnerer john at eco-living.net
Sun Dec 4 20:31:48 UTC 2011


Aloha,

Very briefly, from what you describe, it looks like you are dealing with 
large numbers of complex objects (your 'tools') that interact with each 
other - and with some other elements that are going through this 
workflow process? And a context for the process? ...not sure of that part...

In any case, this looks (to me anyhow) like a very object-oriented 
system you are modeling so an object oriented approach and language 
would seem most suitable. Python is one reasonable language option; zope 
for the web publishing aspect of the project would fit well with that. I 
haven't worked with other OO languages enough to usefully compare.

It also sounds to me like the web publishing is the lesser part of 
this...? That is, the workflow of interacting tools is the real 'app' 
here, a process which does not all get shown somehow on a web page...or 
does it? Or just the outcomes?

LAMP platform is so common and cheap that it's all a lot of people know 
about. It can be used well, and, it is all too easy to make horrible 
hacks and Frankestein monster apps in PHP/MySQL.

Meaning, a highly structured (yet powerful) OO programming language will 
support you in avoiding that.

Also, for development (or just to explore if python+zope might meet your 
needs) you don't need any hosting, you can install python+zope on your 
development system and try it out.

best wishes...
John S.


On 12/03/2011 07:12 PM, Sareesh Sudhakaran wrote:
> I have a personal project - a web application I wanted to develop - but
> I'm confused on which route to take. I am not under any time constraint.
>
>
> *About the App:*
>
> The best I can describe it is as a kind of expert system (but not AI)
> that needs to find the best workflow for a process, given a set of
> initial and final parameters. E.g. a 'capsule' of data must pass through
> many 'tools' or 'environments' to reach a desired output - something
> like a very complicated car wash.
>
> Let's say there are many tools that can be used at various stages in the
> process. I have estimated there are at least 500 tools as of now, and it
> is bound to grow in the future as newer tools are introduced. Existing
> tools will also have version updates.
>
> Each tool, on average, has at least 100 properties that define the tool.
> Some of them have as high as 1000 unique properties. Some of these tools
> are linked to each other - e.g if one tool is selected, there are only n
> tools that can correspond to it for the next step in the process. I also
> have the problem of 'matching' the tools for analysis. E.g. Tool A might
> have only three fixed rpms - 100, 200 and 500, but Tool B might have
> rpms from 20 to 2000. I'm not sure how I can construct a database
> without spelling out each number, as in the example above.
>
> The total number of tools needed for the process can be defined at the
> beginning, however, it will change as the application becomes more
> complex in the future. I plan to address every contingency in the
> process. The idea is - if the user inputs the initial parameters and the
> desired outcome (another set of parameters), the app must find the
> 'best' path - sort of like a decision tree. The best path can be the
> fastest, cheapest, etc. I would like the user to choose what is best for
> him/her.
>
> Unfortunately, parameters might change, relationships might change (but
> not regularly) - the 'rules' I will be using might be revised for better
> accuracy in prediction.
>
> I also need to track each user's path and solutions' for future
> reference (but no personal details except username and email address for
> logging in). Maybe when the app is up and running, I'd like to make it
> more democratic, with users contributing to refining the logic/rules
> involved.
>
> If possible, I would also like the app to output a graphical flowchart
> at the end showing the workflow with all tools grouped in an easy to
> understand layout.
>
>
> *My questions:*
>
>  1. Will the app be better served with a relational DB like mySQL or an
>     Object database? After a lot of research I've guessed that my
>     particular case might be better served with Python and Zope/ZODB.
>     But I might be wrong? Maybe PHP+mySQL or Django is a better fit?
>  2. Can anyone provide general advice on how to go about beginning such
>     a project in ZOPE. Which is the best place to start learning for a
>     newbie?
>  3. Can anyone recommend a good shared hosting provider that supports
>     Zope fully but is not expensive?
>  4. Is there a module or app that is open source that I can use to
>     output a graphical flowchart based on the results, or will I be
>     better served programming it from scratch with Python?
>
> I would appreciate any help in getting started. Thank you in advance. I
> have tried most online forums but have not good any productive answers.
> Most of the answers I got were pro-PHP+mySQL.
>
>
> Adam
>
>
>
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> https://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>   https://mail.zope.org/mailman/listinfo/zope-announce
>   https://mail.zope.org/mailman/listinfo/zope-dev )

-- 
John Schinnerer - M.A., Whole Systems Design
--------------------------------------------
- Eco-Living -
Whole Systems Design Services
People - Place - Learning - Integration
john at eco-living.net
http://eco-living.net


More information about the Zope mailing list