Use on every device

The Power App is repsonsive and can be used on all kinds off devices and screen resolutions.

We have use controls like the Containers that will adjust the content to the sizes on different parts of the screen.

We do recommend using the phones and pads in landscape mode to avoid white areas on the sides.

Here are some pictures of the app on different devices

Dreaming in 8-bits

Few things sparks a developers interest more than arguing about languages and frameworks. Which language and framework is new and cool is a very popular discussion in a room full of it nerds. Every day we see new ones appear, and jobs that use late technologies are not popular among young and energetic developers. From Visual Basic through COBOL to Haskell we see that old languages are losing popularity and ultimately dieing.

But exceptions exist… 

Perhaps no programming language has stood the test of time better than C. C is alive in so many ways – theres language derivatives such as Arnold.C, Objective C, C# and C++. C also is what you find under the hood of Python packages like numpy. C also still lives as its own language and is the preferred language for many embedded engineers. But (in our opinion) most importantly, C is the language of the Arduino! 

We use the arduino controller to notify the driver when using our app. We have IoT-ified our solution by connecting the arduino to a wifi-connected endpoint. Because of this, we get to write C. Oh, the glory days. How beautiful to behold this relic that still lives on.

Final Stretch: Unlocking Advanced Badges on the Last Day of Development

As the ACDC Hackathon draws to its climax, our team’s dedication and innovative spirit have led us to target three advanced badges, each reflecting our commitment to solving complex problems with cutting-edge technology and best practices.

Crawler: Revolutionizing Assistance with Copilot Studio

In our quest for the “Crawler” badge, we’ve integrated Copilot Studio into our Power Page site, embedding a Copilot bot designed to aid users when they’re stuck on a course level. This ingenious feature utilizes a cloud flow triggered by the user’s input, leveraging the Dataverse action “Search Rows (Preview)” to find and return answers for the specified course level. This not only enhances user experience but also showcases our innovative use of search to solve a real-world business problem.

Client Side Salsa: Ensuring Smooth Performance with Modern Frameworks

Our pursuit of the “Client Side Salsa” badge highlights our application’s fluidity, achieved by running entirely within the client’s browser without becoming a cumbersome monolith. By crafting a PCF control for our interactive course game using TypeScript and React, we ensure our setup’s compatibility across a wide range of browsers. This approach underlines our strategic use of modern front-end frameworks to deliver a seamless and responsive user interface.

ACDC Craftsman: Demonstrating Development and Deployment Excellence

The “ACDC Craftsman” badge is a testament to our adherence to development and deployment best practices. We’ve established three environments (dev, UAT, & prod), focusing our component development within the dev environment. Our deployment strategy is streamlined through Power Platform ALM pipelines, incorporating a pre-deployment approval step via Teams. This allows for meticulous control over deployment timing and participants. Moreover, our use of Azure DevOps Repositories for the PCF control exemplifies our commitment to source control and project management excellence.

As we conclude this hackathon journey, these badges represent more than just our technical achievements; they signify our team’s holistic approach to innovation, user engagement, and operational efficiency. Our efforts to blend advanced technological solutions with practical application and meticulous project management illustrate the essence of true ACDC craftsmanship, setting a high bar for what can be accomplished in such a collaborative and competitive environment.

How many Features on your Screen?!

We have done the ultimate feature bombing in our canvas app. Our game app is solely relaying on data from tables in Dataverse. By creating a good Information Model with relations we have structured the data in a way that makes our App development way more dynamical.

The User progresses through the game by solving puzzles in different rooms. We use the same screen in our app to present every room. The Room is then populated with excercises based on information in our dataverse table.

This means that we can expand the game just by adding new Rooms, and excercises and link them in our dataverse table.

And don’t forget the fact that we differentiate on the tasks/excercises and if they are so complex that they need to break out in a different screen – or if its a simple information or user interaction – then we show a pop-up dialog on the same screen. All ofcourse – determined by the excercise type defined in the dataverse table.

This image has an empty alt attribute; its file name is image-258-1024x186.png

Streamlining Race Analysis: Power BI Dashboard for Mario Kart Performance 

Introduction 

Creating visually engaging and insightful dashboards in Power BI is a game-changer in data visualization. This post focuses on building an effective dashboard for analyzing Mario Kart race performances, emphasizing both aesthetics and business value. 

Dashboard Overview 

The dashboard comprises two main pages: the Overview Page for summarizing race results and the Analysis Page for detailed data exploration. 

Overview Page Highlights 

Track Popularity: Graphical display of most-chosen tracks. 

Player Rankings: Visuals showing the best and worst performers over time. 

Top Karts and Drivers: Easy-to-read charts highlighting popular choices. 

Analysis Page Features 

Dynamic Data Table: Customizable view using field parameters for in-depth analysis. 

Slicer Panel: Enables quick data filtering for different variables. 

Balancing Design and Utility 

The key is to combine visually appealing elements with actionable insights, ensuring each part of the dashboard serves a practical purpose. For instance, understanding player preferences can guide marketing strategies, while top performer analysis might influence game development. 

Power BI’s Role 

Leverage Power BI’s capabilities for: 
 

Efficient Data Modeling: Smooth handling of extensive race data. 

Custom Calculations: Using DAX for unique insights. 

Interactive Visuals: From basic charts to advanced graphics for user-friendly analysis. 

Conclusion 

This Power BI dashboard for Mario Kart race analysis not only demonstrates technical skills but also the importance of meaningful data presentation. It’s an ideal blend of form and function, turning complex data into accessible and actionable insights. 

Note: This condensed draft provides a structured approach to crafting a blog post focused on creating a business dashboard in Power BI, using Mario Kart race data as a case study. Expand with specific examples or screenshots as needed. 

Automating potential uncomfortable situations and (green) shells

Automation galore! A lot of processes are jumpstarted when a banana is detected and the poor first banana responders need all the help they can get. Notifying next of kin can be a tough task, and for Road Authority personell with limited people skills automation is key.

We have set up a workflow that works like this. When a banana is detected we receive a http request. When then register the incident in Dataverse while also looking up next-of-kin data, and send that to outlook to automatic notifications.

Our solutions have a lot of bits and pieces, having control on how these are deployed are essential. All our Azure resources are handled nicely using ARM template deployment.

Deep down in the pipes

ACDC Craftsman – Secure code and deployment

When connecting to as many services as we do (humblebrag), it’s extremely important to keep keys and access credentials secret. There are bots and such that continuously scan GitHub, picking up anything that resembles access keys or connection strings. Therefore, we have set up dependency injection in our Azure Function App, and we keep all our important keys in local.settings.json. These settings are loaded into program.cs and added to the function app via the Config class. This makes them easily accessible in all the files we need. We set the same settings in Azure, it just works!

Using Github Actions to deploy our React app to Azure with built-in es-lint and verification ensures us that only functional code is published to azure.

Git strategy

Using branches, commit messages, pull requests, static code analysis we are cruising through the waves with our git strategy. Keeping everyone on the team informed on our progress and the way forward.