Have your school under control with Marauder’s Map, incuding mobile app and searching in multiple ways

14:41: Updated to include additional information around embedding the map in a mobile app and searching in multiple ways.

You want to see if other professors are around in the school? We found a magical map in the School form of our OwlExpress app. The Marauder’s Map is using Websockets magic to track everyone on the school premises Right Now.

It also is using device embedded voice recognition to understand your spells, you need to say: “I solemnly swear that I’m up to no good.” if you want to see the map.

When you are done and want to hide the map you must say: “Mischief Managed!”.

Do you like the glossy pixels of this map?

Mobile Map

We have also managed to embed this into a canvas app for a mobile delivery for sneaky students upto no good.

Searching in many ways

We have also introduced a glossy new feature for searching our student database in multiple magical ways, searching via standard text boxes, searching by scanning a business card, drawing a students name and utlising Copilot.

Enchanting AI Face Recognition

In a world where wizardry meets cutting-edge technology, even the darkest assignments get a modern twist. Welcome to “The Dark Side of Harry Potter” Canvas App, where users verify their “assignments” (yes, kills 🪦) using the enchanting power of Azure Face API and Azure OpenAI.

This isn’t just tech; it’s a spellbinding mix of mystical AI, intuitive designs, and enchanted workflows. Let’s dive into how this solution flips bits, turns heads, and perhaps, toys with an existential threat to the world.


🖼️ Capturing the Kill

Step into the dark arts of delivery confirmation:

  1. Snap the Moment: Users submit photographic evidence of their completed assignments via the app.
  2. Cast the Spell: The image triggers a Power Automate flow, sending it to Azure Face API for identity matching.
  3. Instant Confirmation: With a calculated similarity score, the app declares success with magical flair: “Assignment Complete!”

🔍 How AI Face Recognition Works Its Magic

Azure Face API isn’t just a tool; it’s the wand wielded behind the curtain. Here’s its spellbook:

  1. Facial Feature Analysis 🧙‍♂️
    The “kill” image is analyzed for key facial landmarks: eye position, jawline curves, and more. Each unique marker is measured with surgical precision.
  2. Image Comparison ⚖️
    Uploaded images are cross-referenced with pre-stored profiling images, calculating a similarity score based on:
    • Alignment of facial landmarks.
    • Proportions and symmetry.
    • Subtle markers that make faces unique.
  3. Real-Time Results
    With wizard-like speed, Azure Face API returns results to Power Automate in mere seconds. If the similarity score passes the threshold, the dark deed is verified.

🧠 Adding AI Sorcery with Azure OpenAI

We’ve upped the ante by integrating Azure OpenAI to enhance verification. Here’s what makes it extra enchanting:

  • Landmark Precision: OpenAI uses facial attributes like eye spacing, nose position, and cheekbone structure to calculate distances between landmarks.
  • Magic Math: These distances are used to generate a similarity score with almost clairvoyant accuracy.

But wait… does this tech have a conscience? Does it think? Could it outsmart a 5th grader? Maybe even you?
By embracing such advanced AI, we’ve tiptoed into an existential risk realm:

  • Risk or Reward? The tech is smarter, faster, and eerily close to independent thought.
  • Conscience in Code: What if it started deciding on its own? Could it be charmed—or is it the new Dark Lord in disguise?

The response from the AI after verifying the image has been run through magic.


📲 Integration: A Solution for Every Platform

This isn’t just an app—it’s an omnipresent force:

  • Embedded Everywhere: From Phone to PC, the app integrates seamlessly into every digital corner.
  • Flipping Bits with Power: Whether on a desktop, tablet, or phone, this solution works its magic across devices.

🌟 Casting a Spell with Technology

What makes this solution truly magical?

  • Intuitive Designs: The interface is sleek, responsive, and dripping with a mystical vibe.
  • Enchanted Workflows: Every process, from snapping the image to confirming the deed, flows like a well-rehearsed spell.
  • Business Value Meets Wizardry: By automating and verifying critical tasks, this app doesn’t just entertain—it delivers results.

⚡ The Bigger Picture: Wizardry Meets AI Risks

As we push the boundaries of AI and magic, we also recognize the need for vigilance. Azure OpenAI introduces risks we must respect:

  • Could this tech someday outthink its creators?
  • Are we summoning tools too powerful to control?

Yet, as any great wizard knows, power isn’t inherently evil—it’s how we wield it that matters. And wield it, we shall.


“With AI face recognition from Azure Face API and OpenAI, the lines between magic and technology blur into something truly extraordinary.” 🪄

Power to the developer, and MAGIC!

