Under construction. This is a working preview; route, content and accessibility details may change.

Canberra Data Walk hackathon

Build an NFC-powered data walk in one week.

Follow a practical path from a blank Azure account to a live web app. Store the supplied place data in Blob Storage, publish the app, and connect each location with an NFC tag or QR code.

1NFC tag or QR code opens a place URL
2Azure Static Web Apps serves the experience
3Azure Blob Storage supplies the place data
4Optional services add AI, analytics and a database
Your build progress
0 / 7

A week, not a weekend

Move from idea to field test one outcome at a time.

The core Azure build is the same for every team. Choose extra tools only after the simple experience works end to end.

Start with a budget guardrail.

Eligible new Azure customers may receive USD $200 credit for 30 days. Offers, currencies and eligibility can change, so confirm the current terms before signing up and set a budget alert immediately.

Monday

Define

Pick a user, route and one story worth discovering.

Tuesday

Prepare data

Clean the starter JSON and add your own local context.

Wednesday

Build

Create the place page and load data from Blob Storage.

Thursday

Deploy

Publish with Azure Static Web Apps and test on mobile.

Friday

Connect

Write NFC tags or generate QR codes for each place.

Saturday

Level up

Add AI, analytics or a database only if it helps users.

Sunday

Share

Walk the route, gather feedback and demo the story.

Explore the route

A 3D view of the Lake Burley Griffin data walk.

Rotate, tilt and zoom to explore the eight stops. The line connects points in walking order but is indicative only; teams must confirm safe, accessible paths and crossings on site.

Tip: drag to move, Ctrl + drag to rotate, or use the controls.

The interactive map could not load.

The route and downloadable dataset remain available below. Check your connection or try again later.

Core build

Seven steps to a working data walk.

Open each step for instructions. Tick the outcome when it works; progress is saved in this browser.

1

Frame one useful visitor journey

Keep the first version small enough to finish.

Use the eight supplied Lake Burley Griffin stops or choose a shorter subset for your audience. A useful first story is: "When a visitor taps a tag, show what happened here, why the data matters, and the next nearby stop."

  1. Write a one-sentence problem statement.
  2. Choose the fields your page actually needs.
  3. Sketch one mobile screen before selecting technology.
2

Create Azure access and cost controls

Use the credit carefully and avoid surprise spend.

  1. Review the Azure account offer and terms.
  2. Create or sign in to your account, then open the Azure portal.
  3. Create one resource group, for example rg-datawalk-dev, in an Australian region available to your subscription.
  4. In Cost Management, create a small budget and alerts at 50%, 75% and 90%.
  5. Use a consistent suffix such as your team name because storage account names must be globally unique.
3

Store the starter data in Azure Blob Storage

Create one container and upload the supplied JSON.

  1. Create a Standard general-purpose v2 storage account in your resource group.
  2. Create a blob container named datawalk.
  3. Upload canberra-data-walk.json and set its content type to application/json.
  4. For a public hackathon prototype, allow read access only to this container. For private or sensitive data, keep it private and use an authenticated API instead.
  5. Add a CORS rule for your deployed app origin with GET and HEAD methods. Avoid a wildcard origin after prototyping.

Follow the official Blob Storage portal quickstart if this is your first container.

4

Build the mobile web experience

Read a place ID from the URL and display matching data.

Create index.html, styles.css and app.js in a GitHub repository. Replace the example URL below with your blob URL.

const DATA_URL = "https://YOUR_ACCOUNT.blob.core.windows.net/datawalk/canberra-data-walk.json";
const placeId = new URLSearchParams(location.search).get("place") || "australian-of-the-year-walk";

async function showPlace() {
  const response = await fetch(DATA_URL);
  if (!response.ok) throw new Error(`Data request failed: ${response.status}`);

  const { places } = await response.json();
  const place = places.find((item) => item.id === placeId);
  if (!place) throw new Error("Place not found");

  document.querySelector("h1").textContent = place.name;
  document.querySelector("#story").textContent = place.story;
}

showPlace().catch((error) => {
  document.querySelector("#status").textContent = error.message;
});

Design for a phone outdoors: large tap targets, strong contrast, concise text, useful alt text, a visible loading state and a clear error state.

5

Publish the app with Azure Static Web Apps

