- PostgreSQL installed (must be running)
- Python 3 + pip + venv
- Kafka (included in folder
2kafka/kafka_2.13-4.1.0.tgz) - macOS / Linux terminal
src/
├── 0dbInit/
│ └── dbInit.py
├── 1producers/
│ ├── binanceProducer.py
│ ├── fakeStockProducer.py
├── 2kafka/
│ ├── kafka_2.13-4.1.0.tgz
│ └── versions.txt
├── 3consumers/
│ ├── AttiqueConsumer.py
│ ├── binanceConsumer.py
│ └── fakeStockConsumer.py
├── 4postgres/
│ └── tradeDBSample.sql
├── 6DashboardOrNotifier/
│ └── Dashboard.py
└── websockets/
└── sample.py
Make sure PostgreSQL is running.
Default connection used:
DB_NAME = trades
DB_USER = sultanalzoghaibi
DB_PASS = ""
DB_HOST = localhost
DB_PORT = 5432
From the src folder:
cd src
python 0dbInit/dbInit.pyThis creates:
tradesasset_volatilityalerts
Kafka is NOT included in this repo (GitHub file-size limit).
You must download it manually.
Go to:
https://kafka.apache.org/downloads
Download the Binary:
kafka_2.13-4.1.1.tgz
Place the file here: src/2kafka/kafka_2.13-4.1.1.tgz
cd src/2kafka
tar -xvf kafka_2.13-4.1.0.tgz
cd kafka_2.13-4.1.0Format storage (KRaft mode):
bin/kafka-storage.sh format -t $(uuidgen) -c config/kraft/server.properties --standaloneStart Kafka:
bin/kafka-server-start.sh config/server.propertiesIn another terminal:
cd src/2kafka/kafka_2.13-4.1.0
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create \
--topic fakestock --partitions 10 --replication-factor 1
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create \
--topic binance --partitions 10 --replication-factor 1From src:
python 3consumers/AttiqueConsumer.py
python 3consumers/fakeStockConsumer.pyIn separate terminals:
python 1producers/binanceProducer.py
python 1producers/fakeStockProducer.pyFrom src:
python 6DashboardOrNotifier/Dashboard.pyDashboard runs on:
http://127.0.0.1:8050
- WebSocket → Kafka → Consumers → PostgreSQL → Dashboard
- Fake stocks used for testing
- Binance stream used for real-time market data