When a pro-code developer creates magical code, we low-code developers need to assist where we can to speed up the work. We have created a good solution based on Azure AI Services, where we send data from Dataverse via Power Automate to a Python Flask app that translates everything we send into a message delivered to our Howler. Given the time we had, this would not have been possible.

The physical Howler integration is approaching, and the Arduino is working hard. It’s put together by paper, tape and glue. And much love! Here we have an example of what we have in store:

An example of translation and delivery of message follows:
“I don’t like you anymore. You have proven to be untrustful!” -> “Dear Sirius,

Oh, how the tides have turned! I find myself in a whirlwind of emotions, and I must confess, I don’t like you anymore. Your betrayal stings like a Cruciatus curse, and it’s clear you’ve proven to be utterly untrustworthy!

How could you, of all people, turn your back on family? It’s as if you’ve taken a page from the Marauder’s playbook, but this time, it’s not a prank—it’s a dagger to the heart!

Desperation claws at me, and I can’t help but feel the madness creeping in, like a Dementor’s chill. You’ve left me no choice but to sever the ties that bind us.

Goodbye, Sirius. May you find your way back to the light, though I fear it may be too late for you.

Yours in fury,  
Bellatrix”

Our architecture

Coding the Magic: Embedding Numbnut with PowerPotters’ IoT Setup

Greetings, wizarding developers and tech enthusiasts! ✨

At Team PowerPotters, we’re always looking to bring the magic of innovation to life through clever use of hardware and software. For our submission to the Embedding Numbnut badge, we present the heart of our IoT-powered solution: an ultrasonic sensor connected to an ESP32 microcontroller, bringing physical interactions to our potion production platform.

Here’s how our code, coupled with an end-to-end setup, transforms real-world sensor readings into actionable data for our modern workflows.


🪄 The Ultrasonic Detector: Turning Hardware into Magic

Our ultrasonic detector is more than a simple sensor—it’s the spark that initiates our potion brewing process. Connected to an ESP32 microcontroller, it captures data in the physical world (like liquid levels or proximity) and seamlessly integrates it with our cloud-based systems using Power Automate.

Key Features of the Sensor Setup

  • Real-Time Data Capture: The ultrasonic sensor measures distances (or liquid levels) using sound waves, triggering actions when specific thresholds are reached.
  • ESP32 Integration: The ESP32 runs the control code, processes sensor readings, and communicates with cloud endpoints via Wi-Fi.
  • Cloud Connectivity: Using HTTP POST requests, the ESP32 sends data to Azure Logic Apps, triggering automated workflows for further processing.

🧙‍♂️ The Code That Makes It Work

Below is the magical incantation—our C++ code—that powers the ultrasonic detector. Let’s break it down:

#include <WiFi.h>
#include <HTTPClient.h>
#include <ESPAsyncWebServer.h>

// Define GPIO pins
#define LED_PIN 18
#define ULTRA_SENSOR_E 4
#define ULTRA_SENSOR_T 2
#define TRIGGER_pulse 1

int DURATION;
long DISTANCE;

// Wi-Fi credentials
const char* ssid = "Simen's Galaxy S20+ 5G";
const char* password = "#######";

// Server endpoint URL
const char* serverUrl = "https://<YOUR-ENDPOINT>";

AsyncWebServer server(80);

void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(ULTRA_SENSOR_E, INPUT);
pinMode(ULTRA_SENSOR_T, OUTPUT);

WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to Wi-Fi");

server.on("/trigger", HTTP_POST, [](AsyncWebServerRequest *request){
digitalWrite(LED_PIN, HIGH);
sendDuration();
digitalWrite(LED_PIN, LOW);
request->send(200, "text/plain", "Request received, duration sent");
});

server.begin();
}

void sendDuration() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(serverUrl);
http.addHeader("Content-Type", "application/json");

sense();
String payload = "{\"duration\":" + String(DURATION) + "}";
int httpResponseCode = http.POST(payload);

if (httpResponseCode > 0) {
Serial.println(http.getString());
} else {
Serial.println("Error sending POST request");
}
http.end();
}
}

void sense() {
digitalWrite(ULTRA_SENSOR_T, HIGH);
delay(TRIGGER_pulse);
digitalWrite(ULTRA_SENSOR_T, LOW);
DURATION = pulseIn(ULTRA_SENSOR_E, HIGH);
DISTANCE = (DURATION * 0.034 / 2) + 1;
Serial.println(DURATION);
Serial.println(DISTANCE);
}

