Zing – a web software platform

Zing is a software platform to simplify the development of web-based client-server applications. It draws from a variety of concepts and tools that are readily available in open source.

Architecture overview

Zing is built in three parts.

  • A data storage and communication model that bridges the client-server gap. The data model on the client is the same as that on the server and Zing provides the mechanisms to maintain the consistency. The programmer need not implement encoding and decoding of data objects, caching them for speed, or maintaining consistency. The Zing data model
  • An application type generation tool. Zing provides a mechanism for describing the application data types in a series of JSON files. From these descriptions, Zing generates TypeScript code that will implement those definitions. In the generated code are the mechanisms the interact with the Zing data storage model and ensure that data objects are maintained correctly between the client and the server.
  • A set of user interface tools (ZUI) that simplify building interactive web interfaces. These tools are strongly influenced by React Native. The currently implementation only provides for HTML/DOM based user interfaces but the ZUI tools can easily have added capabilities to generate the React target implementations.

Learning Zing

New users of Zing should first look at the following overview discussions before diving into the details.

Foundations

  • TypeScript – all code both client and server is written in TypeScript. This not only allows the convenience of writing in an object-oriented language but also provides type checking that will make large projects maintainable.
  • JQuery – the foundation for manipulating the DOM tree is JQuery. Every user interface component generates a JQuery node as its output.
  • Node.js – provides the run-time platform for the server implementation. Node also provides the compilation and build environment using gulp.
  • MongoDB – provides the data base for application server data. Zing has the ability easily add and use alternative data stores, but MongoDB is the only only database currently implemented.