Want to apply for learning course?
Send us the request form here and we will contact you
Ideal for
Junior developers
Junior developers will learn and be able to use (including for free) a tool to Construct full-stack web applications with Java and Jmix.
Experienced developers
Scroll down for more details on learning content

REGISTRATION





Learn Your Best Development Productivity with Jmix
● Entity types in Jmix
● Jmix framework annotations for entities
● Data store. Supported databases
● Multiple data stores. Referencing entities from different data stores
● Traits: Versioned, Audit, HasUUID, SoftDelete
● Key-value entities
● Entity states
● Database versioning. Liquibase Tool
● Non-standard data types (JPA converters)
● Entity Manager service. Usage and transaction management
● Entity graph for data fetch
● DataManager and EntityManager services. Similarities and differences
● Data Security and DataManager
● Data and Query Cache. Cache customization
● JPA callbacks
● Entity lifecycle events
● Optimistic and pessimistic locks
• Views in Jmix
• Opening Views – ViewsNavigation and DialogWindows APIs
• Routing and Navigation
• Notifications and Dialogs
• Background tasks
• Facets – non-visual view components
• Views extensions and working with view template
• Event Bus – global events in Jmix
• Lazy loading in views
• Styling • Layout rules
• Creating Custom Action class
• Creating UI components
● Preparing the application for deployment
○ Deployment checklist
● Execution profiles
● Types of artifacts for deployment
○ Fat Jar
○ War
○ Docker image
● Application runtime overview
○ Dedicated server
○ Container
● Application deployment options
● Ensuring fault tolerance
○ Application clustering
○ Database replication
● Application monitoring and diagnostics tools
● Roles - advanced topics
○ Scopes
○ Specific policies
● Data access restrictions
○ Application of restrictions
○ Overriding data access checks in business logic
● Anonymous access to the application UI
● Programmatic user management
○ Data model of users and roles
○ User creation
○ Role assignment
○ Implementing a scenario of user registration and activation
● Additional security features
○ System authentication
○ Authentication events
○ User substitution
● Accessing users in Jmix add-ons. UserDetails, UserRepository, UserManager
● External authentication services
○ Integration with LDAP and Active Directory
○ Integration with KeyCloak SSO
○ Login and registration via social networks (Google and GitHub)
• General information about add-on
• Component elements
• Raster layers and their sources
• Working with data
• Feature styling
• Cluster
• Heatmap
• Map interactivity
• Map projection
• Real-time data update
● Jmix report generator overview
○ YARG
○ Templates
○ Fetch data
● Report Wizard
● Creating a simple report
○ XLS format
○ DOC format
● Using Groovy to fetch data
● Displaying graphic files in a report
● Generating a Master-detail report
● Creating a matrix report
● APIs for working with reports
○ Standard Actions ○ Services
● Overview of the BPM component of the Jmix framework
● BPMN Specification for developers
● Create and execute a simple business process ● Process Variables
● Assigning users to tasks
● User task management
● Accessing Jmix data from the process
● Decision-making using DMN notation
● Various types of service tasks
● Development of process forms
● Use of different types of subprocesses
● Transactions in BPMN and asynchronous tasks execution
● Loops in BPMN and working with collections (multi-instance activities)
● Using BPMN messages and signals in processes ● Inter-process collaboration
● Process administration capabilities
● Using Jmix software components as part of business processes
● Handling business process execution errors ● Execution listeners in Jmix
● APIs for working with business processes
● Full-text search system architecture
○ Elastic search
○ The concept of a "document"
○ Indexes
● Integration with Jmix
○ Configuring an application
○ Starting indexing processes
○ Indexing data in a database
○ Indexing uploaded files
● Scaling the full-text search engine
● Types of charts used in the module
● Data binding
○ Data containers
○ Programming interfaces
● Event Handling
● Incremental refresh for datasets
● Features of the module for sending emails
● Customization
● Creating messages
○ Creating simple messages
○ Using templates
○ Creating attachments
● Administrative interface
● Program interface of the module
● Definition of multitenancy. Approaches to building multitenant applications
● Implementation in Jmix
● Data model design features
○ Shared data
○ Client data
● Administration of multitenant applications
○ User creation
○ Local administration
○ Authorization from URL
● Multi-tenancy module API
● Server-side testing
○ Rules for tests writing
○ JUnit
○ SpringBootTest
● Administrative interface testing
○ Selenide Library
● API testing
● BDD: using the Gauge Library
● Code refactoring capabilities
● Code generation (Intentions)
● Inspections
● Jmix Studio configuration





