Secret Santa web app for running anonymous gift exchanges. Admins manage a workshop (game instance), invite players, capture wishlists, and randomly pair givers with recipients so each participant sees only their assigned receiver's list.
The repository currently contains the core domain library and unit tests. It models workshops, players, wishlists, and mnemonic-style workshop IDs; pairing logic and service/API layers are planned to follow.
src/backend/secret-santa.sln— solution including the domain library and testssrc/backend/SecretSanta.Domain— domain types for workshops, players, wishlists, and Pneumonic IDssrc/backend/tests/SecretSanta.Tests.Domain— Expecto tests covering the domain behaviors
- Workshop: holds a mnemonic ID, name, spending cap, player list, and eventual giver/receiver pairs.
- Player: identified by nickname; supports tags (deduplicated) and wishlist management.
- Wishlist items: validated HTTP/HTTPS URLs to keep entries shareable.
- Pneumonic IDs: human-friendly, winter-themed slugs (e.g.,
frosty-elf) with basic validation.
- Install a .NET SDK that supports
net10.0(or retarget the projects to your installed SDK). - From
src/backend, run tests:dotnet test - Open
secret-santa.slnin your editor/IDE to explore or extend the domain.
MIT — see LICENSE.