Connect the GitHub repository and receive a public HTTPS URL.

  1. Push the working app to GitHub.
  2. Create an Azure Static Web App and connect the repository and branch.
  3. For a plain HTML app, set the app location to / and leave API and output locations empty.
  4. Wait for the GitHub Actions deployment to finish, then open the generated HTTPS address.
  5. Return to Blob Storage CORS and allow this exact origin.

Use the official Static Web Apps quickstart for the current portal flow.

6

Connect NFC tags and QR fallbacks

Give every location a stable, testable URL.

Build one URL per place, such as https://YOUR_APP.azurestaticapps.net/?place=national-carillon. Write that full HTTPS URL to an NDEF-compatible NFC tag using a trusted mobile NFC writer. Generate the same URL as a QR code so visitors without NFC can still participate.

  • Test every tag with both iOS and Android before placing it.
  • Print a short URL or route name beside the tag as a final fallback.
  • Get site-owner permission before attaching anything in public space.
  • Do not place tags where they create a hazard or obscure existing signs.
7

Field test, secure and demo

Test the experience where people will actually use it.

  1. Walk the route on mobile data, in bright light and with a screen reader.
  2. Ask someone outside the team to complete it without instructions.
  3. Remove personal, secret, licensed or unsafe data from public blobs and source code.
  4. Prepare a three-minute demo: problem, tap, insight, architecture, next step.
  5. At the end of the event, delete unused resources or the entire resource group.

Starter resource

Use realistic structure without pretending the sample is authoritative.

The supplied JSON follows eight connected landmarks around the central Lake Burley Griffin loop, with a short Parliamentary Zone extension for two women-focused stops. Validate facts, coordinates, permissions and accessibility conditions before public use.

Canberra Data Walk starter JSON

Includes stable IDs, coordinates, short stories, data themes, accessibility notes and next-stop references.

IDPlaceThemeNext stop
australian-of-the-year-walkAustralian of the Year WalkRecognitioninternational-flag-display
international-flag-displayInternational Flag DisplayDiplomacyreconciliation-place
reconciliation-placeReconciliation PlaceReconciliationwomens-suffrage-fountain
womens-suffrage-fountainWomen's Suffrage FountainEqualitylyons-tangney-statues
lyons-tangney-statuesLyons and Tangney StatuesWomen in Parliamentnational-carillon
national-carillonNational CarillonSoundmenzies-memorial
menzies-memorialSir Robert Menzies MemorialPublic sculpturecaptain-cook-memorial
captain-cook-memorialCaptain Cook MemorialMappingaustralian-of-the-year-walk

Choose your level

Add complexity only when it improves the walk.

Filter the optional toolkit by your team's confidence and available time.

Beginner

GitHub Copilot

Ask for a small mobile-first page, tests for data lookup, or explanations of unfamiliar code. Review every suggestion and never paste secrets into prompts.

Open Copilot docs
Beginner

Copilot Cowork

If your organisation provides Copilot Cowork, use it to split research, content and testing tasks while keeping a shared definition of done. Availability may vary.

Explore Microsoft Copilot
Builder

Microsoft Fabric

Use a lakehouse or Power BI report when the project needs repeatable ingestion, transformation and visual analytics beyond the public JSON file.

Explore Fabric
Builder

Azure Database for PostgreSQL

Move from static JSON when users need submissions, accounts, moderation or frequently changing relational data. Put an authenticated API in front of the database.

Explore PostgreSQL on Azure
Advanced

Microsoft Foundry

Add a grounded guide that answers questions from approved place content. Include citations, test unsafe inputs and keep a non-AI path through the experience.

Explore Microsoft Foundry
Advanced

Application Insights

Measure page failures and route completion without collecting unnecessary personal information. Document what is collected and respect user consent.

Explore Application Insights

Non-negotiables

Protect people, data and the team's credit.

Public means public

Never upload secrets, personal information or restricted data to a public blob. Use open or explicitly licensed content.

Cloud resources cost money

Prefer free tiers where appropriate, watch the budget daily and delete experiments you no longer use.

Access is part of the build

Provide QR and text fallbacks, keyboard support, readable contrast and a route option for people who cannot reach every location.

Complete the seven core outcomes.

Your goal is not the largest stack. It is a working, trustworthy experience that helps someone discover Canberra through data.