Peach Mini Games introduction

Mario is in great danger, and the fate of the Mushroom Kingdom rests on the shoulders of none other than Princess Peach. Join Peach on an epic journey as she faces a series of incredible trials. Only by conquering the game’s challenging tasks can she unlock the power to save Mario’s life.

As Peach navigates through the Peach Mini Games, her determination and skill will be put to the ultimate test. Get ready for an adventure that go beyond the boundaries of the Mushroom Kingdom, where each victory brings us one step closer to rescuing our beloved Mario. Are you prepared to join Princess Peach on this daring quest?”

The solution

“Embarking on the Peach Mini Games journey, our solution begins with a power base, showcasing all the challenges Princess Peach faces to save Mario. Using a model-driven database, we’ll create a dynamic score board with Power BI reports. To enhance the gaming experience, we’ll implement features from Copilot, and design the games following the best practices of UX principles

We claim this bagde:

Early delivery

Yellow alert! Banana detected!

Ever driven down a road, cruising at a stable regular pace, when your car suddenly starts to spin and you lose valuable time going to important places (question mark boxes). Chances are some pesky co-drivers are trying to sabotage your life by throwing banana peel in the road. Mama mia! as Mario himself would have put it.

Mama mia!

Super mario – various games

You are not alone! But fear not, a solution to this coming to your preferred application store. The app will run in the background with your phone mounted in a custom 3d-printed stand easily placed in your car. There will be a live video feed running (the user will not need to look at it for obvious safety reasons) automatically detecting incoming bananas. alerting the driver with a friendy alert urging you to avoid the detected banana peel. Early alert sketch:

Also alerts will be sent to the next of kin, conveying a message that your loved one have been in a banana accident.

System sketch

The project will use a Android app to access camera and GPS functionalities. The app features a Tensorflow model that processes the video feed and labels bananas. Once a banana is detected, multiple events occur. First, the user is alerted through the app by a blinking light and the image of a peeled banana. This helps the user avoid the banana peel. Second, the GPS position is extracted and communicated to Dataverse. Dataverse stores the position of known bananas and they are displayed in a map that is available through Teams. Lastly, multiple alerts are made. In addition to the in-car alert, the system features a next-of-kin alert in case the user hits the banana peel. Moreover, Statens Vegvesen is alerted of the banana position so that it can be cleaned up. 

Introducing the Mario Detection System (M DS)!

The system will initially consist of the Mario-detecting Camera (MDC) and the Koopa Kompanion, a canvas app for Koopas in the field.

Once the MDC detects a Mario bro, it will send a notification to all Koopas so they can see the last recorded Mario bro location and destroy him with extreme prejudice.

Look at the happy campers!!

We have adorned our camp (and ourselves) with various Mario paraphernelia. Including but not limited to baloons, hats, a table cover and moustaches.

A New Mario Rises

First Come, First Served: Fastest Customer Service Portal on the Internet 

Power Pages Customer Self-Service revolutionizes the creation of self-service portals, emphasizing incredible speed without sacrificing quality. It took less than 1 hour to create our portal thanks to pre-built templates. This rapid deployment ensures that companies can swiftly build portals for their customers  

Agenda

We will be building;
Canvas App for registering agents
Model Driven App for monitoring and managing processes
Power Pages for case creation for customers

We have a magical portal but even magic requires maintenance and improvement 

Our next steps involve customizing this customer service for our maintenance company by adding a Mario theme, more options for case creation, and even a live chat supported by AI—all for our princesses in need of a Mario’s help. 

Behind every great portal there’s a great admin center 

When you’ve gained momentum, seize the opportunity. We’ve developed the customer portal, but what about our Marios? We plan to leverage a model-driven app to establish an admin center for them. This platform will enable them to review their cases, with AI dynamically assigning Marios to cases by evaluating the case’s complexity and each Mario’s skill level. 

Even Mario needs a make up 

Are your case forms look too dull? Do you wish to spice things up a bit? We’ve got an AI-supported solution just for you. Each Mario has an AI-generated avatar and backstory. Our princesses can finally see a visual representation of their assigned Mario. 

Return of the Clippy 

Before ChatGPT, there was Clippy. While the community was excited about AI, Clippy was getting an upgrade. He returned stronger, faster, and better. By using PCF controls, we will integrate Clippy into our app, making him even more helpful than before. 

Hey there, digital adventurers! Ever found yourself lost in the endless expanse of the dataverse, wishing you had a trusty sidekick? Well, guess what? A ChatGPT-powered Clippy is just the hero you need!

Mushroom Baklava driven Development 

How will we accomplish all this in just three days? Our team needed some extra motivation. An unnamed member of our team brought some Turkish desserts for us. Whenever we earn a badge, we also get to savor a piece of delicious baklava. Other teams are welcome to try this delicacy; it’s first come, first served. 

