Climbing the Stairways to Heaven!

Since we build on Power Platform, Power Apps and Power Automate provides connectors to various APIs that we use in our app logic and user interface.

Here are some of the ways we are using APIs in our solution:

Power Automate and Outlook 365 API

We use the Outlook 365 API to access one user’s inbox and wait for an incoming email. This email is from the Game Player – and determines if the player progresses in the game or not. This is a bonus nested API call as the Power App triggers the use of the Outlook 365 API through Power Automate!

Copilot Studio

We use the Copilot Studio API to interact with a custom prompt that can act as an advisor throughout the game. At any point in time you can activate the chat and ask any questions you want, to get clues and hints on how to progress in the game. (The butler even knows a lot of secrets about the little town!)

Dataverse

We use the Dataverse API to store and retrieve data for our app/game in Dataverse Tables, such as game progress, Rooms/Locations, Excercises/Questions, Assets (images etc). This makes the game/app much more dynamic as we do not store the information within the app itself.

A Day of Triumph: Unlocking Multiple Badges in a Single Sprint !?

Streamlining Efficiency: The “Go with the Flow” Badge Achievement

In the pursuit of optimizing business productivity within our solution, the implementation of an ALM pipeline has been a game-changer. This automated transfer of solutions between environments not only saves significant time and effort but also ensures that both unmanaged and managed versioning packages of the solution are seamlessly transitioned. Furthermore, the integration of a Power Automate flow for the approval of deployments has elevated our operational efficiency, marking a significant milestone in our journey to “Go with the Flow.” This achievement underscores our commitment to leveraging workflow automation for enhanced productivity.

Uniting Power and Simplicity: The “Power User Love” Badge

Our solution showcases an exemplary blend of low-code platforms with pro-code customization, embodying the #ProCodeNoCodeUnite philosophy. By implementing a Power Pages site for user interface and login, coupled with a PCF component coded in React and TypeScript for a gamified course, we demonstrate the power of integrating professional coding standards with low-code solutions. This approach not only streamlines development but also opens up a realm of possibilities for creating robust, user-friendly applications.

Gamification at Its Best: Achieving the “Mario Badge”

Elevating user interaction through gamification, the implemented PCF component with interactive controllers to navigate through course levels. Each course represents a level, challenging users to advance and showcase their proficiency. This gamification aspect not only makes learning more engaging but also encourages users to level up their skills in a fun and interactive environment.

Visual Insights: The “Dash It Out” Badge

Our solution now features a Power BI report embedded within the Power Pages site, along with additional reports for user access to high scores and admins for an overview of active players and their progress. These reports, showcasing at least four graphs, gauges, or KPIs, highlight the business value of our dashboard. The integration of these visual insights ensures that both users and administrators have a comprehensive understanding of performance metrics at their fingertips.

Adaptive Excellence: Securing the “Chameleon” Badge

The responsiveness of the Power Page, adapting automatically to all devices and screen sizes, exemplifies our solution’s versatility. This inherent adaptability ensures that our application delivers a consistent and user-friendly experience across various platforms, earning us the “Chameleon” badge. It’s a testament to our dedication to creating solutions that are not only powerful but also universally accessible.

“Go With The Flow” Badge: Automating Race Results for Enhanced Efficiency

Streamlining Race Results with Cloud Automation

The “Go With The Flow” badge represents our commitment to innovating race management through automated workflows. By implementing a cloud-based solution, we’ve significantly enhanced the efficiency and personalization of post-race communications.

Efficient Trigger Mechanism
The process begins immediately after a race concludes. This prompt activation is key to ensuring timely dissemination of race outcomes.

Automated Action: Personalized Results
Our system automatically compiles, verifies, and emails a comprehensive summary of the race results to each participant. This quick, accurate information delivery exemplifies the power of automated workflows in a high-paced environment.

Enhanced Feedback for Continuous Improvement
Crucially, we offer more than just results; drivers placed below third receive additional, personalized tips for improvement. This feature not only celebrates successes but also encourages skill development and growth among all participants.

Conclusion
Earning the “Go With The Flow” badge symbolizes our strides in integrating cloud automation to streamline processes and enrich participant experience. It’s a testament to leveraging technology for better, faster, and more personalized race management.

Go With the Flow

Our Canvas App is adding a function where you can “Call a friend”. The purpose of this function is to allow for voting. All of the buttons on the participant tables are rigged with voting functionality. (More of this will be visible the last day). For now we only use our personal button.

Single click on 2 stores vote for YES.

Double click on 2 stores vote for NO

This data is stored in Dataverse in a table we called votes:

When the Power App calls the voting service, it will respond with the total tally of Yes or No to kill the BAD GUY

Copilot. The Rise of Machines

