Inspiration

Residents often notice damaged roads, broken lights, overflowing bins, and other problems before anyone responsible for fixing them does. Reporting an issue can be confusing, and residents rarely have a clear way to follow what happens next. We created Civic. Fredericton. to make that process visible.

What it does

Civic connects residents and city staff through one issue lifecycle:

  • Report: Submit a problem with a description, photo, and location.
  • Confirm: Other residents who have seen it can confirm the report.
  • Track: City staff review the issue and update its public status.

Residents can report anonymously. Optional Google or email-code sign-in lets them track their contributions.

How we built it

  • Frontend: Next.js, TypeScript, Tailwind CSS
  • Backend: NestJS, PostgreSQL
  • Data and maps: Snowflake, OpenStreetMap
  • Authentication: Better Auth
  • Development and monitoring: Docker, Sentry

Challenges we ran into

Our hackathon time was limited, while the problem covered many types of city issues. We focused on completing one useful flow, from a resident's report to a visible staff update.

We also had to design for two audiences. Residents need a fast reporting experience. Staff need enough information to review an issue and communicate progress. Both experiences had to work with the same report.

Accomplishments that we're proud of

  • Built an end-to-end reporting, confirmation, and status workflow.
  • Kept reporting available without requiring an account.
  • Designed clear desktop and mobile experiences.
  • Connected location, issue data, and staff updates in one demo.

What we learned

  • Turn an open-ended problem into a testable MVP. We defined a complete issue lifecycle and prioritized the features needed to demonstrate it.
  • Integrate Snowflake into an application workflow. We connected it with our NestJS backend to work with issue data.
  • Build for reliability under a hard deadline. Docker helped keep services consistent, and Sentry helped us diagnose errors during integration and testing.

What's next for Civic. Fredericton.

  • Build a mobile app to make reporting issues and following updates easier on the go.
  • Gather feedback from residents and city staff to improve the reporting and review workflows.
  • Expand beyond Fredericton to support other cities and provinces.

Built With

Share this project:

Updates

Submission history