Donkey Kong Koders – Early Delivery

We’re making a game using a mix of Power Platform and AI. It’s like a treasure hunt game with 2D graphics, and it will change and adapt based on user input preferences. We want each player to have a unique experience tailored to their joy.

Innovative Game Engine Development:

  • We’re using Power Apps to create a game engine for our treasure hunt.
  • The engine will make the game interesting by adding AI-generated content, making it more fun and dynamic.

AI-Powered Personalization:

  • We’re using AI (OpenAI) to customize the game for each player.
  • User get to select input to define the environment like:
    Character
    Door
    Floor
    Wall
    Sound track

C:

  • By using a guided selection process through chat, the user will experience a simple setup for the game.
  • The App will then connect to different AI services to generate a unique game world personalized for the player

Example of dialog:
1. Hi player “INSERT NAME”
2. Choose the Character from this list “Choose character 1-6”
3. What color Door do you want “INSERT COLOR”
4. What type of floor do you want to walk on “INSERT FLOOR PREFERENCE”
etc..

This will generate a PROMT for different AI services that we will store to Dataverse. At the end of our dialog you will be presented with a link to the game. When opening the game, it will load all of your preferences and create your unique experience.

Eventually we will connect it with High Score for competition etc.

Can crazy days create value?

First of all I have to thank you all for letting in a first time hackathon bastard in the realm of this wild pirate bunch. I have tried to catch up, learn and provide some help for my Captain Ulrikke. What I thought would be a lot of power naps, turned out to be PowerApps, aaarr!

As an architect I have realised that there are so many more ways to Rome. The creativity, cooperation, team spirit and knowledge gathered in a room is amazing. As a bastard on a ship I have learnt about flows, power apps, dataverse, canvas and the myriad of possibilities for creating solutions in alternative ways.

I started asking chatGPT for lyrics and chords for a pirate song. A soft start for an old musician to add som team spirit, playing on a broken electric piano and singing with the voice the sea and rum gave me.

But I do believe that the value from the experience this weekend has broadened my mind. I met incredible people in a cool atmosphere and will be able to build on my knowledge.

I hope this was the start of more hackathons. I will end with a homage to my fellow pirate who gave me a cool cap gadget (Marius).

The Orange Bandits shows and tells

An ERP implementation can be a complex and time-consuming process, but the benefits of improved efficiency, reduced manual labor, and enhanced data accuracy can be significant.

As part of our solution goals, we are focusing on 4 pillars, and we strongly believe that the first implementation of the Pirate Fleet Management hits all 4 pillars!

Check https://acdc.blog/avanade-2/the-jackpot-app-pirates-fleet-enlisting/

  • AI

The App uses a mix of built in and custom models in innovative way and yet makes the enlisting process easy and straightforward.

  • Sustainability

The use of a canvas app which is mobile-integrated (a device that everyone has) means that there is no need for extra devices and we are using available resources.

  • User Experience

The app is easy to use, straightforward and there is no need to punch any characters.

  • Scalability and integration

The app is scalable and can be used on any mobile device and integrates well with both our back-end CRM solution and external endpoints.

🤖 Automatically Priming our SPA cannons with React and .NET ⛵️

Sailing is though, so you need to rigg your ship to your advantage, preferably automating your sales and having people walk the plank for making bad code. We chose to created a project with ASP.NET Core application running with React.js. The application is running on .NET version 7 and uses several technologies, both hip and retro.

Screen capture of the .net SPA application setup

Mapbox for Charting the Seven Seas

Our application uses Mapbox – a provider of custom online maps for websites and applications. The company provides APIs and SDKs to create custom maps, add markers and other map controls, and to handle user interaction with maps. This ease of use and their clean and well-structured documentation (docs.mapbox.com) made Mapbox our top dog for create, edit and manipulate maps in our service.

Map created using Mapbox’s API

Protecting your Shared Booty form the Crew

Any pirate needs a secure lair, a pirate code and ability to help other pirates in need. For this reason we created a repository in GitHub and implemented best practices for collaborating as developers, like proper branching, build pipelines, linting and pre-deploy checks. Like blocking ourselves from bloat because we can’t have unused code in the repository.

Snipet showing lint error for unused variable

Branching Strategy for Division and Conquering

The master branch contains the production code. All development code is merged from develop into master. Cutting corners in true hacker style we opted to not use feature branches, since, to be frank, the entire thing is a feature at this point.

What we all said when discussing feature branches

All branches are protected with protection rules. Due to the limited size of the project we can automatically merge features and bug branches directly to develop, but we can’t push directly to develop. Even that is too risky for this group of mad lags and girl. If you want to merge code from develop into master you need approval from at leaste one other developer and no changes requested to your merge, if all flags are green Github forcefully collides the code together and see what sticks (it’s actually more sophisticated than this, but you Judges know a lot more about this than we ever will, so we humbly just call it “magic” – just like magnets).