How It All Comes Together

  1. Sensing the Magic:
    • The ultrasonic sensor emits sound waves, measuring the time it takes for the echo to return and calculating the distance.
  2. Data Processing and Transmission:
    • The ESP32 processes the sensor data and sends it as a JSON payload to an Azure Logic Apps endpoint using HTTP POST requests.
  3. Triggering the Workflow:
    • The payload is received by Power Automate, initiating a series of actions, such as potion brewing approval or status updates.
  4. Automation and Insight:
    • The sensor data is logged, analyzed, and acted upon without any manual intervention, showcasing true IoT integration.

🐍 Why This Deserves the Embedding Numbnut Badge

Our setup is the perfect embodiment of Embedding Numbnut:

  • Hardware Integration: The ultrasonic sensor and ESP32 work in harmony to capture and transmit real-world data.
  • IoT Innovation: We’ve demonstrated how to bridge the gap between physical hardware and cloud-based workflows.
  • Seamless Automation: By connecting sensors to Power Automate, we’ve eliminated manual tasks, ensuring precision and efficiency.
  • Slytherin Ambition: True to our house, we’ve taken a simple sensor and turned it into a powerful enabler of potion production magic.

🪄 A Picture Is Worth a Thousand Spells

Below is a snapshot of our code being loaded onto the ESP32, where the magic begins:


🔮 The Future of Embedded Magic

With our ultrasonic detector at the heart of our IoT setup, we’ve showcased how embedded hardware can power real-world automation. We humbly submit our case for the Embedding Numbnut badge, proving that even the smallest components can create the most magical outcomes.

Follow our journey as we continue to innovate and enchant the world of ACDC 2025: acdc.blog/category/cepheo25.

#ACDC2025 #EmbeddingNumbnut #PowerPotters #IoTMagic #SlytherinInnovation

Claiming the Embedding Numbnut and Retro Badge

Hackathons challenge us to think outside the box, and our project brought together modern innovation and retro charm. We’re claiming two badges that perfectly showcase this fusion: Embedding Numbnut and Reto Badge. Here’s how we earned them!

🪞 Embedding Numbnut

When you think of “embedding,” your mind might go straight to software and APIs. But why stop there? We decided to embed technology into a physical object: a mirror.

  • What We Did:
    • We started by building a physical frame for our smart mirror, creating a seamless combination of form and function.
    • Behind the reflective surface lies a digital interface, powered by a screen and fancy software. The result? A fully interactive experience that combines the elegance of a mirror with the power of modern technology.
    • This transformation – taking a humble, everyday object and embedding it with a rich digital experience – redefines what it means to “embed.”
Behold the mighty mirror of Noitceles. Note the QR code, its mentioned below!

Our smart mirror isn’t just tech slapped onto a frame; it’s a deeply integrated design that blurs the line between physical and digital.

🕰️ Reto Badge

Every great innovation owes something to the past, and our project embraces retro technology in creative ways:

  • The Mirror:
    • Mirrors are an ancient invention, going back thousands of years. By using this timeless object as the foundation of our tech project, we brought a sense of history into the digital age.
  • Retro Tools in Modern Tech:
    • We used jQuery on Power Pages to manage interactive elements. Sure, jQuery might feel like a blast from 2013, but it proved to be a reliable and efficient choice for this project.
    • Our project also includes QR code generation, another nostalgic yet practical feature that bridges past trends with current functionality.
Oh the jQuery

By blending modern capabilities with retro technologies, we’ve crafted a project that feels both forward-thinking and delightfully old-school.

Withcher 4 – The wild badge hunt. An Exciting Journey Through Challenges and Triumphs

Long time since the last badge hunt…

In the fast-paced and exhilarating world of hackathons, few events shine as brightly as the ACDC Hackathon. This year, participants from all corners of the tech community gathered with one goal in mind: to push the boundaries of innovation and creativity. Amidst the coding sprints and problem-solving marathons, a unique and thrilling aspect stood out – the quest for badges and achievements.

Collecting badges in the ACDC Hackathon isn’t just about a sense of accomplishment; it’s a testament to the skills, perseverance, and collaborative spirit of the participants. From early morning brainstorming sessions to late-night debugging frenzies, every moment was a step closer to earning those coveted badges that symbolize mastery and ingenuity.

Join us as we delve into the journey of collecting badges and achievements in the ACDC Hackathon. We will explore the different challenges faced by the participants, the strategies they employed, and the unforgettable moments that defined their path to success. Whether you’re a seasoned hacker or a curious onlooker, this blog post will give you an insider’s view of what it takes to excel in one of the most dynamic and rewarding hackathons around.

When entering the HogWorkPlace Power App for the first time, you’ll be greeted by a landing page that seamlessly integrates with your house. Using Azure AD groups, we represent each house in vivid detail.

