From #openttdcoop wiki
This wiki page shows the requirements, design, implementation and progress of the development of a web-based configurator for openttd.cfg. Before any design will be made, functional requirements of the system should be clear. For questions or remarks, please use the discussion page or contact Kommer on #openttdcoop
Project goal and scope
The goal of this project is to design a webbased configurator for the openttf.cfg configuration file. The initial scope is to only generate a openttd.cfg configuration file. Other possibilities, like restarting a server, will be out of scope for the first version of this configurator.
- the web-based tool should be able to manage the configuration of the openttd.cfg configuration file.
- it should generate server specific openttd.cfg files for all #openttdcoop servers;
- the web-based tool should have a read only and read-write option to make it possible for users to see our config;
- all options and new grf settings of the openttd.cfg should be changeable;
- options need to be mandatory or non-mandatory;
- newgrfs and their options must be selectable;
- each option should have a description of the possible values and their meaning;
- values of options should be open, an enumeration or multiple values (NewGRF Parameters)
- some options should be specific for a configuration and some options should be specific for a server
- each server should be able to have multiple configurations in the tool
- it should be possible to load a openttd.cfg into the webtool.
- support for presets/templates
- it should be possible to upload the config file to a server using (S)ftp;
The database design is made in Mysql workbench, which can generate all SQL scripts easily.
A pre of the system is to use some kind of template tool or use plain xhtml with a good css file.
If you have suggestions, please add them here!
Requirements on the implementation
- the tool should use PHP as the programming language
Rationale: PHP is used in a lot of webbased tools. If we choose something like java (with google's webtoolkit?), it would be harder to install and maintain the tool.
- as database a open source *SQL version should be used. (For now, we will use MySQL)
A design of the implementation will be posted here when the global requirements are final and the database design will be finished.
Possibly a MVC approach will be used. The mysql workbench file can be used to generate all model files, which saves a LOT of development time.
Also looking into the Zend Framework which will also make coding a lot easier and Object Oriented. Also Eclipse can be used to develop php code with the zend framework.