Parchment showing the Law of Protection for our Master Branch

Feel free to have a gander at our code repository to appreciate all the shiny details: github.com/TommyBakkenMydland/CaptaIN-Hack-Sparrow

Smooth Rigging with CI/CD and Github Actions

Github Actions is a now a CI/CD platform that allows developers to automate their software development workflows. This, for us, is a huge win because we want to do as little configuration as possible!

CI/CD github actions

The actions reduce the time and effort required for manual processes and enables us to release new features and bug fixes quickly and confidently – Harr harr, got you matey, you thought we will fix bugs! … But … for the sake of argument … if we were to fix bugs, this powerful tool for streamlining development workflows, enables us to deliver high-quality software more efficiently and effectively at lower cost – Better use of time, reduce waste of time (WoT) and better business value for the client. We used yaml to tell what GitHub actions should create:

Yaml file describing what GitHub actions should create

Creating Overly Complex Gadgets to Avoid Simple Tasks
(aka How we used ChatGTP to give us documentation on Pulumi)

Nobody likes to know stuff. Everyone loves AI. What about AI that knows stuff?! Sold!! We used the AI service to provide us with documentation on how to deploy infrastructure in Azure with code.

Asking the oracle about stuff we probably already should know

From this we were able to write code that could be executed in our CI/CD

Pulumi snippet for creating our environment: Infrastructure as code #retro

Resulting in a beautiful environment and ample time for coffee ☕️

Screen grab showing the employed resources in Azure
Screen grab showing ChatGTP making a meme about making memes about using ChatGTP. Very meta.
Mame created from ChatGPD’s instructions

Make the Deck Shine Like Pixels

Colors are an important part of the User Experience, however there are more to design than colors. Let us dig deeper into our color pallet for this app.

UI Color Swatches with descriptions for use from the UI design tool Figma.

Our Swagger of Cloth Sebastian has shown us some tricks of the trade. Where other teams have opted for machine learning to create their color template, Sebastian has chosen for Adobe Color – a tool for mixing beautiful color pallets.

Screenshot from Adobe Color

The pallet was mixed using our Captain Mats’ favorite color: Blood red (or a slightly rusted maroon if you like) as the base. Then for electric flair we skewed the color pallet using Analogous color harmony towards the violet spectrum. Since the maroon is quite soft this results in a calm nautical palate with some poppy vibes towards pink and green.

Building on the swatches we made de-saturated versions to help with shading and possible scenarios where we might need less color to achieve more in the design. Typical places would be illustrations and clustered sections that need soft, mellow containers.

Implementing the Colors into a UI

Adding the colors as swatches to Figma’s color management makes et easier to try different colors and alter the colors if needed. We also named the colors with logical names, describing how they should be used rather than descriptive. Form experience and also rooted in best practise we find this way of managing colors more versatile and easier to work with than having explicit names, like “blue-bg-color” because what happens when your token has a descriptive name, and that description is no longer correct? You need to defector or just remember, both options are bad for speed,

Screenshot from Figma’s color swatch styles

Lastly it is important to calibrate your colors for the visually impaired. One common tool is the WCAG color contrast guidelines requiring contrasts of 1:4.5 for normal text and 1:3 for large text. Sadly we can see our selected pallet is not optimal for all cases and still needs work.

WCAG compliance check for the color swatches against the darkest and lightest color in the pallet

Also, the resident pixel pusher is very happy he has to hack all this together on a broken screen where everything looks janky. We are so bold to say this is living like a true swashbuckler, powering through this hackathon.

Broken screen is broken

What do we do? 🤔

To find out if there are pirates in the waters where commercial ships operate, we will compare data from AIS (Automatic Identification System) with satellite images from the same area.
If there are more ships in the satellite images than the AIS data shows, we will trigger an alarm. This alarm alerts via flashing lights (Zigbee), Teams and an app we build ourselves.

High level architecture

The image analysis itself is carried out using the ResNet architecture, which Herman has written himself with Python. We get the satellite images from open APIs, the same with AIS data.

Example of sattelite image with ships
Training the machine to identify ships in images
Response from AIS API

The comparison takes place by counting the number of ships on the satellite image within given coordinates, then we compare that number with the total number of ships we find through AIS. If the number is unequal, we assume that there are pirates in the area.
This finding is posted in a table in Dataverse, where we have a Power Automate flow that picks up new rows and sends them to our Teams app in addition to triggering a red warning light in Philips Hue.

We also have a React web app that presents data to the emergency response team that keeps track and notifies the right authorities and ships.