Inspiration

UCalgary's campus incident reports come through scattered channels, like emails, phone calls, walk-ins, while Clare Engineering's timesheets get lost in Excel spreadsheets emailed back and forth. Both workflows share the same core problem: critical information slips through the cracks when there's no single system to handle it. We set out to fix both in one hackathon.

What it does

Timesheet Management (Clare Engineering): Employees submit weekly hours broken down by day and project. Managers review, approve, or reject with comments. Automated notifications keep everyone in the loop at every step. No more emailing spreadsheets.

Incident Reporting (UCalgary Campus Safety): Students and staff submit safety concerns, maintenance issues, or suspicious activity, anonymously if they choose. Security staff view all incoming reports on a filterable dashboard, assign priority levels, and delegate to the right team. Maintenance crews see only their assigned tasks and mark them resolved with notes. Reporters get status updates automatically as their incident moves through the pipeline.

How we built it

We used Power Apps Canvas Apps for the frontend with role-based views, reporters, security staff, and maintenance teams each see a tailored experience. SharePoint Lists handle all data storage across both use cases (Incidents, IncidentUpdates, Staff, Timesheets, Employees). Power Automate flows drive the notification engine, submission confirmations, approval and rejection emails, status change alerts, and critical incident escalation. We used the Power Apps YAML paste-code workflow to rapidly build and iterate on screen layouts.

Challenges we ran into

Power Apps YAML paste-code validation is extremely picky and poorly documented. We discovered through trial and error that it's Button not ModernButton, Placeholder not HintText, and buttons don't support a Color property at all. The App object can't be pasted as YAML either, OnStart and Formulas have to be entered manually. We also hit issues switching between local collections and SharePoint Choice fields, which use completely different syntax for accessing values.

Accomplishments that we're proud of

Full end-to-end workflows for both use cases, from submission to resolution with automatic notifications at every step. Anonymous reporting that truly hides the reporter's identity. A clean, professional UI with UCalgary branding, color-coded status and priority badges, and filterable dashboards. Two complete use cases built and deployed with live SharePoint data in one hackathon session.

What we learned

Low-code doesn't mean no-code. Power Fx formulas, SharePoint schema design, and Power Automate flow logic all require real engineering thinking. We also learned that planning your data structure before touching the UI saves massive time, half our early bugs came from mismatched column types between the app and SharePoint.

What's next for 2 In 1

Connect photo uploads via Power Apps camera control for incident evidence. Build a real-time analytics dashboard with incident trends by building and time period. Add Teams integration for instant critical incident alerts. Expand the timesheet system with project-level budgeting and overtime tracking.

Built With

  • claude-api-(anthropic)
  • power-apps
  • power-automate
  • power-fx
  • sharepoint
  • yaml
Share this project:

Updates