Features

Archimedes has the following features:

  • CMS and WebApp framework
    • CMS5 was built as a WebApp framework with CMS capabilities.
    • It has a strong front-end back-end design.
      • The front-end being the website, the back-end being the CMS and WebApp environment.
      • The front-end is optional, using only the backend makes it a WebApp.
    • Completely built according to the Model-View-Controller (MVC) model
      • Model = database
      • View = client-side html, css and javascript
      • Controller = serving the view to the user by using the model. It also navigates the user through the CMS (it knows which controller to call next).
  • Webapp for desktop and mobile
    • due to the responsive layout design the CMS can be used on desktop browsers and browsers on mobile phones.
  • Dark mode
    • Support for dark-mode and light-mode.
    • Switch with the click of a button
  • Sandboxed modules.
    • Each module has it’s own “walled garden” to play in.
    • Add extra functionality by developing your own modules.
    • Zip it, offer it as a download and customers are able to install it by uploading it via the UI.
  • Template engine:
    • Simple, fast, powerful and flexible.
    • No extra “template language” to learn, just use regular PHP code
    • Support for skins and templates.
      The skins are the layout that doesn’t change on a page (menu, header, footer)
      The templates are the content of a page (the actual blog post for example)
  • Pagebuilder support
    • Built-in pagebuilder
    • pagebuilder has support for mobile devices (responsive layout)
    • when designing support for 3 viewports: desktop, tablet, mobile
    • Use the built-in pagebuilder or develop your own pagebuilder, it’s up to you.
  • Automatic form generation with a form builder
    CMS5 can generate forms and
    • checks submitted values with validators (only numbers, email addresses, character whitelists/blacklists etc etc etc)
    • built-in support for ReCaptcha
    • built-in support for automatic CSRF tokens (Cross-Site Request Forgery)
    • built-in support for an automatic honeypot against spam
    • built-in retrieval of values from inputfields is by default XSS safe.
  • Built-in DOM creator/editor
    • render HTML documents: by building a tree-like structure of elements and convert it into HTML.
    • HTML parser: read HTML, manipulate the DOM and render it.
    • HTML DOM purifyer to filter for XSS (Cross Site Scripting)
  • Spam detector
    • a built-in spam detector that can be combined with the form generator
  • TModel class
    • a model class which allows building SQL-less queries.
    • Designed to be database independent.
      By using SQL-less queries, SQL dialects are abstracted away.
      Write your own database class and talk to any relational SQL database you like (MsAccess, SQLite, Postgresql etc).
    • Atomic database transactions built-in by default.
      Inserts are done with a “commit” and “rolled back” on failure to ensure data integrity.
    • Support for automatic incrementing 64 bit integer iID as primary key.
    • Support for to manually maintained 64 bit integer iID as primary key.
    • Support for a 64 bit iRandomID. This can act as primary key with non-chronologic numbering.
      This prevents enumeration attacks with sensitive data on public websites (like order id, or customer id).
    • Support for UUID string as record identifier.
  • Abstract controller class
    • enables caching to file and session without hassle.
    • It is even possible to cache only parts of a page!
  • Multi language support
    • CMS5 has multi language support out of the box.
    • Separation of translation files (global, website-only, CMS-only, module-only).
      Out-of-the-box it supports English, but translate the language files to your own language to make it available in your language.
    • The language files are easy to read and edit .CSV files.
  • Localisation support
    • Both framework and CMS support localisation (date, time and number notation can differ per region in the world)
    • Localisation settings adjustable on CMS user level. Each user can set their own localisation and language preferences in the settings menu.
  • Multi website support
    • CMS5 has support for multiple websites out-of-the-box, not just one!
    • Suppors for multiple language for each individual site.
  • Easy authentication implementation
    • Want built a login section on your website? i.e. webshop or tool?
      Just inherit the controllers and authentication class and save yourself tons of time.
      • Flood detection on IP addresses, usernames, failed and successful login attempts and many more.
      • fingerprinting the browser to limit chance of cookie stealing
  • Cronjob support
    • For maintainance of the framework and your module to keep everything safe, fast and secure.
  • Theme support
    • You can create custom themes for the CMS back-end and front-end website.
    • Create a fully customizable (white label) user interface and environment for your client (with their branding and functionality needs), without having to change the business logic.
      • You can create new controllers and views while keeping the models
      • You can easily switch between themes in the settings screen.
      • Back-end themes operate completely independent of themes of the frontend website(s) and vice versa.
  • Speed
    • CMS5 is designed to be fast.
      • No unnecessary usage of OOP (which is slow in PHP)
      • if OOP is used, classes are flat
      • not every module and library is loaded on every page load, only what is needed.
      • Easy to use ratelimiter: just use 1 function: rateLimiter()
      • Configuration files contain global constants, instead of expensive CSV, JSON, INI or XML operations.
  • Library
    • extensive libraries with userful functions, like: lib_string, lib_inet, lib_types etc.
    • send javascript notifications in an easy way to the browser
    • extensive library of WebComponents with server-side counterparts:
      • Checkbox – different styles and behavior
      • Checkbox area – allows min and max amounts of checkboxes to be checked
      • Combobox – allows tree structures, checkboxes and searching
      • Context menu – right-click contextual menu with support for checking, icons and shortcut-keys
      • Database filters – filter and search 1 or more database fields (strings, integers, booleans)
      • Date picker, Time picker, DateTime picker – choose date and time with support for localized formats.
      • Dialog message – shows messages to user
      • File uploader – uploads files with progress bar and automatically converts and resizes images
      • Info icon – more information upon mouse hovering
      • Number picker – big + and – buttons for easy increment and decrement
      • Progress bar – shows progress
      • Spinner – animated spinning icon hides elements when starting and shows them when stopping
      • Paginator – splits big record sets in pages for easy navigation
      • Tabsheets – Automatically creates tabsheets out of <div> components inside, that are shown and hidden on clicking
  • Security
    • very easy-to-use built-in rate limiter: rateLimiter()
    • flood detection and logging multiple credentials.
    • blacklisting ip addresses and whitelisting ip addresses (enabled by default)
    • Stealth mode can be enabled in config, then blacklisted and non-whitelisted IP addresses don’t get to see any pages of the CMS to protect against directory enumeration attack.
    • TSysModel has default support for avoiding SQL injections
    • Several functions in lib_file to protect against directory traversal attacks.
    • Built-in features for XSS attacks (Cross Site Scripting) in forms and (server side) web components.
  • Installer
    • An automated installer helps you step by step through the process of installing and configuring your software
    • The installer installs, updates and removes Archimedes from your computer or (web)server.
    • Familiar interface, because it resembles well-known application installers
Scroll to Top