Programmers guide
Welcome to the programmers guide of cmsWorks.
This guide is for programmers of the general purpose content management cmsWorks and will lead you - step by step - on how to program your own sites and pages in cmsWorks.
For whom this guide is for
This guide describes how programming your own site(s) may be managed by using the cmsWorks ecosystem. It explains the hardware / OS / additional needed software for developer workstations and productive / testing servers.
Additionally it provides example programming code and best practices on how to get your site up and running. In case questions arise regarding the installation, administration or configuration please consult the administrators guide to cmsWorks.
Programming cmsWorks - needed hardware components (server / client)
To get cmsWorks up and running, and therfore program and deploy your own site you need
On a programmers workstation (on the "client" side):
- A Java JDK with the correct version installed
- A connection to a cmsWorks database like MySQL, ... (optional but recommended)
- An IDE which helps to create your programs (optional)
On a production system (on the "server" side):
- A server with root access or, at least, access to a shell running on that very server
- A Java JDK installed
- An cmsWorks internal database, optionally an extra database like MySQL (recommended)
- Optionally a http-server like Apache, nginx or IIS and the ability to configure it (recommended)
Eventually, having a bigger team developing / testing your site a staging system may be advised which means that the same needs as for a production system can apply.
Meeting these requirements and having knowledge of HTML, CSS, JavaScript and (a little bit of) Java, you are ready to go.
What is cmsWorks from a programmers point of view?
cmsWorks is
- a general purpose content management system, being agnostic to input and output formats or even your workflows
- a "full stack" implementation which means that you could run cmsWorks without any other software needed (if desired)
- an internal search engine based on big data, providing online ("on-site") and internal search capabilities for programming
- an "any OS" system only needing a JDK regarding your live / staging systems or your programmer workstations
- driven by microservices which could be started, stopped, added or removed any time, even during runtime in live environments
- therefore "hot-redeployable", which means that programming parts may be re-deployed without stopping the whole system
- a ZAK ("zero administration kit") system warning you also in regards of third-party-misbehavior (i.e. database failures)
- only using Java/OpenJDK JVM and HTML, CSS, JavaScript, no other dependencies required, in case you do not want/need them
- a way to simplify your configurations by simple, self-explaining properties instead of XML, applicable for different environments
- a straight-forward, simple visual BPM (business process management) engine on your fingertips called ScriptEngine
- a configurable graphical user interface (GUI) everyone can access with a "modern" web browser, no client installations needed
- an ecosystem for developers including cronjobs, CLI commands, batches, services, this all built in from scratch
