This topic accompanies the
Tech Talk: Developing File-based Custom Modules for LabKey Server given in May 2023.
Custom modules allow you to extend the functionality of the system by providing a method of developing new features to meet your data management and analysis requirements. In this Tech Talk, you will learn the basics of custom modules and how to develop your own.
Understand the use cases, types, and structure of custom modules
Use the module editor in LabKey Server
Develop views/web parts for your modules with custom scripting and styling
Utilize R reports and SQL queries in modules
Automatically initialize and load data into Data Structures using modules
In this presentation, you will learn to create your own custom module, extending the functionality covered in the
file-based module tutorial. The overarching theme of this module example is
Food Science: Baking the Perfect Sourdough Loaf.
Prerequisites
To get the most out of this presentation, you should have already set up your own local development machine as covered in this topic:
You may also want to first complete the basic tutorial here:
Module Overview
![fbmStructure.png](/Documentation/wiki-download.view?entityId=382b2b9f-dbea-103b-b63f-a7b01ba72794&name=fbmStructure.png)
Modules are encapsulated functionality in a standardized structure. A module can contain many features and customizations that you could also define in the user interface. Using a module instead provides many benefits:
- Version control integration
- Ease in deploying between test & prod servers
- Modularity and reusability
- Leverage built-in capabilities and features
Anatomy of a File-Based Module
The image shows the basics of how a module is structured.
- Lowercase names are literal values
- Uppercase names are variable values
- Ellipses indicate more possible file types
- The module 'tree' is placed in /trunk/server/modules
Demo Outline
In the demo, you will see examples of these features:
- Views and Webparts
- Queries and Reports
- Styling and Appearance
- Module Editing
Developing and Deploying
Advanced Topics
Presentation Slides
To follow along with the presentation, you can download a PDF of the slidedeck here:
Link to Module and Source
The module reviewed in this presentation is part of the "LabKey/tutorialModules" repository on GitHub. You can download and extract the sourdough module content from this location:
Presentation Video
Watch the presentation here:
Related Topics