But wait, what’s that in the corner? It’s DobbAI, your personal AI house-elf assistant, ready to cater to your every need. DobbAI is a Copilot Studio agent, imbued with the charm and wit of a real house-elf. Its knowledge is deeply integrated with the rest of the intranet housed on SharePoint. Curious about tonight’s dinner? Simply ask DobbAI to fetch the menu from a SharePoint list.

For us, SharePoint isn’t just a repository; it’s the lifeblood of our data, securely storing and managing it alongside connectors to tables in Dataverse for seamless solution engagement. When you interact with DobbAI, you’ll authenticate using the robust Azure Active Directory V2 method. The AI is then published to a custom website channel, providing an iframe that seamlessly integrates with our React PCF component, all meticulously deployed to the power app solution.

But wait! There’s more to this dance we call “client-side salsa”. Within SharePoint, you’ll find an embedded Viva Engage and SPFx web part that displays the Hogwarts academic calendar, keeping you updated on both school events and social engagements. And lastly a Daily Proft newsfeed. All available via the canvas app, or just ask Dobby for directions 😉

The benefits of mixing magic with ancient magic

Our OwlExpress solution needs to get the list of possible future wizards from a different set of data sources. We are merging these data into a PowerBI report so that the segmentation can be easily done using the slicers in a more intuitive way.

This Report is integrated into an MDA using a PCF control that House Elves Limited created that can save the segment chosen by the user using the Export Segment command.

This will trigger a Power Automate flow that will create the applications for all future students of the chosen segment.

To integrate the PowerBI report the following API’s are being consumed:

The PCF component has been developed using Test Driven Development and Storybook which allows you to fail fast and often and reach success faster.

The component is a react/virtual component, which simplifies a lot the separation of concerns into different components.

The code has been structured using the best practices for PCF components. We are using a Solution Project to simplify the build of the Solution that contains the component.

To standardize the build and deployment process and to ensure that the PCF Version is always kept in sync with the containing Solution version a couple of PowerShell scripts have been written. This helps also with the Azure DevOps pipelines because these can be simplified to execute the exact scripts that the developer executes on their machine.

The power of integration

One of the standout features of our solution is its ability to interact directly with APIs. The beauty of the solution lies in its simplicity—no complex setup required. You can communicate with the Sorting Hat using nothing more than text input. Right now, you can interact with the solution through the Hat itself, but it doesn’t stop there. You can also access it through your phone, Sorting Hat integrates seamlessly with tools like Microsoft Teams, bringing the power of intelligent communication right into your workspace.

Thanks to an iframe integration, you can embed the Sorting Hat interface directly into your website or application. Our partners at LogiqApps have already implemented this solution with impressive results, using it to enhance their user experience and streamline communication on their platform.

While the most user-friendly options are accessible through the Hat, phone, and integrations like Teams or iframes, sometimes you need a more technical approach. For those who like to dive into the guts of the system or if you’re facing a more urgent need, you can communicate directly with Sorting Hat through Postman. This might seem like a step back in terms of convenience, but it’s a testament to the flexibility of the solution.

Magic Sensors: the enchanted Howlers of the tech world—they always tell you what’s wrong, loudly and repeatedly.

In a previous article, we mentioned that our Logiquill platform aims to help students unleash their potential using insightful information from their background, current aspirations and vision on the future. This type of data gives us the opportunity to build preliminary suggestions, but how can we make it more precise? 

For our creative minds, the first and obvious idea was to use wearable devices like smart rings and smartwatches to catch the physical metrics during the review sessions

Which metrics are available to fetch from the wearable devices? 

  • Daily physical activity (Sleep quality, number of steps, etc… ) 
  • Bio: Heart Rate, EKG, Blood pressure, Oxygenation,   Let me add a few details regarding Bluetooth devices: 

To demonstrate that type of integration during the event, we used a portable Pulse Oximeter to capture real-time health data )come and try it out by the way :)) 

This device has a built-in Bluetooth interface that exposes all available sensors, such as isFIngerExists, isCalibrated, BPM, Oxygenation, and Pleth. So, we can use HTML 5 API to make it work with our portal app to capture the health data during the students’ review session. The device uses the BCI protocol

Let us add a few details regarding Bluetooth devices: 

According to the specifications of the Bluetooth, each device must implement at least one service (Audio, UART, MediaPlayer Control, etc.). Each service can have its characteristics (Volume, Speed, weight, etc..). 

In our case, the Pulse Oximeter device has Service ID: 49535343-fe7d-4ae5-8fa9-9fafd205e455 and characteristic ID: 49535343-1e4d-4bd9-ba61-23c647249616. Here is an example of the JS code how to parse the Bluetooth packet: 

The final result looks like this and we are loving it! We hope you too 🙂