QOR: the SDK for E-Commerce & CMS development, written in Go

QOR is architected from the ground up to accelerate development and deployment of Content Management Systems, E-commerce Systems, and Business Applications. QOR is comprised of modules that abstract common features for such systems, such as a configurable and flexible back office, a content publishing system, a media library, and much more.

We built QOR at The Plant to accelerate development for our clients, it is at the core of our engineering strategy, and we maintain it on an ongoing basis. This is a complete rewrite of the original QOR, which was a proprietary framework written in Ruby on Rails. QOR 1.0 is the first version to be open sourced and distributed under the MIT license.

Admin

Default theme is based on Google Materials Design Guidelines, compatible with both PC and mobile devices.

Publish

Assumes a staging and a production environment.

Allows preview on staging and allows administrators to select which items should be published on the production servers. Publish can be configured to specify which data types should persist across both staging and production servers and which should allow preview/publish from the staging to production. Combine with Roles and Transition to design systems that support workflow for content modification and publishing.

Transition

A configurable State Machine:

define states, define events, and define validation conditions required to become a different state.

Inline Edit

Login via the frontend of the website and make edits in place.

When logged in as an administrator, special menu options appear to display the Inline Edit features. Developers can configure exactly which content can be edited by which user roles. So, for example, a country administrator might have the ability to customize country-specific campaigns or a copywriter or translator could tweak the corporate messaging while looking at the content in the context in which the text appears.

Media Library

Upload files to cloud or other destinations with support for image cropping and resizing.

Media Library allows the upload and resize of images on the fly, with the option of saving them into multiple sizes and resolutions for optimized cross-platform delivery. Media Library can be configured to save in either the file system or cloud-based storage systems and can be combined with Worker to efficiently manage bulk image import and manipulation.

Worker

Run batch processes for bulk data processing or other time consuming calculations.

Worker is essentially a scheduler for running long processes. Worker provides an interface for viewing the progress of a long process, killing an incomplete long process, and viewing the logs of all long processes that have been run.

Exchange

Import and export of CSV or Excel data to get data into and out of your application.

Exchange is a file data extractor and exporter. Currently supported file formats for import and export are CSV and Excel speadsheets.

Localization(l10n)

Intelligently manage your business objects in a multilingual environment.

Localization is for managing resources in multiple languages. Please note this is different from simple string translation (which is covered in Internationalization).

Localization allows you to define multiple locales, a “global” (or default) locale, and define which users roles can access and manipulate which attributes in which resources in which locales.

Roles

Define roles and permissions for fine grained access control and creation of workflows to match organizational and application needs.

Roles provides a robust, configurable architecture to provide you with granularity for Roles and Permissions. Roles also enables access control on specific data fields. Use Roles to turn on certain features for particular users/classes of users or combine with Transition to map organizational workflows to your application.

Example App

This documented example application will give you a general introduction to QOR, demonstrating QOR features in the context of a simple bookstore application.

Features covered include building a catalog of books, adding a frontend storefront, configuring a staging environment so that editors can make changes to contents and publish them after review to a live public server, Localization (L10n) for the books and authors and Internationalization (I18n) support for the backoffice.