The Pirates 365 Recruit Terminal – Glossy pixels & Thieving Bastards

Shiny, glossy user interfaces would earn this badge, it won’t break on small screens right?

So, at the request of the judges, we will shed some more light on our app, its UI and super glossy pixels.

The app is made in vue.js and contains three main components:

  • The ThreeD component, responsible for rendering our 3d parrot
  • The FormUI component, responsible for rendering text and input
  • The Camera component, responsible for gathering camera input, object detecting and debug interface

The ThreeD Component

In this component we use troisjs and three to setup a scene containing camera, lights, our parrot model, and positioning this to match the rest of the UI.

As the model we are using contains all the different animations inside on animation sequence, we have to split it up into different actions, like idle, scream, takeoff etc.

The FormUI Component

Adhering to the shadow first(tm) principle

In this component we use vue template logic in combination with CSS and stolen borrowed texture to create the interface for providing instructions and gather inputs. We also managed to sneak in the actual font borrowed from The Secret of Monkey Island, after battling with getting ttfs converted to woff🐶.

The Camera component

The camera component is not seen on the screen and does not directly contribute to the UI. However when for debugging we’ve build a little UI to show the detected objects.

The Existential Risk – using AI to detect potential recruits and giving them proper pirate names

Pirates 365 uses several AI components

TensionFlow

We are using Tensorflow to detect passing pirates

Tensorflow can run in the web browser, and is able to both detect persons and other objects like bottles.

Hooking up the webcamera with the frame analyzer
Detecting bottles and pirates

ChatGPT to create PirateNames

We have already blogged about how we are usting OpenAI’s DaVinci model to generate Pirate Names here

Here we use the following prompt

Create a creative and cool pirate name from the name "{firstname lastname}".  Do not use the word "captain". Answer only with the name - max 3 words. Only output text characters a-z, no special characters!

Hipster-ish technology

Making this we leveraged vue.js, pinia, three, troisjs, tensorflow, ChatGPT. The list goes on 😉. All pretty hip, (almost) non-ms technology.

Badges

We hope this sholud be sufficient for getting the AI- and Hipster badge 🏴‍☠️✌️🦜

🦜Awesome community champions – helping our good friends at ❤️PowerPirates of AxData ❤️

When we went to the dinner friday evening we discovered a serous security incident at our friends and good neighbours at the PowerPirates of AxData. Two of their team mebers had forgotten to lock their computers!

It seemed like their were logged on their systems. Instead of doing as ordinary pirates 🏴‍☠️probably would do and destroy all their things we did THE RIGHT THING and locked their computers using the very special keyboard combination (Windows + L) ❤️

❤️All the best to the Power Pirates from the Sabeltanns❤️

Onboarding flow for new pirate recruits

An important part of Pirates 365 Recruit is the onboarding flow:

The super-popular Pirate Recruitment Terminal (PRT) give a lot of leads, and it is important for the HR team not use too much time onboarding the pirates

We have created a Power Automae flow that automates much of this, with the following features

  • Generate Pirate Names (described in this post)
  • Generate Lead in Dataverse
  • Prompt adaptive card in Teams
  • Generate Azure AD user
  • Add newly generated Azure AD user to Azure AD group
  • Send SMS to recruit with login info and link to learning game

Power Automate Cloud Flow Overview

Creating Leads in Dataverse

After the pirate name is generated a lead is created in Dataverse

Usling Leads in Dataverse the recruitment team can collbaorate on the candidates – all integrated in the Recruitment Teams Channel.

Creating Adaptive cards

We are also posting adaptive cards to the team, and is possible directly from the adaptive card to accept the pirate recruit to go further down in the recruitment proccess

Generation of adaptive card. Generated in https://adaptivecards.io/ to get a nice design and actionable buttons

Create users in Azure AD, assignment to security roles and licenses

After the recruit is accepted the newly hired i created in Azure AD and given proper licenses and permissions

We are using Azure AD Security groups to dynamically assign licenses to the newly accepted pirate recruits

