Algorithmic trading and stock analysis platform powered by AI.
Navigate to the backend folder, set up your Python virtual environment and run the Flask server:
# In the backend directory
.\.venv\Scripts\python.exe wsgi.pyNavigate to the frontend directory, install packages, and start the development server:
# In the frontend directory
npm install --legacy-peer-deps
npm run devStart Docker Desktop, then copy the environment template from the project root:
cp backend/.env.example backend/.envAdd your NewsData and NVIDIA API keys to backend/.env. Keep real keys out of backend/.env.example.
NEWS_API_KEY=your-newsdata-key
NVIDIA_API_KEY=your-nvidia-key
NVIDIA_MODEL=nvidia/nemotron-3.5-lightning-30b-a3bIf you run the Flask backend on your computer instead of inside Docker, use the published MongoDB port:
MONGO_URI=mongodb://localhost:27017Start MongoDB, Redpanda, the daily news producer, and the warning consumer:
docker compose --profile docker-news -f docker-compose.news.yml up --build -dThe news producer runs as soon as the container starts, then waits 86,400 seconds before its next run. It sends enriched articles to the atlas.market.news Redpanda topic. The warning consumer sends each article to the NVIDIA model named in NVIDIA_MODEL and stores accepted positive or negative warnings in MongoDB.
Follow both streamers:
docker compose --profile docker-news -f docker-compose.news.yml logs -f news-streamer warning-streamerLook for these messages to confirm the pipeline processed an article:
[news-streamer] Delivered to atlas.market.news
[warning-streamer] Saved ... warning(s) from event ...
Run one news collection cycle during development:
docker compose --profile docker-news -f docker-compose.news.yml up --build -d warning-streamer
docker compose --profile docker-news -f docker-compose.news.yml run --build --rm -e NEWS_STREAM_MODE=once news-streamerRebuild the containers after changing Python code, the model, or Docker configuration:
docker compose --profile docker-news -f docker-compose.news.yml up --build -d --force-recreateStop the news stack and preserve MongoDB data:
docker compose --profile docker-news -f docker-compose.news.yml downAdd --volumes to the down command when you want to delete the MongoDB volume. The portfolio page refreshes its warning cards while it remains open.