QetriX


QetriX

About QetriX

QetriX is a paradigm for creating web apps and websites.

We implemented the idea into several open source QetriX Frameworks, available for various languages and platforms, incl. C#, PHP, JavaScript and others. Their main focus is on HTML5, which has been popular in both online and offline solutions for the past few years.

With QetriX Framework you build apps in just-enough and low-effort manner, using just three components: QList, QForm and QView. Each component transforms data provided by datastores to a representation defined by converters.

The framework is robust and powerful, yet fairly simple, performant and lightweight. We used it for enough solutions to know it provides everything you'll ever need in most cases.

QetriX Family

Framework

Many platforms, single coding style. Quick and easy way how to make apps for various targets, using components, converters and datastores. Scriptable with Que language.

Qedy

JSON-based proprietary Framework extension for rapid development of rich HTML5 websites and applications. Offers data modeller, layout designer, process builder and more.

QPDB

Particle database schema for dynamically structured and interlinked semantic data. Also features geographical extension.

QB

Database for anything (and maybe one day of everything): people, food, songs, products, places, machines, software, movies, companies etc. QB allows to add, view, edit and compare them.

Qarate

Social network, where users can rate anything on a scale from 1 (worst) to 5 (best). Uses data from QB.

Quiky

Quick Wiki - easy to use online and offline personal wiki with QPDB support. It's decentralized and works also as a simple CMS for websites, blogs and galleries.

Quid

ERP for companies and individuals. Contains basic Project Management with Time Tracker (called Quo), CRM, Asset Management, Service Desk, CMDB and more. Based on Qedy.

Quo

Time tracker, tasks and to-dos. Standalone part of Quid.

Qua

Trip planner, flight log, travel diary and geo tracker. Works great in connection with Qarate and Quid. Online or offline usage.

Qik

Closed-circuit Smart Home information system and family hub. Supports various home devices and appliances and helps you with day-to-day tasks, like shopping or cooking. Based on Qedy.

Quly

Cross-genre multiplatform videogame, where you can groom your family of Qules in an open world and in the real world.

QeX

Czech internet multiportal, featuring news, articles, discussion boards and forums, Q/A, games, blogs, reviews and more.

Showcase

Examples

Page in Java

public class PageInJava extends QModule
{
	public String main(Dict args)
	{
		var view = new QView("form");
		view.heading("Page in Java");
		view.add("This is a HTML page in Java.");
		return view.convert("page");
	}
}

Table in PHP