Here we see that they get Dynamics 365 Customer Engagement licenses – so they can use our powerapps with a lot of fancy premium features✌️

Last but not least – telling the newly hired pirates how to login by sending a SMS

After all this we need to notity the pirates how to log in

We send a SMS using the Norwegian SMS-provider “Sveve” which have a simple API.

We send the username and the generated password (which the recruit must change on first login)

A link to the pirate training is included, so the pirate can train to be a worthy pirate

Badges

We think this solution may qualifty for

  • Feature Bombing by using five different services in one flow
  • Power User Love by using a nice combination of Power Automate, Microsoft Teams and Dynamics 365
  • Stairway to heaven by using Azure AD API; Dataverse API and Teams API

The Pirates 365 Recruit – Pirate recruitment terminal (PRT)

Recruitment is an important, and integrated part of Pirates 365, to acquire the best talent for our crew. To help us with this we have developed The pirate recruitment terminal (PRT). This solution provides us with a visually appealing and an engaging experience to gather new recruits.

Illustration of the Pirate recruitment terminal’s place within the Pirate 365 Recruitment module, along with the other modules.

PRT User flow

Since pirate recruits normally aren’t that familiar with modern interfaces, we have chosen a living parrot to help and guide the user and provide a smooth user experience.

When a pirate is detected, our engaging parrot approaches the pirate and presents the sign-up option. We collect personal details and complete the process by taking a picture. The collected data is then sent into the platform for future processing.

Sign-up form
Picture capture

The Pirate recruitment terminal technology stack

PRT The app is running on the vue.js progressive javaScript framework with Pinia🍍 for state management. For the 3d animated parrot🦜 we are using three.js and TroisJS with WebGL rendering. For AI vision👁️ and object detection🤠 we are running tensorflow under the hood. If available the model is running on GPU, if not we fall back to CPU.

Images, 3d model, fonts is stolen captured on the internetsea.

Everything is running in the local browser🤓

Using Power Automate to create Pirate Names using OpenAPIs Davinci model

Bacground: When recruiting potential pirates we want to give them proper pirate names. Pirates 365 is a service oriented platform, and the recruitment frontend posts potential new pirates through a Pirate

Our solutions is using Power Automate and the HTTP Trigger to accept new pirates

