software
for a centralized sports betting system.
The concept of a bookmaker is introduced: it is responsible for creating events and changing their odds. They can also watch other events.
Bookmakers/players should be notified when the odds of an event they are watching change or when the event itself ends. These features should be implemented using the Observer design pattern.
A player can search his betting history using filters. Filters should allow pairing of logical expressions and should be created at runtime. Implemented using the Criteria design pattern.
The project was written in C#.