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
- DONE Directories and html files can be created through a form
- Other file types are uploadable through a web form
- DONE 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.
- DONE 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)
- DONE 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
- DONE Multiple pages for a single language can be published with one click
- DONE Administrators can push an entire language live with one click
- localizable interface
- RSS feeds of
- DONE Changes to pages when a writer requests review from a leader
- DONE 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
Administrative Process
- A user can be in one of three groups:
- Editors (can edit static and dynamic content) (approx 40-80 people)
- DONE proofreaders are in this group
- DONE Can edit any static or dynamic content
- DONE Requests to go live go to a leader for review
- Publishers
- Can edit any content, but can also request a push live
- Administrators (approx 5 people)
- DONE Can push changes live
- Can email all active members through a single form
- Editors (can edit static and dynamic content) (approx 40-80 people)
- DONE Users can be added to the system by administrators
- DONE Users can be disabled
- DONE 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
- Extensible enough that we can use it. We're pursuing this option.
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
- I setup this option and modified our website to send the meta tags. It works, but we want something that is 1) more modular, and 2) can modify the dynamic data