Our Tech Stack
The following is an overview of the technologies that we use to build and run the OpenBoxes application.
Frontend
React: Our current frontend framework.
Groovy Server Pages (GSPs): A Grails technology that functions similarly to Java/Jakarta Server Pages (JSPs). For creating dynamically generated HTML. We use this as our frontend for our old features. It has since been replaced by React for all new features.
Backend
Grails: Our backend framework. Written in Groovy. Is a wrapper on the SpringBoot framework.
Apache Tomcat: The Servlet container that we wrap OpenBoxes with to make it a proper HTTP request handler.
Quartz: A job scheduling library. Allows us to set up crons / scheduled tasks that run on regular intervals. We typically use these Quartz jobs as data cleanup / synchronization mechanisms such as refreshing product availability.
Gradle: A build automation / dependency management tool. Automate the compilation and packaging of the application.
Database
GORM: Grails Object Relational Mapping. A data source framework used by Grails that allows us to query the database via Groovy method calls on Domain objects. This means that we can query the datbase without using language-specific queries. This masks the underlying database from the application itself, which allows us to support multiple different SQL server implementations (MySQL, MariaDB...). We use GORM-for-Hiberate since we use a SQL-based relational database.
Liquibase: Automates database migrations / schema changes via
changelog.groovy
files. See the/grails-app/migrations
folder for more information.
Observability
Last updated
Was this helpful?