FairSpot parking allocation project

I have been working on a side project called FairSpot.

It started with a simple problem: when a company has fewer parking spaces than people who want to use them, email requests and manual decisions quickly become messy. The goal of FairSpot is to make this process more transparent.

Employees request parking for a given day. The system then runs a Draw and allocates available places according to configured rules. People who did not get a place recently should have a better chance next time. HR can see what happened, employees can see their own result, and auditors should be able to trace why a decision was made.

Technically, I use it to try a few ideas in practice:

  • .NET services with clear boundaries
  • Dapr for state, pub/sub, service calls, and workflow
  • role-specific screens for employees, HR, tenant admins, and auditors
  • architecture documentation that is useful during implementation, not written after the fact

The product documentation is here:

https://www.vejvoda.net/fairspot/

I also moved the architecture documentation into a separate site:

https://www.vejvoda.net/fairspot-architecture/

That architecture site is where I keep the higher-level view: requirements, decisions, risks, constraints, target architecture, transition states, and the implementation roadmap. The detailed delivery work still belongs to GitHub issues and pull requests.

Source code and architecture repository:

2026

Back to Top ↑

2023

Another demo of Dapr and Zeebe (Camunda)

less than 1 minute read

After some time I went back to Dapr (v10) and Zeebe engine used in Camunda Platform 8. Updated projects to .NET 7 and tried again what I learned before and r...

Back to Top ↑

2022

Greetings to Camunda, Zeebe and Dapr!

1 minute read

It’s awesome to see how Dapr and Camunda workflow engine work well together. By using BPMN and DMN we completely remove business logic from the code and only...

Back to Top ↑

2021

Are your class constructors heavy?

3 minute read

One of OOP principles says, that every class should enter valid states only. The bigger class it is, the harder to do. Typically we use class constructors so...

Back to Top ↑

2020

Back to Top ↑