Intro for Developers

Anyone who is interested in developing for xTuple should start with this article, which offers an overview and map for the myriad development options available—from C++ to JavaScript, and more.

This article provides an introduction to xTuple's various products from a developer's perspective.

Note: Many of the links in this article point to information located in xTuple's code repositories on GitHub. To access this information, you must have a GitHub account, as well as permission to view the xTuple repos. If you are looking for access to xTuple's GitHub repos, please contact us.

xTuple develops Enterprise Resource Planning (ERP) software. ERP covers a wide range of business processes. To do so effectively we have a core ERP database, several client applications that share that database, administration tools, and a handful of more general-purpose programs. Our desktop and web clients can be customized and extended easily, and our REST API allows customers and 3rd parties to write their own applications that share the ERP database while enforcing basic business rules.

The bulk of our application source code and developer documentation lives on GitHub in and around our many GitHub repos. That's where you should go if you're interested in extending xTuple with scripted packages, modifying core source code, and interfacing with third party applications. The source code for our commercial extensions is available to our commercial customers and uses the same interfaces, tools, and methods as all of our extensions. You will need to create a GitHub account and contact xTuple with that information to get permission to read that code and documentation.

Technologies

You can learn about the architecture of our products on the GitHub wikis for our desktop client and our database. Here's a list of languages, frameworks, tools, and components in our technology stack:

  • PostgreSQL - a powerful open source object-relational database manager
  • PL/pgSQL - a PostgreSQL stored procedure language
  • C++
  • JavaScript
  • PHP
  • Qt - an open source, cross-platform C++ development framework
  • OpenRPT - our own report writer, written with C++ & Qt
  • MetaSQL - an SQL wrapper language that simplifies reusing queries
  • CSVImp - our own C++/Qt tool for importing CSV/TSV files
  • Updater - our own C++/Qt tool for running database update scripts and loading database and application extensions
  • xTuple ERP desktop client - our C++/Qt/SQL/MetaSQL desktop client
  • xTuple ERP REST API - a set of programming interfaces for our own and 3rd party client applications
  • git - a distributed version control system