class TableInPHP extends QModule
{
	public function table(Dict $args)
	{
		$tbl = new QList(__METHOD__);
		$tbl->heading("Table in PHP");
		$tbl->add(new QElem(ElemType::number, "id", "ID");
		$tbl->add(new QElem(ElemType::text, "name", "Name");
		$tbl->data($this->ds()->getTableData());
		return $tbl->convert("table");
	}
}

Form in C#

public class FormInCS : QModule
{
	public String form(Dict args)
	{
		var frm = new QForm("form");
		frm.heading("Form in C#");
		frm.add(new Det(ValueType.email, "email", "E-mail", "", 10));
		frm.add((new Det(ValueType.button)).action("formSubmit"));
		return frm.convert();
	}
}

Module in JavaScript

com.qetrix.apps.appName.modules.person = function($public)
{
	$public.main = function (args)
	{
		// Some JS magic here
	}

	return $public;
};

Navigation in Python

class NavInPython(QModule):
	def nav()
		nav = QList("nav");
		nav.add({"text":"First", "action":"first.html"});
		nav.add({"text":"Second", "action":"second.html"});
		nav.add({"text":"third", "action":"third.html"});
		nav.actionBase(self.page().pathBase());
		nav.value(self.page().path());
		return nav.convert();

DataStore method in Ruby

class RubyOracleDS < DataStore
	def self.getTableData()
		return self.get("SELECT a, b, c FROM ".self.prefix()."table WHERE c = 1 ORDER BY a, b DESC");
	end
end

Something method in Kotlin

TBD

Something method in Swift

TBD

Module in Que

qview:page	heading:Module in Que
#1.add	Lorem ipsum dolor sit amet
qform:search
#3.add:text
#3.add:button
#1.add	#3
#1.convert	html	page
			

DataStore in Rust

fn rustmssqlds(x: Dict) -> string
{
	def self.getTableData()
	return self.get("SELECT a, b, c FROM ".self.prefix()."table WHERE c = 1 ORDER BY a, b DESC");
}
			

Particle structure in MySQL

CREATE TABLE `p` (
	`p_pk` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Primary Key (ID)',
	`pp_fk` INT(10) UNSIGNED NOT NULL COMMENT 'Entity (p.p_pk of a parent Particle)',
	`pt_fk` INT(10) UNSIGNED NOT NULL COMMENT 'Classification or Type (t.t_pk)',
	`pv` VARCHAR(200) NULL DEFAULT NULL COMMENT 'Value' COLLATE 'utf8_unicode_ci',
	`pr_fk` INT(10) UNSIGNED NULL DEFAULT NULL COMMENT 'Relation (p.p_pk of a foreign Particle)',
	`ps` INT(10) NOT NULL DEFAULT '0' COMMENT 'Sort order, significance',
	PRIMARY KEY (`p_pk`),
	INDEX `pt` (`pt_fk`),
	INDEX `pp` (`pp_fk`),
	INDEX `pr` (`pr_fk`)
)
COLLATE='utf8_unicode_ci';

Particle data in JSON

{
	"p_pk": 24,
	"pp_fk": 24,
	"pt_fk": 7,
	"pv": "QetriX",
	"pr_fk": null,
	"ps": 999
}

Downloads

Sorry, no downloads are available at the moment. Please, stay tuned.
You can also check our progress on GitHub.

History

2018

  • Framework in JavaScript with UI extension released.
  • Qedy and Framework greatly enhanced.

2017

  • Qik added to the QetriX Family.
  • Quo became independent app inside Quid.
  • Qedy Mk. II released.
    • Layouter,
    • Processes with Actions between States,
    • QType and QListRow replaced by QElem.

2016

  • Qedy added to the QetriX Family.
  • Framework Mk. VI released.
    • Dict,
    • QApp replaced by QPage,
    • QType and QListRow replaced by QElem.
  • Added trip planner to Qua.

2015

  • Qua, Qarate and Quid added to the QetriX Family.
  • Quly added to the QetriX Family.

2014

  • Mravenci (Ants), running on cross platform QWebApp, released.
  • Framework Mk. V released.
    • Renderers replaced by converters,
    • multiplatform coding standards.
  • Quiky for iOS released.
  • Quiky for Windows reengineered.
    • WPF instead of WinForms,
    • using C# QetriX Framework.
  • Framework Mk. IV released.
    • Modules instead of plugins,
    • components introduced,
    • renderers introduced.

2013

  • Quiky added to the QetriX Family.
  • G-Particle introduced with GeoEdit.
  • QB offers personal semantic databases.
  • Framework Mk. III released.
  • QB Mk. II released.

2012

  • Quiky added to the QetriX Family.
  • QetriX got a logo.
  • Framework Mk. II released.

2011

  • QB finished.
  • QB reengineered.
  • QetriX name developed.
    • QeX (2001-11-30) → Q3X → Q-tri-X → QetriX

2010

  • QB released.

2009

  • Data Particle was invented and QPDB was born.
  • Kilopedia shut down.
    • Articles were unsustainable, so we kept structured data only, which changed the concept.
  • Kilopedia received a geographical extension.

2008

  • Kilopedia moved to its own domain.

2007

  • Kilopedia released.
    • Mobile encyclopedia with short articles up to 1024 B per language,
    • each category has its own dataset for structured data.
  • Q3X App Beta released.
    • Single .exe, compatible with both Windows Mobile 2003 and Windows XP,
    • web app with the same interface and using the same XML files.
  • Q3X App Proof-Of-Concept, with XML Form and XML Data definitions.

2006

Contact

Social networks

Stay Tuned