25
autonomous trader bots
Multi-threaded stock-market simulator with 25 autonomous trading bots and a React dashboard, built around classic OOP design patterns.
University of Groningen, Advanced OOP · 2024

Two-person course project for Advanced OOP. The brief asked for a non-trivial concurrent system exercising several design patterns, with the trader and the exchange evolving independently and talking only through a shared message bus. We modelled a stock market: 25 trader bots live in one application, the exchange lives in another, and everything they say to each other goes through a thread-safe queue.
Both sides depend on a small shared layer of interfaces and on the queue, so either can change without the other noticing. The whole thing runs as a set of containers behind a React dashboard.
The trader application and the exchange never import each other. They both depend on a small core of shared interfaces and on the queue that carries orders between them.
25 autonomous bots run in the trader application, each driven by a pluggable strategy. Adding a new trading style is one new class.
Each order type is its own class implementing a shared Command interface, with a Factory keeping the dispatch sites clean. The dashboard reads everything through stable model interfaces.
A multi-module Java project deployed as containers, with the React frontend reading state through stable model interfaces.
Key technical decisions
25
autonomous trader bots
11
simulated stocks
4
design patterns exercised
Concurrent dispatch
The queue plus an observer subscription handles concurrent arrivals without a polling loop.