Skip to content

MarketFlow is a high-performance backend system with a modern lightweight dashboard that processes and visualizes real-time cryptocurrency market data using Go, Redis, PostgreSQL, and a vanilla JS frontend.

Notifications You must be signed in to change notification settings

meruyert4/marketflow

Repository files navigation

🚀 MarketFlow — Real-Time Cryptocurrency Market Tracker

MarketFlow is a high-performance backend system with a modern lightweight dashboard that processes and visualizes real-time cryptocurrency market data using Go, Redis, PostgreSQL, and a vanilla JS frontend.

Architecture Go Version License


🌟 Overview

MarketFlow collects cryptocurrency price data from multiple exchanges, aggregates it, caches it, and makes it accessible via a REST API. A beautiful built-in frontend lets users view real-time prices and switch between live and test modes instantly.

✅ Features

  • Clean Hexagonal Architecture
  • Real-Time & Historical Price Stats
  • Supports Live/Test Mode switching via API
  • Uses Redis for real-time cache and PostgreSQL for aggregates
  • Built-in Vanilla HTML/CSS/JS Frontend
  • Dockerized and easy to run

🖼 Dashboard Screenshots

Light Mode

Dark Mode

Theme toggle


🛠 Installation

📦 Prerequisites

  • Go 1.22+
  • Docker + Docker Compose

🧱 Load Exchange Images (Live Mode Only)

docker load -i exchanges/exchange1_amd64.tar
docker load -i exchanges/exchange2_amd64.tar
docker load -i exchanges/exchange3_amd64.tar

🚀 Running the App

git clone https://github.com/meruyert4/marketflow.git
cd marketflow
docker-compose up --build

🌐 API Reference

Endpoint Description
GET /prices/latest/{symbol} Get latest cached price
GET /prices/latest/{exchange}/{symbol} Latest by exchange
GET /prices/highest/{symbol} Max price in default period
GET /prices/highest/{exchange}/{symbol} Max by exchange
GET /prices/lowest/{symbol} Min price in period
GET /prices/average/{symbol} Average price
POST /mode/test Switch to test mode
POST /mode/live Switch to live mode
GET /health Health check of all services

Aggregated endpoints support ?period=1m, 2m, 30s etc.


📬 Postman Collection

You can find a ready-to-use Postman collection inside the api/ directory:

api/marketflow.postman_collection.json

Import this collection into Postman to quickly test all available endpoints including switching modes, fetching price stats, and running health checks.


🖥 Frontend Features

  • Real-time price stream from Redis
  • Filter by exchange/symbol/metric/period
  • Theme toggle: 🌞 Light & 🌚 Dark
  • Simple vanilla HTML/CSS/JS

🤝 Authors

  • Meruyert — Backend, database, API, frontend ✨
  • Temutjin — System architecture, service design ⚙️

“Concurrency is not parallelism — but with MarketFlow, you'll master both.”

About

MarketFlow is a high-performance backend system with a modern lightweight dashboard that processes and visualizes real-time cryptocurrency market data using Go, Redis, PostgreSQL, and a vanilla JS frontend.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published