We claim badges:

  • Existential risk – for risk of existence of software developers

App should collect, list, track or managed the incidents that was assigned to engineers. The table must contains technical info for resolving the incident. Also the app should include the chart with summary of incident statuses. 

Specify prompt for app generation and submit:

Wait until the entities are created

Adjust if needed and proceed with app creation:

Just 10 seconds and you have an app that you are not ashamed to show on a demo to a client or to prove to a manager that you have been actively working and here are the results of your work. Isn’t it?

Sharing is Caring

In the Show Tell blog, we indicated that we are giving the game away for FREE on Steam. This is only possible to maintain if we find a good revenue stream.

Realizing that the game we have produces lots of data that the rest of the gaming industry is highly interested in, we found a way to monetize on our game.

By creating an API from our gaming data we now have a datapoint that companies are willing to pay top dollar for

We start of by creating an HTTP endpoint

Next steps are to loop through our data and add it to an string. Eventually responding to the HTTP call with the complete dataset that they have access to.

Pull request

We found Innovation Norways code and noticed that id lacked comments. We therefore decided to provide commenting services so that future “SELF” understands what was going on.

Happy Camper + Community Champion

Today we upgraded our camp with some homemade pennant, to keep our spirit on top for the rest of the hackathon. We are beyond happy with our outfits also, giving us the kindergarten employees and 80’s family look and feel <3

Our designer also helped SuperINtendo with their wireframes and design, going from zero to hero in just 30 minutes!

Triumph in the Trenches: Conquering the Head 2 Head “Hammer Bro” Challenge!

In the spirited arena of the ACDC Hackathon, Remi faced the exhilarating Head 2 Head challenge: “Hammer Bro”. Embracing the spirit of competition, he ventured into the creation of a 2D multiplayer game that not only tested his technical prowess but also his creativity and strategic thinking. The game, set within a labyrinthine platform maze, pitted players against each other in a thrilling duel of wits and agility, with missiles as their weapons of choice.

Crafting this game required Remi to delve into the intricacies of a Power Apps Component Framework (PCF) component, integrated seamlessly within a Canvas App. This technical feat allowed him to create a dynamic and interactive gaming experience, where players navigate the maze, strategizing and aiming to outmaneuver their opponents in real-time.

The development journey of his multiplayer maze game was a deep dive into the innovative integration of PCF components with React, TypeScript, and Phaser 3. Utilizing the PCF framework allowed him to embed his game directly within a Canvas App, providing a seamless and interactive user experience. By leveraging React and TypeScript, he crafted a responsive and intuitive game interface, ensuring smooth gameplay and real-time updates. The inclusion of Phaser 3, a powerful framework for building 2D games, was instrumental in bringing the intricate maze and its mechanics to life. This combination of technologies enabled him to create a rich, engaging game environment where strategy and quick reflexes are key to outmaneuvering opponents and securing victory. His approach to development was not just about utilizing these tools but mastering them to create an experience that was as thrilling to play as it was to build.

Download the game files here: https://we.tl/t-atBJGFumK3

Controls

Player 1

Move: WASD
Shoot: Space

Player 2

Move: Arrow keys
Shoot: Enter

To restart the game, press “R”

If you encounter any bugs, refresh 🙂

Sharing is Caring

This time, we would like to share some valuable tips we’ve learned along the way and have found truly useful:

1. Enable that big Expression Box

Ever felt the pain of trying to edit large expressions in that tiny expression box?!?!?

Would it have killed you MS to make this box bigger!?!?!?

Well now you can do something about just that:

Settings -> View all Power Automate Settings -> Toggle that toggle!
TADA! Look at that large expression window!! Your productivity will sky rocket!

2. Simplify debugging of Power Pages Javascript Code

Power pages support adding inline javascript in variaous places. This can be quite usefull if you need to add some some quick javascript magic.

Adding some inline javascript to a Power Pages web page

It’s however very hard to debug this code as it’s added inline into the page :/

Hard to debug code

The trick is to add sourceURL to the code:

The trick


This approach makes the inline code appear in the Sources tab, of the Browser, as though it were an actual file. This significantly simplifies finding it, setting breakpoints, and modifying or overriding the code.:

3. Some actual code

We share our source code of our sparkling new PCF component: https://github.com/erlendoien/rotary-clock

4. We made a pull request with some improvements for Peaches of Itera nice lite html game:

  • Use const for Immutable Variables
  • Optimize Collision Detection
  • Keyboard Input Handling: Modernize the approach to handling keyboard events
  • Efficiency in Drawing: Minimize the number of times the canvas is cleared and redrawn to improve performance
  • Implement a game loop
  • Responsive Canvas: Make the canvas size responsive to window siz



https://github.com/peachesofitera/peachesofitera.github.io/pull/1