
Explore how Jmix enables enterprise Java apps with a framework, studio, and add-ons marketplace. Leverage the persistence layer, data manipulation, and security with Spring, Vaadin, and Liquibase.
This is a living document and will be updated as students ask more commonly asked question.
Create a new DJMax studio project with the full stack app Java template. Sign in and run the IDE to load dependencies and explore data stores and the data model.
Run the new Jmix project to see the initial state, apply generated change log files to create a lightweight database, then log in and explore the app.
Enable dialog mode for editing tasks within a project by annotating Task.detail with @DialogMode and setting dimensions to auto; via create or edit actions on project details using dataGrid openMode.
Learn how to handle events on views and components, generate an initEntityEvent handler to auto-set medium priority, and create a 500-character textArea counter with a componentValueChangeEvent in studio.
Master data manipulation with the data manager in Jmix, performing CRUD on entities, accessing related data via references, and choosing eager or lazy loading across data stores, and JPQL queries.
Learn to upload attachments to file storage from Task_.detail, expose one-click downloads in Task_.list using a dynamic component column, and wire the downloader with uiComponents and the Downloader bean.
Discover how the jmix security subsystem integrates with the data model to control CRUD access and restrict entity visibility through roles, permissions, and Spring Security.
Leverage the current authentication interface to auto-fill the time entry username, initializing new TimeEntry objects with the current user and date on creation.
Learn how row-level roles use JPQL and predicate policies to restrict CRUD on specific objects, including root entities and nested collections, beyond resource roles.
Combine resource and row level roles in jmix to inherit permissions at design or run time by creating a combined manager role and a combined row level role.
Create and run an executable jar for a Jmix app by configuring the project name and version, building with bootJar in production mode, and deploying via java -jar from build/libs.
Welcome to this short yet comprehensive course on building applications with Jmix!
Jmix is an open-source platform for creating full-stack web applications in Java or Kotlin. It helps developers quickly and efficiently build various types of applications: from basic CRUD applications for internal use to highly specialized systems classified as ERP, CRM, EAM, SCM, WMS, ECM, ERM, HRM.
If you are a beginner developer, then this course is right for you. If you have some previous experience with Java or software development in general, then you might find some of the topics to be familiar and it'll be easier for you to get into it. That's because Jmix developers work with popular frameworks such as Spring Boot and Vaadin and write code in IntelliJ IDEA. Jmix augments this with visual tools, code generation and high-level API for numerous tasks.
This course focuses on practical skills – it introduces you to Jmix through building a simple full-stack web application from creating a project to deployment. Topics covered:
data model
database settings
web UI
visual components library
file storage
security subsystem
user roles
deployment tools
Although the course is meant to be practical, feel free to just watch the course materials or browse through the course and only watch the topics your are most interested in.