Independent project · Case study · .NET / Razor Pages

Sourced preparation guidance for Fribourg event permits, not a filing system.

Swiss Event Permit Assistant

A released V0.1.5 pilot Razor Pages application that turns a questionnaire into sourced requirements, documents, deadlines and confirmation points for temporary event permits in the Ville de Fribourg, without submitting anything on the user's behalf.

  • C#
  • .NET 10
  • ASP.NET Core Razor Pages
  • xUnit
  • GitHub Actions

At a glance

Problem
Scattered permit requirements
Capability
Sourced preparation guidance
Boundary
No official submission

A decision that could have gone the other way

It could have filled the form in and signed the applicant into egov.fr.ch, and that would have been the more impressive demo. It deliberately does neither, and says so on the page. The moment an unofficial tool starts to look like the official channel, the person who pays for the confusion is the applicant.

Product problem

Official permit requirements for temporary events are correct but scattered across cantonal, municipal and prefectural sources. Organizers need one place to see what applies to their event, by when, and what still needs confirming with the competent authority.

Key engineering decisions

A questionnaire is evaluated against C# domain rules backed by a reviewed catalog of official Fribourg sources. The rules return required actions, documents to prepare, information to gather, deadlines and items that still need confirmation, each traceable to its official source.

Product boundary

The pilot does not submit official applications, log in to egov.fr.ch, fill PDFs, store dossiers on the server, upload attachments or create user accounts, and it does not replace the Ville, Canton, Prefecture, Police locale or OCN.

Police locale guidance states 20, 30 or 60 working days and leaves the calendar date uncomputed; unresolved requirements are marked for confirmation.

Delivery setup

Domain rules are covered by xUnit tests, and GitHub Actions runs the same restore, build, test and publish checks on main and pull requests. Source review dates and an explicit freshness policy are tracked alongside the rule catalog.

Engineering takeaway

Separate sourced guidance from official submission

A civic-tech tool must be explicit about what it does not do.

Domain rules evaluate a questionnaire against a reviewed source inventory to produce actions, documents and deadlines, while officially submitting, logging into egov.fr.ch or replacing the competent authority stay out of scope.

  • Domain rules
  • Source tracking
  • Civic tech

Design rationale

Keeping the pilot read-only and source-traceable avoids conflating preparation guidance with an official filing, so the domain model stays explicit about what it does and does not claim.

Implementation status

Implemented

  • Questionnaire-driven requirement, document and deadline output
  • Sourced requirement catalog with reviewed dates
  • xUnit domain rule tests

Outside the current scope

  • No official submission, egov.fr.ch login, PDF filling, dossier storage or account system is implemented in this pilot.

All selected work