The table below sets out a rough plan for the future development of Daizu CMS. The intention is that the earlier stages of development will provide the infrastructure needed to implement the later ones. For example, the ‘committing’ stage will add all the internals needed for editing content, merging changes by multiple users, and so on. Later this will be used to provide a user-friendly editing interface.
I'm aiming for each of these features to represent a new release of Daizu, probably in the order shown. I haven't included projected version numbers in the table because there might be intermediate releases to fix bugs, and of course I might have to rearrange things if a particular feature becomes more urgent.
| Feature | Description | Progress |
|---|---|---|
| Publishing | Load content into the database, track what URLs are produced from it, and publish their content into files. At this stage all these operations are controlled manually by the user. | Done, v0.2 |
| Site updating | Automatically work out what changes have been made and what work needs to be done to bring the live websites up to date. Provide a simple command which will do all the necessary publishing work and copy the results to the server. | Done, v0.3 |
| Committing | Ability to edit files in the database working copies and then commit the changes to the Subversion repository. This is the ground-work for providing a content editing user interface. | — |
| Editing | A web-based interface for browsing and editing content. This will be very simple to start with. The preview system which has already been implemented will be made part of it. | — |
| Authorization | A flexible way of restricting what each user can do. This will allow you to set up groups of users who can only edit content but not authorize publication, or to restrict particular users to changing certain parts of the content. This is a separate stage because it needs to be carefully thought out. An overly simplistic design would lead to an overly complex one further down the line. | — |
| Interactivity | Make it possible to create dynamic parts of web sites integrated into the Daizu publishing process, for things like allowing users to submit comments to blog articles, receive track-backs, integrate e-commerce features, etc. | — |
| Templating | This may have to come earlier, but I'm not quite sure of the design yet. The current templating system works, but it will eventually need to be more flexible, to allow for example date and time formats to be adjusted, and to allow for multilingual sites to use translated text in certain places. | — |