Natively saving the environment! (and thusly the world)

Given that we cannot deploy a sensor rig to every inch of the Oslofjord, much less the world, involving the local community is vital. We have achieved this through a simple app that lets the locals report any pollution/monster -event they encounter. We’ve built it on Xamarin to enable us to easily deliver it to both android and apple users. For ease of use the app will use the device’s built in sensors to construct the event payload before sending it through to the event hub.

Anyone can report an incident in this manner. The message is fed straight into our eventhub, from there we alert the necesary ninja turtles to their duty (if necesary).

A simple alert in eventhub

{​​”eventType":"environmental","latitude":"59.977874","longitude":"10.636827","soundlevel":"177","pirdirection":"e","soilhumidity":"4","temperature":"-39","timestamp":"2/12/2022 12:26:29 AM","sonardistance":"144","uvlevels":"8","dustlevels":"94","waterlevel":"1"}​​

The above payload illustrates how a community member report might look.

Cowabunga!

Really, why not, when it gives such a higher user experience!

And now it’s time to show the first of our really good user experience features in the solution. To be honest, if you told a HR person today that he could do two clicks in his HR system and type the agreed salary (or proposed salary, of course this can be changed during the signing process, I mean, why shouldn’t that be possible in 2022?), and right away send an Employemnt Agreement to the candidate they’ve decided to hire? We know that the HR department at our company now will want us to implement this app as soon as we’re back at the office on Monday (yep, I know you’re reading this Christian, we’ll talk on Monday reguarding the expence claim from the bar). But, to get to the point. We’ve created an app, and published it in the Personnel Management workspace in D365 HR, and if you click the tab to open the app embedded in the workspace, you get to choose the canidate you want to sent an Employment Agreement to for signing and just do it:

Click the tab for the app
The app opens, edit what you want, and send the Agreement to the candidate for e-signature through the 3rd party solution OneFlow to be signed with Bank-ID

Embedding Numbnuts

Alarm System

Turtles HQ was in dire need of a solid security system. Being in the sewage system underground they decided that tripwires was the absolute best way to achieve wanted level of security.

When the magnet is tripped/removed (white item on right side of picture, a signal is sent to Raspberry PI that starts a flow. This is a on/off trigger.

If the Trap step notices a change, the node is checked for status on/off. If is is ON, it will call the service that activates full alarms for the Turtles HQ. Alarms visual and audio are full blast.

Pizza Order

The Pizza delivery has also been equipped with sensors that notify when a pizza has been delivered. When the pizza has arrived at the spot, a signal is sent via Zigbee to raspberry pi, and from here it changes the light to Green for a successful delivery.

Go with the FLOW

We have a fully automated system for pizza order status. The purpose of the flow is to notify the users when the pizza order has been received by the system..

When a user orders a pizza through any application (web, chat or app), the order is stored in Dataverse. This is the beginning of all flows on the trigger (create).

From here it is picked up by Power Automate. Power Automate sends a trigger to Power Automate Desktop.

Power Automate Desktop sends information to raspberry pi via desktop flow. This was achieved by registering my machine as approved machine for Power Automate online. All because the firewall on prem was blocking direct traffic.

Raspberry PI triggers a Home Assistant flow that turns the light to blue. This is a lot like a Microsoft Power Automate flow that is a sequens of actions working to acheive communication with wireless devices onpremise.

Plug n Play take 2

PCF plugin component developed in react – deployed into a PowerApp (model driven app)

Re-read the old post at PCF + React + Pizza = Great user experience | Arctic Cloud Developer Challenge Submissions (acdc.blog)

The PCF component written for a model driven app is a fully integrated application running on React. PCF components in Model Driven Apps are fully isolated apps that can run complex operations that are not directly related to dynamics. In this case it retrieved map information from API and shows distance and est delivery time based on location.

The search bar on top interacts with googles live address search API.

Once the search is complete, the address is written to the Model Driven app that hosts the PCF React application.

Need to figure out the time it takes for pizza to be deliverd to your work place from any pizza place, we can easily take the React component and re-build as an office add-in, teams add-in – anything you want add-in. And you are just a click away from knowing how long it takes before it’s here!

Pizza Time ordering app

Power Apps ordering app within teams that gives access to easy pizza ordering. The app is fully functional for pizza ordering operations.

Pizza Time Ordering Chat bot

Fully integrated ordering solution for pizzas with the use of a chat bot integrated in Teams

Giving customers easy options for ordering is key for selling more Pizza.


Update after request from judges, and new badge claim!

Since we didn’t show enoug last time when trying to clam the Retro badge, here we go again! Here we will show how we used paint to create the sause for the Pizza in the Head 2 Head challenge. But, paint wasn’t enoug, so we had to use Power Point as well. Had to make the transparent background in Power Point, as it’s not possible in Paint. We think that all graphic designers would either shoot themself or turn around in their grave if they knew we did this to make a red round object with a transparent background. So, if this is not a dirty hack, then how would you explain why not to the graphic designer that’s about to …… Yeah, you know…

Guiding turtles in the field to their destination

The Field Service mobile app was chosen as the main application for turtles in the field because it draws on the same database as that of the operators by default. Another reason for this choice is the fact that it has a host of functionality readily available for use without the need to build an app from scratch like we had to do for the public distress call app.

One of these features is the built-in map in the application that allows turtles to check locations, check directions and plan ahead while rushing from one emergency to the next.

This particular turtle had to rush home to take care of the family in a very real Covid-related emergency, so as you can see he is currently operating out of Vestby. Dispatchers were not aware that he left crime central, AKA. Oslo, and booked him to respond to an armed robbery in Sandvika:

Realistically speaking, Donatello would have phoned in his absence so that dispatch could manage it, but for the sake of argument let’s say Donatello decided to respond to the robbery. Tapping the location pin in the mobile app brings up quick information about the event; the emergency reporter and the nature of the emergency:

From here, Donatello taps the direction arrow symbol, and is taken straight to Google Maps with the destination coordinates already filled in. Tapping “Start navigation” brings up the navigation interface we’re all so used to seeing:

Petition to have Google add “Turtle” as a way of transportation anyone?

Glossy f*** pixels

User Experience is very important to PowerSwapCorp. To create great user experience we make sure that our visual identity is clear and consistent across all apps; for the customer as well as for the backoffice.

Visual identity

To start with a strong and clear visual identity is important. This is a guideline that all developers follow and will be embedded into all applications and communication we do as a company.

Logo

The logo comes first; it needs to depict the spirit of the company and tell you something about the company’s tone of voice. Our logo has a cartoony fell to it, has bright colours and high levels of contrast between the colours. This makes for an unserious appearance, a light and playful personality and personal tone of voice.

We created three versions of our logo – for different purposes.

The full logo looks like this:

The icon-version is the circle without the text. This version works well as icon, favicon in the browser and app icon.

The version with only the text is suitable for business apps and other applications where there is limited vertical space:

Colours

We get the primary colours from the logo, and use them to get attention, provide usability clues and add playfulness. The colours are:

Fonts

We wanted to use a special font that has the same associations as the logo and the colours; unseriousness, youth and innovation – but add a flare of techiness and geekiness. That’s why we chose the Google font “Source Code Pro” as our primary font.

You find the font here: https://fonts.google.com/specimen/Source+Code+Pro

Portal

The customer portal is branded with the logo, our font and the colours. It’s the most important window out to our customers, and therefore the most important way we can infuse our brand.

Visit the portal here: https://powerswap.powerappsportals.com/

First, we made sure the favicon (browser icon) is our icon-version of the logo.

Then we implemented a theming system using SCSS based on bootstrap. Portals are built on Bootstrap 3.3.5. The font is added as well as images that enforce our visual brand as playful and fun.

Canvas App – Seller App

Customers can sign up in the portal by themselves, but sellers are also on the road selling to customers. We created a canvas app that enables the sellers to sign new contracts on the road from their phone. It’s also branded to to enforce the brand. This is important for employee apps as well as customer apps, as it will enforce the brand presence.

PowerBI

We also have PowerBI reports for the end under; embedded on the portal. This report also have branding with colours and logo according to the visual profile.

This report is also a tool for management when they need to follow up on customers savings and how the business is going.

Model Driven

Of course the business apps the backoffice is using to handle all the customers, the contacts, their contracts and other related tables is branded.

This concludes the branding and glossy pixels for our solution.

Kjøleskapet kan se pt. 2

Nå har vi bygget videre og kommet opp med et mye mer robust kjøleskap. Flytteesker kan brukes til så mangt 😎 Fortsatt en del testing med forskjellige frukter (man tager hva man haver). Responsen er så som så, men vi er på god vei. Klementin ble tidligere eple (ref. https://acdc.blog/in2022/kjoleskapet-kan-se/), nå er appelsin appelsin, og eple er eple 🎉

Her har vi en appelsin innendørs i et kjøleskap med både vegger og gulv. Imponerende? Yes!!!
Og her er hva som ble tatt bilde av. 1-0 til AI

Oppsettet er som følger:
Webkamera montert i kjøleskapsdør, koblet til Raspberry PI.
Arduino med knapp (les mye frustrasjon med KNAPP!!!!) som trigger kamerabilde ved åpning av kjøleskapsdør.
Arduino styrer i tillegg en trinnmotor som spinner en kul 3D-printet bling på toppen av kjøleskapet (bling kommer, men se bilde).
Alt på Arduino styres av den samme Raspberry PI’en ved hjelp av Python.
Når bilde er tatt, sendes det til Azure Cognitive services for analyse, og responsen kommer som oppdagede objekter. Deretter matcher vi dette med vår egen ingrediensdatabase i Dataverse via en Power Automate flow (kjøres via en HTTP request trigger i flowen) som oppdaterer ingredienser med attributtet “In fridge” = True/False.

Bildet under viser flowen som trigges fra kjøleskaps-raspberryen. Deretter oppdateres status på hva vi har i kjøleskapet. Dette er deilig å slippe og gjøre manuelt.

Her har vi integrert rubbel og bit, og det fungerer!

Det vi frykter nå er at maskinene skal vende seg mot oss, og si at kjøleskapet er tomt til en hver tid. Da kan vi risikere å sulte i hjel foran kjøleskapsdøren.
Men inntil videre velger vi å stole på vår kjære Fridgitoid 9000

Party party, yes yes!

Well, let’s all agree on something, this is a good old fasion LAN for us adolt nerds. And we love it! But, for us, it wouldn’t be a LAN without some good 90s music! That’s why we wanted to share this mood with you all Friday night! And yes, we saw both hands in the air, heads nodding a little bit more than normal to the beat, and legs mysteriously move to the music. Thank you all, we love being here and hope you enjoyed it (we know Ulrikke did)! <3
And, since we got several request fro the playlist link, here it is (yes, it’s called Øyvind 30 år, it was the playlist for that birthday):
https://open.spotify.com/playlist/21bam2VESfvhlmNsZi0SDF?si=aa0660cc2e5d4d17