Help me pick a framework!
Moderator: General Moderators
- Ambush Commander
- DevNet Master
- Posts: 3698
- Joined: Mon Oct 25, 2004 9:29 pm
- Location: New Jersey, US
Help me pick a framework!
Obviously, there's no one-size-fits all. Therefore, I'm going to ask you guys for some recommendations based on the nature of the project I have been enlisted to do. Learning a framework is a very time-consuming process so I'd rather not pick the wrong framework and have it fighting with me the entire way. Know an app that fills these needs? Even better!
The application will be something like this:
Workflow Software for a School Newspaper
Background:
The essential timetable for producing a newspaper is thus: editors for each section of the newspaper create lists of articles that they would like to have in the next issue. The Editors-in-Chief approve the list, and then they then notify their writers through email the topics. The writers write the articles and email them back, and by a certain time all needed articles for the newspaper are done.
The editors then go through the first iteration of revising and editing the articles. After they've finished, they get submitted to the editors in chief for superreview. With that done, the content can now be laid out on the spreads. Final superreview, and then the spreads get sent for publishing.
There are a few dedicated artists for illustrating stories, stock photos are also occasionally used. Advertisements also must be managed.
The Problem:
Without a centralized repository for documents, the drafts, spreads and images are notoriously fragmented throughout many places such as email account and library computers. Ever gone home from a layout to do a few final touchups and realize that the advertisement was left on the desktop of a library computer? Overzealous staff accidently delete your files? Need to get that photo that's on that other person's email account? Sorry mates, you're out of luck.
Furthermore, having the documents scattered all over the place makes it a lot more difficult to publish a web-version. Doing this sort of thing becomes an exercise of copy and paste, a tedious process that isn't very appealing.
The Solution:
In the past, we've used FTP to some extent for thigns that absolutely must be accessible everywhere, for example, the final layouts. However, we've found that FTP is not the most intuitive interface, and something easier to use would probably nicer for people.
The solution, then, is to create a web application that manages the workflow of the newspaper. The amended workflow would then go like this:
1. At the start of the year, the application is fed the new set of contact information (especially emails) for all staff members, as well as the departments they are assigned to. Accounts are given to all staff.
2. At the beginning of a newspaper cycle, the editor-in-chief sets deadlines for the articles on the web interface and all editors automatically get notified (most actions will result in automatic notification)
3. When editors have article lists, they post them on to the web-interface
4. The editor-in-chief reviews the lists and approves/disapproves items
5. Editors then can click a "send topics" button which notifies all writers under their jurisdiction which topics are available
6. Writers log on and accept topics: as they are accepted, they become inaccessible to other writers (first-come-first-serve). They are notified of article deadlines.
7. When writers have finished their articles, they copy paste the text into a rich text editor (which preserves formatting) and saves them on to the website.
8. Editors then are able to access initial copies and perform the first revisions. They make the changes to the draft and save. Using version history, we now have the original writer's version, and the amended editor's version. A "difference" feature will be enabled allowing anyone with proper priviledges to see exactly what was changed.
9. After initial edits, the editors-in-chief perform a final review, making minor corrections as necessary
10. The version is finalized, and accessed by editors during layout to be placed on spreads. We can optionally mandate that any formatting edits be merged back into the central repository
11. With one click, all approved articles can automatically be published on to an online Hawkeye website, perhaps at the same time or before the publishing of the hard-copy newspaper. There is also the possibility for out-of-cycle stories that get published only on the webiste.
So... any comments? I'd also like estimates on how big the application would have to be to fit these needs.
The application will be something like this:
Workflow Software for a School Newspaper
Background:
The essential timetable for producing a newspaper is thus: editors for each section of the newspaper create lists of articles that they would like to have in the next issue. The Editors-in-Chief approve the list, and then they then notify their writers through email the topics. The writers write the articles and email them back, and by a certain time all needed articles for the newspaper are done.
The editors then go through the first iteration of revising and editing the articles. After they've finished, they get submitted to the editors in chief for superreview. With that done, the content can now be laid out on the spreads. Final superreview, and then the spreads get sent for publishing.
There are a few dedicated artists for illustrating stories, stock photos are also occasionally used. Advertisements also must be managed.
The Problem:
Without a centralized repository for documents, the drafts, spreads and images are notoriously fragmented throughout many places such as email account and library computers. Ever gone home from a layout to do a few final touchups and realize that the advertisement was left on the desktop of a library computer? Overzealous staff accidently delete your files? Need to get that photo that's on that other person's email account? Sorry mates, you're out of luck.
Furthermore, having the documents scattered all over the place makes it a lot more difficult to publish a web-version. Doing this sort of thing becomes an exercise of copy and paste, a tedious process that isn't very appealing.
The Solution:
In the past, we've used FTP to some extent for thigns that absolutely must be accessible everywhere, for example, the final layouts. However, we've found that FTP is not the most intuitive interface, and something easier to use would probably nicer for people.
The solution, then, is to create a web application that manages the workflow of the newspaper. The amended workflow would then go like this:
1. At the start of the year, the application is fed the new set of contact information (especially emails) for all staff members, as well as the departments they are assigned to. Accounts are given to all staff.
2. At the beginning of a newspaper cycle, the editor-in-chief sets deadlines for the articles on the web interface and all editors automatically get notified (most actions will result in automatic notification)
3. When editors have article lists, they post them on to the web-interface
4. The editor-in-chief reviews the lists and approves/disapproves items
5. Editors then can click a "send topics" button which notifies all writers under their jurisdiction which topics are available
6. Writers log on and accept topics: as they are accepted, they become inaccessible to other writers (first-come-first-serve). They are notified of article deadlines.
7. When writers have finished their articles, they copy paste the text into a rich text editor (which preserves formatting) and saves them on to the website.
8. Editors then are able to access initial copies and perform the first revisions. They make the changes to the draft and save. Using version history, we now have the original writer's version, and the amended editor's version. A "difference" feature will be enabled allowing anyone with proper priviledges to see exactly what was changed.
9. After initial edits, the editors-in-chief perform a final review, making minor corrections as necessary
10. The version is finalized, and accessed by editors during layout to be placed on spreads. We can optionally mandate that any formatting edits be merged back into the central repository
11. With one click, all approved articles can automatically be published on to an online Hawkeye website, perhaps at the same time or before the publishing of the hard-copy newspaper. There is also the possibility for out-of-cycle stories that get published only on the webiste.
So... any comments? I'd also like estimates on how big the application would have to be to fit these needs.
- gkwhitworth
- Forum Commoner
- Posts: 85
- Joined: Tue Sep 05, 2006 8:28 pm
- Location: Wasilla, Alaska
- Christopher
- Site Administrator
- Posts: 13596
- Joined: Wed Aug 25, 2004 7:54 pm
- Location: New York, NY, US
I don't know if the framework choice would matter much for an app like that. It seems like a fairly simple article management app with a couple of user types. Since it is not doing publication management and works on a first-come-first-serve basis it should not be too big. But it can easily balloon if you start assigning things and managing the larger process.
(#10850)
- Ambush Commander
- DevNet Master
- Posts: 3698
- Joined: Mon Oct 25, 2004 9:29 pm
- Location: New Jersey, US
Hmm... not sure what you mean. Am I being overly ambitious?All I have to say is, wow, and organization.
Unfree, not an option. We've got a tight budget.MS SharePoint
That seems like a fairly accurate analysis. The current workflow idea leaves little room for changing the process, which could cause problems in the future. It is doing some publication in terms of web publication.I don't know if the framework choice would matter much for an app like that. It seems like a fairly simple article management app with a couple of user types. Since it is not doing publication management and works on a first-come-first-serve basis it should not be too big. But it can easily balloon if you start assigning things and managing the larger process.
Hmm... which parts of the process should be abstracted?
- Christopher
- Site Administrator
- Posts: 13596
- Joined: Wed Aug 25, 2004 7:54 pm
- Location: New York, NY, US
It seems like there are two management spheres -- article management and publication management. I would tackle article management first because that seems the most straightforward. Try to get it as flexible possible.Ambush Commander wrote:Hmm... which parts of the process should be abstracted?
(#10850)
- Ambush Commander
- DevNet Master
- Posts: 3698
- Joined: Mon Oct 25, 2004 9:29 pm
- Location: New Jersey, US
Well, an article is an article. Probably with an attached history. But that's pretty much all there is to it. That also means that the workflow logic does not belong in the article... hmm...
So, let's get back on topic. Anyone used any frameworks, and what were your impressions of them? (keep in mind my style of coding, if you even know what that is
(hint, I'm somewhat of a perfectionist))
So, let's get back on topic. Anyone used any frameworks, and what were your impressions of them? (keep in mind my style of coding, if you even know what that is
- Christopher
- Site Administrator
- Posts: 13596
- Joined: Wed Aug 25, 2004 7:54 pm
- Location: New York, NY, US
I have some rough opinions. Symphony is just too much structure for me. It's design is pretty good but I tire of having to build everything. It just does not hit any mark I am aiming at. Cake is nice if you want to do what it does well which are smallsh "social" sites. I find the code ugly and trying to extend it even uglier. I am still not sure about the Zend Framework. I have pestered them pretty hard to add "advanced" features, but they are focused on the low end programmers so it is not a platform for interesting stuff right now (and maybe never). I haven't seriously tried CodeIngiter on a website, but from my peek I wasn't interested. Most of the other PHP frameworks seem to have faded over the past year.Ambush Commander wrote:So, let's get back on topic. Anyone used any frameworks, and what were your impressions of them?
From my expreience of your somewhat perfectionism, I would not recommend that you use anyone else's code.Ambush Commander wrote:(keep in mind my style of coding, if you even know what that is(hint, I'm somewhat of a perfectionist))
(#10850)
-
alex.barylski
- DevNet Evangelist
- Posts: 6267
- Joined: Tue Dec 21, 2004 5:00 pm
- Location: Winnipeg
What would you consider "advanced" features???arborint wrote:I have some rough opinions. Symphony is just too much structure for me. It's design is pretty good but I tire of having to build everything. It just does not hit any mark I am aiming at. Cake is nice if you want to do what it does well which are smallsh "social" sites. I find the code ugly and trying to extend it even uglier. I am still not sure about the Zend Framework. I have pestered them pretty hard to add "advanced" features, but they are focused on the low end programmers so it is not a platform for interesting stuff right now (and maybe never). I haven't seriously tried CodeIngiter on a website, but from my peek I wasn't interested. Most of the other PHP frameworks seem to have faded over the past year.Ambush Commander wrote:So, let's get back on topic. Anyone used any frameworks, and what were your impressions of them?From my expreience of your somewhat perfectionism, I would not recommend that you use anyone else's code.Ambush Commander wrote:(keep in mind my style of coding, if you even know what that is(hint, I'm somewhat of a perfectionist))
The one appealing thing about Zend is it's modular simplicity. If I don't want to use their MVC I don't have too and the dependencies like PEAR don't exist - That I could tell anyways.
Zend has it right IMHO as it's framework (not a library) and not an application framework, like Mambo, etc...
- Christopher
- Site Administrator
- Posts: 13596
- Joined: Wed Aug 25, 2004 7:54 pm
- Location: New York, NY, US
Dependency Injection and O/RM are the two big ones that spring to mind.Hockey wrote:What would you consider "advanced" features???
Well there's not really much MVC support there so it is pretty easy not to use it.Hockey wrote:The one appealing thing about Zend is it's modular simplicity. If I don't want to use their MVC I don't have too and the dependencies like PEAR don't exist - That I could tell anyways.
(#10850)
-
alex.barylski
- DevNet Evangelist
- Posts: 6267
- Joined: Tue Dec 21, 2004 5:00 pm
- Location: Winnipeg
What class(es) are you refering to in terms of DI???arborint wrote:Dependency Injection and O/RM are the two big ones that spring to mind.Hockey wrote:What would you consider "advanced" features???
Well there's not really much MVC support there so it is pretty easy not to use it.Hockey wrote:The one appealing thing about Zend is it's modular simplicity. If I don't want to use their MVC I don't have too and the dependencies like PEAR don't exist - That I could tell anyways.Yeah, the components are like a better PEAR.
As far as I could tell, Zend_Config and the DB abstraction layer are relatively dependancy free???
Code: Select all
require_once 'Zend/Config.php';
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config(Zend_Config_Ini::load('/path/to/config.ini', 'production'));How would that code become any more or should I say less dependant???
OR/M although I agree it would be nice...I don't think (after ALOT of thought) it's a good way to do things...current implementations anyways. I'm thinking about something new...perhaps a meta language like EBNF that allows easier mapping of object models to complex many to many type relationships found in a relational model.
Until such a thing is invented or I discover my own method, I think OR/M is over kill for anything expect rapdily and easily ALTERing DB tables using code bases. Just my opinion though
I think I've seen you raising your conerns about DI, is that you expressing your thoughts about their Authentication module???
Personally, everyone I have ever seen has it wrong, again, I'm working on one which IMHO does it right. So yea I'd certainly like to see some things done differently in Zend...in addition to their file naming...I hate using camel caps, even in filenames...it's so anti-linux it hurts.
Although I've adapted to the Zend_SoandSo I like that...that makes pragmatic sense
Simplicity is beautiful...even more so in non-compiled environmentsWell there's not really much MVC support there so it is pretty easy not to use it. Yeah, the components are like a better PEAR.
MVC itself is fairly simple as I understand it...what more could Zend do to implement a more full featured MVC framework???
Without imposing anything on the View (as I hate frameworks which force a certain HTML design/layout on you and won't even consider them remotely despite time saving benefits - Prado comes to mind if I understand it correctly).
[/quote]
- Ambush Commander
- DevNet Master
- Posts: 3698
- Joined: Mon Oct 25, 2004 9:29 pm
- Location: New Jersey, US
Uh oh, derailed topic.
Hmm... that sounds precisely like what one would have to do with a framework. But I don't like extra work and I will set aside my perfectionism for a little bit.
Well, I only have a problem when either 1) the code doesn't work or 2) the code doesn't do what I want it to. Then I can be quite disappointed if the internals aren't well-written. But if it works well enough that I never have to peek under the hood, I'm savvy.From my expreience of your somewhat perfectionism, I would not recommend that you use anyone else's code.
Hmm... that sounds precisely like what one would have to do with a framework. But I don't like extra work and I will set aside my perfectionism for a little bit.
Part of the idea of using a framework is that a lot of the work is already done for me. Otherwise, I wouldn't bother with the hassle of having to use another person's code. So I've already ruled out Zend: I don't want to have to implement user registration or authentication (save that for AuthTools), and I don't want to just be given a loose set of tools, well, sure, why not, but there's no reason why I can't use Zend and something else.I have some rough opinions. Symphony is just too much structure for me. It's design is pretty good but I tire of having to build everything. It just does not hit any mark I am aiming at. Cake is nice if you want to do what it does well which are smallsh "social" sites. I find the code ugly and trying to extend it even uglier. I am still not sure about the Zend Framework. I have pestered them pretty hard to add "advanced" features, but they are focused on the low end programmers so it is not a platform for interesting stuff right now (and maybe never). I haven't seriously tried CodeIngiter on a website, but from my peek I wasn't interested. Most of the other PHP frameworks seem to have faded over the past year.
Zend has an authentication module? O.oI think I've seen you raising your conerns about DI, is that you expressing your thoughts about their Authentication module???
-
alex.barylski
- DevNet Evangelist
- Posts: 6267
- Joined: Tue Dec 21, 2004 5:00 pm
- Location: Winnipeg
Zend is the way to go IMHO...poor docs though, especially in MVC I had to look at some code before I finally got things rolling, even still I have some questions I would like answered.Ambush Commander wrote:Uh oh, derailed topic.
Well, I only have a problem when either 1) the code doesn't work or 2) the code doesn't do what I want it to. Then I can be quite disappointed if the internals aren't well-written. But if it works well enough that I never have to peek under the hood, I'm savvy.From my expreience of your somewhat perfectionism, I would not recommend that you use anyone else's code.
Hmm... that sounds precisely like what one would have to do with a framework. But I don't like extra work and I will set aside my perfectionism for a little bit.
Part of the idea of using a framework is that a lot of the work is already done for me. Otherwise, I wouldn't bother with the hassle of having to use another person's code. So I've already ruled out Zend: I don't want to have to implement user registration or authentication (save that for AuthTools), and I don't want to just be given a loose set of tools, well, sure, why not, but there's no reason why I can't use Zend and something else.I have some rough opinions. Symphony is just too much structure for me. It's design is pretty good but I tire of having to build everything. It just does not hit any mark I am aiming at. Cake is nice if you want to do what it does well which are smallsh "social" sites. I find the code ugly and trying to extend it even uglier. I am still not sure about the Zend Framework. I have pestered them pretty hard to add "advanced" features, but they are focused on the low end programmers so it is not a platform for interesting stuff right now (and maybe never). I haven't seriously tried CodeIngiter on a website, but from my peek I wasn't interested. Most of the other PHP frameworks seem to have faded over the past year.
Zend has an authentication module? O.oI think I've seen you raising your conerns about DI, is that you expressing your thoughts about their Authentication module???
Their working on an Authentication module, but every proposal I have seen has been trashed for one reason or another...
I'm pretty sure I've seen Arborint on there voicing his concerns about the authentication systems already proposed...
Authentication is going to be difficult to integrate into a system, by virtue of the fact it's so tightly integrated into your system, so really it's almost application specific. Then there is the issue of data storage mediums to be used. Ack...it gets ugly quickly...
Somethng simple is what is needed, but so simple it's almost pointless to be implemented as a class or library and might as well just be hand written each time - thats the crux of the authentication problem right there.
- Ambush Commander
- DevNet Master
- Posts: 3698
- Joined: Mon Oct 25, 2004 9:29 pm
- Location: New Jersey, US
Yep. It's not even in Beta stage yet. Another reason to avoid it.Zend is the way to go IMHO...poor docs though, especially in MVC I had to look at some code before I finally got things rolling, even still I have some questions I would like answered.
Oh dear. (Thinks of aspirations of a framework with authentication built-in. And AuthTools).Their working on an Authentication module, but every proposal I have seen has been trashed for one reason or another...
I'm pretty sure I've seen Arborint on there voicing his concerns about the authentication systems already proposed...
Authentication is going to be difficult to integrate into a system, by virtue of the fact it's so tightly integrated into your system, so really it's almost application specific. Then there is the issue of data storage mediums to be used. Ack...it gets ugly quickly...
Somethng simple is what is needed, but so simple it's almost pointless to be implemented as a class or library and might as well just be hand written each time - thats the crux of the authentication problem right there.
I've still got the idea that as long as you modularize the code enough, a real authentication system could be integrated quite easily with a system. At the very least, we could take a long hard look at the word "authentication" and figure out what it really is all about.
Is expecting authentication to come with a prospective framework too much to ask? I guess I don't mind surrendering more control to the framework...
-
alex.barylski
- DevNet Evangelist
- Posts: 6267
- Joined: Tue Dec 21, 2004 5:00 pm
- Location: Winnipeg
More reason to supoprt it IMHOYep. It's not even in Beta stage yet. Another reason to avoid it.
Think about it, it's the official framework of the people actually making money from PHP as a language. All good (by good I'll explain) frameworks typically come from the language vendor.
By good, I mean effective at getting a job done and well documented, supported, etc...
MFC is a god example...it's not the best framework, OWL was better, but MFC dominated and still does in Windows development.
I dunno I think in the long run we'll Zend as the final framework, unless I can get people helping me on my own *coughs* in which case, obviously mine would kick some butt
I think so...it's to loosely defined and no one wants to accept what any one else has to say, so...yeaIs expecting authentication to come with a prospective framework too much to ask? I guess I don't mind surrendering more control to the framework...
For instance, authentication for me is just proving you are who you say you are, the method or technique(s) used are another layer all togather:
1) Retina scanning
2) Finger printing
3) Voice recognition
4) DNA sampling
5) Challenge/response
And so on...the problem arises when you look at the situation from a practical perspective. On the internet, we'll likely be using user/pass or some combination of that sorts for some time to come...
So assuming simple user/pass will suffice, which most libraries do, everyone starts throwing in their kitchen sink. For example, you lost my interest in the first 5 minutes of reading your first public document.
All the CAPTCHA plugins, etc...way over board IMHO...I don't want plugin support for an authentication system, but you should know from experience that without the bells and whistles, trivial authentication is just that it's trivial...not worth using a library...
Obviously this is my opinion and nothing more and many people will likely argue they'd want those advanced features. But as a low level developer I like starting from scratch and builind on top of that. The one thing Arborint advocates loudy and i agree 110% is the issue of component/module/plugin, etc dependencies...
God are they annoying and yet they are almost the very backbone of open source development. The biggest change I had to deal with when switching over to Linu when I first started playing in Perl and PHP were all the dependancies. Windows follows a more monolithic approach using dynamic runtime invocation as opposed to static compile time inclusion.
Meaning dependancies are hidden from you when developing windows apps IMHO anyways. PEAR is a good example of bad libraries code.
Every object depends on another object or two, which is fine, but the code is so sloppy (appears to be anyways - materialistic perspective) I just want to use the PDF class because I'm running low on time in a project, but instead I have to include everything but the kitchen sink. So I use independant libraries which are likely better maintained anyways (phpMailer, fpdf, etc...).
I hate to say it, but what is needed is a commercial quality and possibly partially funded library or framework which is well tested, well written, well documented and everything is well done, then dependancies wouldn't bother me so much. PEAR seems to open source and with the exceptions of Linux and other *popular* libraries open source IMHO suggests experimentation, beta this and beta that.
It's a goal I've been working on for years to accomplish - it's a helluva task I tells yea!
I like Zend for that reason, it atleast appears to be on the right track...
Anyways I'm rambling, just putting my 2 cents in there