Website CMS:Requirements
Kubla » Requirements
User Requirements
I don't expect this to be perfect before we begin, just to serve as a guideline so we're all on the same page. Please ask questions.
I've prefixed requirements with (?) if I'm not sure it should be a requirement or not. Edit as appropriate. :) Please distinguish "must have" and "nice to have" features.
Outstanding Questions
none
Content Creation
- Directories and html files can be created through a form
- Other file types are uploadable through a web form
- Content creation is not restricted to locale/language (requirement created from current system)
Content Management
- Static and dynamic content can be modified as plain text in textareas.
- Dynamic content only can be modified with wiki markup
- NOTE : JsToolbar allows wiki/wysiwyg editing and produces xhtml code, plus it has a dynamic xhtml source editing to add more complex markup.
- All changes to static content will be tracked and archived.
- An easy way to view and revert to older versions of static content. (low priority)
- An easy way to compare what changed between two versions of static content. (low priority)
- Input will be accepted in any locale/language currently used on mozilla.com.
- A way to indicate that an en-US page should be translated into all languages.
Presentation / Publishing
- Multiple pages for a single language can be published with one click
- Administrators can push an entire language live with one click
- localizable interface
- RSS feeds of
- Changes to pages when a writer requests review from a leader
- Per language feed of content changes
- Feed for mozilla.com bug activity (pending work announcement)
- List of pages waiting to be translated
- A global rss feed
- others?
Administrative Process
- A user can be in one of three groups:
- Writers (can edit static and dynamic content) (approx 40-80 people)
- proofreaders are in this group
- Can edit any static or dynamic content
- Requests to go live go to a leader for review
- Leader
- Can edit any content, but can also request a push live
- Administrators (approx 5 people)
- Can push changes live
- Can email all active members through a single form
- Writers (can edit static and dynamic content) (approx 40-80 people)
- Users can be added to the system by administrators
- Users can be disabled
- Users will have their own usernames and passwords to login
- Simplified front end for Bugzilla (similar to IT requests (would require integration with bugzilla japan))
System Requirements
General
- Separation from the site. The dynamic/news content is a fuzzy area here, but we definitely don't want something that integrates into the site too completely. Meaning, when a request for a plain (no dynamic data) page comes in, it shouldn't have to hit any CMS files to load variables/templates/etc.
Can we build on an existing CMS?
I've had discussions with a variety of people about this, and it's always a gray area. One CMS seems great, but doesn't do one or two important things - another has some features we like, but is written in ASP. I reviewed several CMSs (narrowed down by pages like CMS Matrix), and most of the candidates fell short pretty quickly. People I talked to sent me some other potentials, but they didn't fit our requirements either. Some of the common problems included:
- Marrying the site to a database, meaning the CMS stores all our data in a database. Flat files are definitely a requirement of the CMS, so these wouldn't do.
- A lot of CMSs have their own template files and URL structures, that wouldn't be compatible with what we have now (more on why what we have is good below)
- A lot of the large CMSs (typo3, I'm looking at you...) could probably do what we need, but I don't think the trade off in complexity is worth it.
Right now, mozilla.com is setup well:
- locales are divided up by directory to allow easy management (both of files and permissions)
- automatic language fall back to english (but if a new file is created in the requested language, it will be given instead automatically)
- lightweight code - there is no heavy framework included on the pages
- consistent headers/footers (templating)
- ability to tweak menus/headers/etc. on a per language basis
- etc.
I have no doubts we could modify an existing CMS to fit our needs, but I'm worried about the time commitment, and afterwards ending up with something that isn't ideal. There may be a perfect CMS out there, but finding it can be an exercise in futility. (The sad result being, we add to the clutter with our own).
I'm hoping we can focus on usability and simplicity with our own CMS. By talking with localizers and others that actually use it, we have a good idea of what we need, and I'd like to stay close to those requirements.
Public outcry has suggested we look into building on another CMS more closely. Alright then - the following are all opinion, etc. Feel free to add your own thoughts.
Alfresco
- Bigger and more complex than I'd like, but it does hit most of what we want (edit flat files, ability to upload new versions of flat files, versioning, etc.)
- I don't see a way to edit what we're calling "dynamic data" but that's a fairly specific requirement, especially with the l10n, so I expect we'll have to add that on to any software we choose.
Campsite
- Multilingual news publishing - this would work for our dynamic requirements
- Seems way too complex - it doesn't follow our workflow. It has Publications > Issues > Sections > Articles - really, we just want Sections > Articles.
- Supports attaching images, "subscribers", etc - stuff we don't need
Cozmos + PhpMesh
- Same idea as yanel, but younger
Drupal
EZ Publish
- First impression: complex
JBoss Portal
- Aside from the aforementioned typo3, this is the runner-up for "most complex feeling"
- Looks powerful, but I think it does way too much of what we don't want ("portlets") and not enough of what we do ("staying out of the way")
- Great documentation, unfortunately, it's required reading if you want to do even the simplest tasks
Plone
WordPress
- Maybe we could leverage wordpress for the dynamic data only? There seems to be a pile of plugins for multilingual "side-by-side" content
- Those plugins aren't as good as they claim to be. :(
Yanel + Yulup
- different approach than other CMSs
- requires a firefox add-on
- would require something else for the dynamic data