We are using the OpenAI (independent publisher) step found in Power Automate (https://learn.microsoft.com/en-us/connectors/openaiip/) since it is yet not so easy to get access to Azure Open AI which probably would be better.

We had to do some tuning to get a little bit different answers – at first it just returned “Captain firstname lastname”, but after some tuning by setting down the temperature from 1 to 0,7 and explicity saying not to use the word “captain” we got the desired result.

We are creating the new pirate recruits as Leads in Dataverse so the recruitment team can contact them for possible empolyment

Here is the lead created in Dataverse shown in the “Pirate 365 Manage”, ready to be qualified as a proper Pirate!

We aim for the badges “go with the flow” for using Power Automate Cloud Flows and “The Extstential Risk” for innovative use of AI

Sail into the Future with Pirates 365: The Comprehensive Pirate Management Solution – Evidi Sabeltanns

Welcome to Pirates 365: A Comprehensive Pirate Management System

In this era of innovation and technology, it’s time to take the pirate world by storm with a new, cutting-edge system that will revolutionize the way pirate fleets are managed. Introducing Pirates 365: a one-stop solution for pirate management, from recruitment to send-off.

Pirates 365 is a comprehensive, end-to-end system designed to streamline the entire pirate management process, from the recruitment of new pirates to their training and management, and finally, their send-off. This system is built using Teams, Dataverse, and Power Apps, ensuring that it is both user-friendly and highly efficient.

Pirates 365 is made up of several modules, each designed to meet the specific needs of the pirate management process. Let’s take a closer look at each of these modules:

1. Pirates 365 Recruit: Recruitment of Pirates

Pirates 365 Recruit is the first module of the system and is responsible for managing the recruitment of new pirates. This module streamlines the recruitment process, making it faster and more efficient. With Pirates 365 Recruit, you can easily manage applications, resumes, and candidate information, ensuring that you can quickly and efficiently find the best pirate candidates for your fleet.

Here we want to use a webapp using vue.js, and running it on an ipad. Here we can take pictures of the potential recruits and upload them to our recruitment system

2. Pirates 365 Learn: Pirate Training – Pirate Simulator

The second module of Pirates 365 is Pirates 365 Learn, which is responsible for training new pirates. This module includes a pirate simulator, designed to help new recruits get up to speed on the skills and knowledge needed to become successful pirates. With Pirates 365 Learn, you can ensure that your pirates are well-trained and ready to embark on their pirate adventures.

We aim to create a Pirate simulator using our shiny Logitech C920 Steering wheel and the state of the art Game Engine Power Apps (Canvas Apps).

Very early prototype of the Pirate Siumlator

3. Pirates 365 Manage: Pirate Fleet Management

Pirates 365 Manage is the third module of the system, and it’s responsible for managing the day-to-day operations of your pirate fleet. This module includes tools for tracking pirate performance, managing assignments, and monitoring fleet resources. With Pirates 365 Manage, you can easily keep your fleet organized and running smoothly, ensuring that your pirates are always ready to set sail on their next adventure.

4. Pirates 365 Refine: Pirate Offboarding

Finally, Pirates 365 Refine is the last module of the system, responsible for managing the send-off of pirates who have completed their service in the fleet. This module includes tools for tracking pirate performance, managing the offboarding process, and ensuring that all necessary information is captured and stored. With Pirates 365 Refine, you can ensure that your pirate send-off process is efficient and smooth, allowing you to say farewell to your pirates with the respect they deserve.

Example of successful offboarding of a pirate

The Architecture of Pirates 365

In this chapter, we’ll take a closer look at the architecture of Pirates 365 and how its components work together to create a comprehensive pirate management system. Whether you’re a tech-savvy pirate or simply looking to understand how the system operates, this chapter will provide you with all the details you need to know.

The architecture of Pirates 365 is designed to be highly efficient and scalable, ensuring that the system can accommodate the needs of pirate fleets of all sizes. At the heart of the architecture is Teams, Dataverse, and Power Apps, which work together to create a seamless and user-friendly experience for pirate fleet managers.

The architecture of Pirates 365 is comprised of several components, each of which is designed to perform a specific function. These components include:

  1. Teams: Teams is the foundation of the Pirates 365 architecture, providing the communication and collaboration platform for pirate fleet managers. With Teams, you can easily share information, communicate with your team, and manage projects in real-time.
  2. Dataverse: Dataverse is the underlying database that stores all of the information and data related to the pirate management process. Dataverse is highly scalable and secure, ensuring that your data is protected and always available when you need it.
  3. Power Apps: Power Apps is the front-end interface for the Pirates 365 system, providing a user-friendly way for pirate fleet managers to access and manage the system. With Power Apps, you can easily create custom apps that are tailored to your specific needs, ensuring that you have all the tools you need to manage your pirate fleet effectively.

Each of these components works together to create a seamless and efficient pirate management experience. Whether you’re recruiting new pirates, training your crew, or managing your fleet, Pirates 365 provides you with the tools you need to get the job done.

Fist revision of Dataverse tables to hold information about Pirate Ships, Pirates, Learning progress etc

Conclusion

In conclusion, the architecture of Pirates 365 is designed to be both efficient and scalable, ensuring that it can accommodate the needs of pirate fleets of all sizes. With Teams, Dataverse, and Power Apps at its core, Pirates 365 is the ultimate solution for pirate fleet management.

Pirates 365 is the ultimate solution for pirate management. With its comprehensive set of modules, you can streamline the entire pirate management process, from recruitment to send-off. So why wait? Join the pirate revolution today and take control of your pirate fleet with Pirates 365!