Training Agenda

Our Caliper SDK training is an event that lasts three days and give developers the ability to learn the environment and have guided practice with the technology.

...

Caliper SDK Certification Outline

The Q2 Caliper SDK Team is excited to see you during one of our upcoming certification classes! An outline of a typical class follows this introduction. The schedule is always subject to change based on students’ roles, experience, and interests, but we will cover all relevant information by the end. We take a 10-15 minute break once every 90 minutes or so, along with a longer break for lunch each day. We ask that you come on time and prepared to focus.

During the course, we recommend against taking notes and trying to duplicate the lessons in your own code. Instead, listen, internalize the concepts and design, and ask questions. We cover a lot of material quickly, but provide a recording of the training via email after the course. Throughout the class, there will be ample opportunity to get hands-on-keyboard time with the product, guided by members of the Q2 team. We have found most attendees get the best experience out of engaging in the conversation while it is happening, rather than attempting to document it for later.

Set up your IDE ahead of time using the recommended guides. Our current recommendation is VSCode. Setup docs are here. Having your tools ready to go saves time at the beginning of the course and allows us to get started learning. Doing the tutorials ahead of time is fine if you are interested in jumping in-- we will go through them fully during the training.

This is coding class, so those with experience in Python or JavaScript will find themselves very well prepared. If these tools are unfamiliar, fear not! We train all skill levels, but mastery takes time, and we do not cover programming fundamentals or Python or JavaScript basics during the Caliper SDK training. Our documentation has some recommendations on getting started with Python and Javascript.


Checklist

Signed up at the Q2 Developer Portal

Able to connect into Shared Dev Sandbox

IDE set up and ready to go

Ready with a business problem your institution needs to solve. We will work on this solution during the final day of training!



Schedule

Day One

Time Title Contents
15 Mins Introduction of Team and Trainees
Introduce SDK Team
Have trainees provide name, company, what problem you’re trying to solve
Ice Breaker
30 Mins Introduction to the Caliper SDK

What we are solving

Time/expense of current custom dev model
Greater involvement/investment with the q2 platform for our customers
Leverage the significant technical talent available to our customers in pursuit of our corporate mission
Leverage our customers’ detailed, specific knowledge of their end users’ needs
Provide a common tool for external and internal projects
These problems are hard: we need a tool that is powerful, versatile, and usable

How we are solving it

Caliper is…
A Python web server with tools and features to expedite access to Q2 resources and promote development best practices
A true Software Development Kit
A set of tools that seamlessly integrates with the q2 stack and can bridge the gap between its components
A tool for professional developers: we expect and respect advanced development skills
A well-documented and usable tool backed and contributed to by a growing community of internal and external users
What the Caliper SDK is not
Not an API, although access to Q2 and external APIs is a key feature and APIs can be created with it
Not intended as a replacement for core UUX functionality
Not limited to built-in functionality: anything Python is capable of, so is the Caliper SDK
Not limited to serving forms in Online, but that is the use case we will be diving into

Why Python?

Clear syntax and flexible patterns allow for quick learning
Incredible community and library of open source tools
Built-in, user-friendly support for asynchronous web development
A proven tool in use at Q2 for a decade
Choice of IDE
1 hour Technical Setup Review

Accessing shared-dev-machine with SSH

Confirm everyone’s setup

Python interpreter
Start an SSH Session
Remote Debugging
Database Connectivity

Accessing test form in your online stack

Gitlab

Confirm everyone added SSH keys to Gitlab and ran ‘clone_from_gitlab’
2 hours Caliper Tutorial part 1
Working with virtual environments
Caliper command line
-h flag
Tab Completion
Guided Tutorial work session
1 hour Lunch
2 hours Mad Lib exercise
N/A Q2 Building Tour (If holding training in person)
N/A Day One Survey

Day Two

Time Title Contents
1.5 hours Q2 Architecture

Stack overview

Database architecture

Users
Accounts
Groups

How data is accessed

HQ
Ardent
Wedge
Other APIs

How the SDK accesses data

HQ API
Stored procs
Third party calls
Calling back to your core
2 hours Caliper Tutorial part 2
Guided Tutorial work session
Tecton
1 hour Lunch
2 hours SendSecureMessage Exercise Push answer to git branch (Gitlab)
1 hour Coreflows and Q2-Cores

Challenges with cores

No access to cores in development
No consistency between cores
Can only test in production

What is a “Coreflow”?

How Coreflows are used to make new core calls
Queriew
Models
Mappers
Tests

Building your own Core

N/A In depth discussion on requested topics
N/A Brainstorm for project/start project
N/A Quiz Time!
N/A Day Two Survey

Day Three

Time Title Contents
1 hour GitLab and Deployment Process

Preparing for deployment

Run any tests
Q2 check
Our expectations for submitted code:
Executes without errors
Tested in your Online Sandbox Environment
Q2 check passes
Unit tests pass
Works on all device types
Adheres to security requirements

Deployment Flow

Request
Push branch to gitlab
Create a deployment ticket in the Q2 Dev Portal
Review
How we review code
Communication during review
Approval
Submission for deployment
Dockerization
Submission to Cloud Ops
Installation in environment
Acceptance
Allowing access to test groups
Allowing wider access to deployed extension

Internal Deployment Tools

Caliper Deployment Manager
Gitlab CI
1 hour Caliper processes and best practices

Logging and accessing logs

Sandbox
Datacenter

Taking an Upgrade

Linting

Unit testing

Why unit test
What to test
How to write and run tests

Quick Reference Guides

5 hours Work day: solve a business problem with the SDK

Ideas if you don’t have a business problem to solve yet:

Travel Notification
SSO Tutorial
Central Extension Tutorial
Periodic Job Tutorial
Client Side Rendered Dashboard
Server Side Extension with Ajax calls
30 minutes Feedback, final Q & A
N/A Day 3 Survey