What the Java Developers Say
The information presented was very usefull, and variated, I am on a migration process of a system that was develop on a earlier version of jmix, so I'm going to have the chance tu apply them. The instructor was very professional, pretty sure of what he was explaining, couple of moments where the hot deploy did not help him, but nothing unexpected if you are used to work with jmix or cuba platform. I am very satisfied with the training, the material provided are going to be a very usefull reminder of how to code propertly.
Enrique Céspedes
Java Developer
Since I have been working with your product for some time, some of what was presented was familiar to me, but a large part was new. Dmitriy Vaschenko is a very good professional and sometimes he is funny, he relaxes the atmosphere very well. I liked that he used Jmix Studio to a minimum, this was useful for us. The course was a real marathon for both the master and the students, it really covered almost everything that is necessary for a developer.
Florin Tanaša
Engineering SpecialistMost of the information presented was highly relevant and practical, directly applicable to my work. The instructor was highly professional, knowledgeable, and engaging throughout the course. I am very satisfied with the training; it exceeded my expectations in many aspects. The course was excellent as it is. Adding more real-world examples or case studies could make it even better.
Atamert Çakır
Full Stack Java DeveloperAs a Java backend engineer, I found the JMIX training vital for bridging the gap between backend and UI development. The course’s practical approach and expert instruction boosted my confidence and skills, preparing me to build UIs and transition into a full-stack developer role. I highly recommend this training as a streamlined path to becoming a proficient full-stack engineer without diving into HTML, CSS, or JavaScript.
Jean-Claude Bucumi
Java Backend Developer.png?width=200&height=200&name=%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20(1).png)
I enjoyed this course and learned new things to apply immediately in practice. All the topics discussed were presented through practical examples, while the instructor implemented them in real-time, which is very instructive and adds a lot of genuine credibility to the Jmix platform. The instructor was highly skilled and professional and could answer all the questions regardless of their complexity. I'm very satisfied and would highly recommend this course to anyone looking to work with Jmix, both platform beginners and proficient users of prior versions of Jmix.
Mladen Bucan
Java DeveloperThe course was interesting and amazing to follow with Dmitriy. For the instructor I will give him a mark of 1000/10 (he is professional, academic, humble, he has patience to answer all our questions). If you can, tell the Jmix tech team that they create a great tool well-architected and extensible.
El bachir NOUNI
Java DeveloperThe information provided was extremely helpful. I was very pleased with Dmitryi and the training session. I appreciated that he began incorporating short breaks, as it was initially challenging to maintain focus for three hours straight.
Jan Duda
Java DeveloperI would like to thank you and the team for making this learning journey a great experience. Surely, we missed many things during the session, because there was a lot to take in, but the recordings and presentations helped me to level up again.
I would be happy to meet you again in other topics.
Hicham ABOUKHASSIB
FounderThe information was very useful and detailed. The instructor explains very well and demonstrates each topic with practice. I am very satisfied with the training. The only suggestion would be to make the classes shorter, maybe around an hour and a half.
Mario Alberto Medina Rojas
Subgerente Técnico en OPE ColombiaThe course was quite informative, even after 5 years of CUBA / Jmix there were new things I learned. Dmitriy was well-prepared, if there was something he couldn't answer right away, he made sure to follow up with the answer in the next lesson. Overall I enjoyed the course, it was helpful, engaging and worth the time.I think the topics are well structured so I don't really have any suggestions, thank you and the team for the opportunity.
Gergő SüvegesGergő Süveges
Java Developer at DSS Consulting Zrt..png?width=200&height=200&name=%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20(1).png)
The BPM seminar is a good experience, especially for Jmix developers getting started with the BPM add-on. It provides a clear and practical introduction to process modeling and automation within the Jmix framework. An excellent instructor does not rely solely on the static slides but will build real-time example solutions, which are immediately applicable.