Reserva is a working ASP.NET Core booking service. Two people can book the same slot, times drift for users in other timezones, and classes overfill under load. You fix each bug in the real codebase and open a GitHub pull request. An AI teammate reviews it, and a hidden dotnet test suite decides whether it passes.
Real GitHub PRs · Graded by dotnet test · Free during beta
Booking systems break when requests arrive at the same moment or from a different timezone. These are the bugs tutorials skip, in a C# codebase you didn't write.
Booking reads availability and then inserts the reservation in a separate step with nothing making it atomic, so two concurrent requests can both win. To pass, a slot holds one active booking, the losing request gets a 409 conflict, and cancelling frees the slot again.
Start and end times are saved and compared in the server's timezone, so they shift for users elsewhere and again around daylight saving changes. To pass, slots are stored and compared in UTC, shown in the user's own timezone, and a DST change doesn't move an existing slot.
For a class with N seats, the flow counts bookings and then inserts without locking, so a burst of requests overfills it. To pass, bookings never exceed capacity, exactly capacity requests succeed in a burst, and a cancellation frees a seat.
Each Reserva ticket has a hidden xUnit test file that's added to your branch at grading time. The result appears on your pull request as a check.
Reserva assumes you can write C# and know the basics of ASP.NET Core. It tests whether you can find a concurrency bug and fix it properly.
Developers heading for .NET teams who want work that looks like what those teams ship.
Juniors who have heard of race conditions but have never had to fix one.
Self-taught devs and bootcamp grads who have never had a pull request reviewed.
Anyone preparing for interviews who wants a concrete concurrency story to tell.
Not for: people new to C#. Reserva is about debugging an existing service, so learn the language first.
The .NET 8 SDK if you work locally. Every Reserva repo also opens in GitHub Codespaces with the SDK ready.
An AI teammate reviews the diff in the PR thread and can ask for changes. Whether the fix is correct is decided by the hidden dotnet test suite.
They send concurrent booking requests for the same slot or class and count how many succeed. With the bug, too many get through.
The failing test output is on the pull request. Push a new commit and the check runs again.
Yes. Finishing the sprint gives you a certificate with the stack, the tickets you shipped and your tracked hours, behind a public link.
It's free during the beta.