Tech Series
Goal
Build an end-to-end financial analytics/trading/research system Sravz Architecture.
Source Code
Please Contact Us for:
Sravz Source Code Repositories
Below are the main code repositories powering the Sravz platform. Each repository is a separate submodule in the monorepo. Click the links for more details and usage instructions.
| Repository | Description | Link | 
|---|---|---|
| backend-py | Python backend for financial data processing, analytics, Kafka/NSQ/MongoDB integration, and cloud uploads. | GitHub | 
| backend-go | Go backend providing REST APIs, WebSocket support, batch jobs, RSS feed processing, and MongoDB integration. | GitHub | 
| backend-cpp | High-performance C++ backend for real-time data processing, WebSocket server, and Redis integration. | GitHub | 
| backend-node | Node.js backend for REST APIs, WebSocket, job scheduling, authentication, MongoDB, Redis, and NSQ. | GitHub | 
| backend-rust | Rust backend for scalable data processing, NSQ messaging, MongoDB, and analytics with Polars/Python interop. | GitHub | 
| frontend-ng | Angular frontend providing a modern UI for analytics, assets, portfolios, and integration with backend services. | GitHub | 
- Product demo
- Sravz source code for personal/academic use
- Collaborative license for Startup use
- Commercial license
Note
Please review below material in the ID order. The codebase gradually implements new features.
CPP (C++)
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 0 | Docker Containerizaton & Development Environment Setup | Docker Containerizaton & Development Environment Setup | C++ Docker Dev Env Setup | 
| 1 | Boost Redis Streams | Integrate backends implemented in C++ and NodeJS | Redis Streams | 
| 2 | Boost Beast Websockets | Use multi-threaded client to read stock quotes from websocket | Boost Beast Websockets | 
| 3 | Boost Beast Websocket Server | Use multi-threaded server to publish stock quotes | Boost Beast Websockets | 
| 4 | Boost Program Options | Use boost program options library | Boost Program Options | 
| 5 | Boost Beast REST API Server | Use multi-threaded server to provide REST API | Boost Beast REST API Server | 
| 6 | MongoDB Client/Service | Use C++ MongoDB Driver to perform CRUD operations on MongoDB | C++ MongoDB Service/Client | 
| 7 | AWS S3 Client/Service | Use C++ AWS SDK to perform CRUD operations on AWS S3 | C++ AWS S3 Service/Client | 
| 8 | Boost Beast REST API HTTP Session with Router -> Controller -> Service | Integrates Boost Beast REST API HTTP Session with Router -> Controller -> Service | REST-API-Router-Controller-Service | 
| 9 | AWS S3 Client/Service - S3 Select | Use C++ AWS SDK to perform S3 select operations on AWS S3 Parquet file | REST-API-AWS-S3-Select | 
| 10 | Optional - Airflow + Dask Stock Quotes Stats Generation | Optional - Airflow + Dask Massively Parallel 5200 Stock Quotes Stats Generation | Airflow-Dask-Stock-Stats-Generator | 
| 12 | CMake | Switch Make to CMake | CMake | 
| 13 | Fundamentals Controller | Cache S3 Presigned URLs in Redis | Fundamentals-Controller | 
| 14 | REST API Models | Use Models to send JSON as the REST API Output | REST-API-MODELS | 
Golang
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | Golang Crash Course | Covers important golang topics | Golang Crash Course | 
| 2 | Golang Redis Websockets | Use Golang WebSockets/Redis Client to load realtime ticker plant | Golang Redis Websockets | 
Airflow - Dask
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | Stock Quotes Stats Generation | Airflow + Dask Massively Parallel 5200 Stock Quotes Stats Generation | Airflow-Dask-Stock-Stats-Generator | 
| 2 | Stock Fundamentals uploader | Airflow Task Mapping Usage - Ticker fundamentals upload | Stock Fundamentals Uploader | 
| 3 | ETF Tickers uploader | Airflow Task Mapping Usage - Get list of US ETF tickers | ETF Tickers Uploaders | 
| 4 | ETF historical quotes uploader | Airflow Task Mapping Usage - Uplaod historial ETFs quotes to S3 | ETF Historical Quotes Uploader | 
| 5 | Mutual funds uploader | Airflow Task Mapping Usage - Upload mutual funds fundamentals | Mutual funds fundamentals uploader | 
Angular
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | Angular - Ignite UI - Upgrade v14 - v15 | Update Angular | Angular-Upgade-V14-15 | 
| 2 | Angular - Ignite UI - Upgrade v15 - v16 | Update Angular | Angular-Upgade-V15-16 | 
IBKR
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | IBKR Python API Introduction | Quick introduction to IBKR Python API | IBKR-Python-API | 
Docker
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | Multi Node Docker Swarm Setup | Create docker swarm on multiple Ubuntu nodes | docker-swarm-setup | 
Redis
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | Redis Timeseries introduction | Redis Timeseries introduction | Redis-Timeseries-Introduction | 
Rust
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | Rust NSQ Reader/Writer | Rust application for NSQ Reader/Writer - Historical Ticker Plant | Rust-NSQ-Reader-Writer | 
Python
| ID | Description | Use Case | Page | 
|---|---|---|---|
| 1 | OpenAI | Use OpenAI to Create Q&A Application on Sravz Financial Data | OpenAI Q&A Session | 
| 2 | LangChain | Use LangChain to Create Q&A Application on Sravz Financial Data | LangChain Q&A Session |