Digital Asset Dashboard Demo Setup Tutorial: Market Simulation and Paper Trading Guide

Digital Asset Dashboard Demo Setup Tutorial: Market Simulation and Paper Trading Guide

Disclaimer: This tutorial is for technical education and demonstration only. It is not investment advice, nor a recommendation to perform real financial operations. Real-world financial platforms require appropriate licenses, compliance, and regulatory approval. The dashboard described here simulates market data and uses paper trading to help learners understand how frontend and backend components work together.

This guide walks through building a digital asset dashboard demo that visualizes market data, supports multi-language interfaces, and provides an admin panel for technical learning. The demo uses simulated market data, paper trading, and data visualization components such as K-line charts. It does not handle real funds, real leverage, or real financial returns.

Overview of the Demo Dashboard

The demo dashboard is a full-stack learning project built with:

  • Frontend: responsive web interface with market data visualization (K-line charts, candlestick charts, and data tables).
  • Backend: PHP-based services using Laravel-style command scheduling, WebSocket push, and queue workers.
  • Database: MySQL for persistent configuration and metadata, Redis for caching and real-time data streams.
  • Search & analytics: Elasticsearch for indexing and querying market data during simulation.
  • Multi-language support: language files and localized UI labels.
  • Admin dashboard: management panel for viewing simulated market status, scheduled tasks, and system health.

All market activity inside the dashboard is simulated. Users can practice paper trading with virtual balances to understand how the interface behaves without any financial risk.

Prerequisites

Java Installation

Elasticsearch requires Java. This demo uses OpenJDK 1.8.

To check the installed version, run:

java -version

If Java is not configured, add the environment variables to /etc/profile:

JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH

Apply the changes:

. /etc/profile

Elasticsearch Installation

Download Elasticsearch 6.6.0:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz
tar -zxvf elasticsearch-6.6.0.tar.gz
mv elasticsearch-6.6.0 elasticsearch
mv elasticsearch /usr/local

Edit /usr/local/elasticsearch/config/elasticsearch.yml:

cluster.name: my-es
node.name: node-1
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "10.10.10.34:9200"]

Create a dedicated user and assign directory permissions:

useradd es
passwd es
mkdir -p /usr/local/elasticsearch/data
chown -R es:es /usr/local/elasticsearch

Update system limits in /etc/security/limits.conf:

* soft nofile 65536
* hard nofile 131072

Update kernel settings in /etc/sysctl.conf:

vm.max_map_count=655360

Apply the kernel settings:

sysctl -p

Start Elasticsearch as the es user:

cd /usr/local/elasticsearch/bin
su es
sh elasticsearch -d

Verify that ports 9200 and 9300 are accessible.

PHP Extensions

Install the following PHP extensions for the demo backend:

  • fileinfo
  • opcache
  • memcache
  • redis
  • imagemagick
  • imap
  • exif
  • intl
  • xsl

Disable any dangerous function restrictions that would block console commands.

Web Server and Ports

Open the ports required for the demo environment:

  • 9200 (Elasticsearch HTTP)
  • 3306 (MySQL)
  • 888 (panel management)
  • 443 (HTTPS)
  • 39000-40000 (WebSocket / push services)
  • 20, 21, 22 (standard server access)

Configure pseudo-static rules for the web server:

location / {
    try_files $uri $uri/ /index.php$is_args$query_string;
}

Market Data Visualization

The dashboard displays simulated market data using K-line charts. These charts are generated from historical data stored in MySQL and cached in Redis for fast rendering.

WebSocket push is handled by the bundled message sender component. Start it with:

cd /www/wwwroot/demo_dashboard/public/vendor/webmsgsender
php start.php start

For production-like demo deployment, run it in daemon mode:

php start.php start -d

Scheduled Market Simulation Tasks

The demo uses scheduled commands to generate and refresh simulated market data. Adjust timing according to your learning environment. Below are example tasks configured on a Baota panel:

  1. Refresh 5-minute simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_fivemin
  2. Refresh 15-minute simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_fifteenmin
  3. Refresh 30-minute simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_thirtymin
  4. Refresh hourly simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_hourly
  5. Refresh daily simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_daily
  6. Refresh weekly simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_weekly
  7. Refresh monthly simulation data
    cd /www/wwwroot/demo_dashboard
    php artisan get_kline_data_monthly
  8. Start auto-simulation worker
    cd /www/wwwroot/demo_dashboard
    php artisan auto_change start
  9. Process background queue
    cd /www/wwwroot/demo_dashboard
    php artisan queue:work
  10. Run WebSocket scheduler
    cd /www/wwwroot/demo_dashboard
    php artisan schedule:run websocket-client
  11. Restart WebSocket client
    cd /www/wwwroot/demo_dashboard
    php artisan websocket:client restart
  12. Start WebSocket message sender
    cd /www/wwwroot/demo_dashboard/public/vendor/webmsgsender
    php start.php start
  13. Renew SSL certificate
    /www/server/panel/pyenv/bin/python -u /www/server/panel/class/acme_v2.py --renew=1

Admin Dashboard and Multi-Language Support

The admin dashboard lets administrators inspect the simulated market status, monitor scheduled tasks, and review system logs. It is intended for learning how backend administration interfaces operate.

Multi-language support is implemented through language files and localized templates. The frontend switches between languages without affecting backend data processing, which makes it useful for understanding internationalization patterns in web applications.

System Architecture Summary

  • Frontend: HTML/CSS/JS interface, K-line charts, multi-language selector, admin panels.
  • Backend: PHP services with Laravel-style Artisan commands, queue workers, and WebSocket clients.
  • Cache & real-time layer: Redis for session caching, market data snapshots, and pub/sub channels.
  • Persistence layer: MySQL for user metadata, simulated market history, and configuration.
  • Search layer: Elasticsearch for indexing and querying simulation data.
  • Process management: PM2 or Baota panel task scheduler for background workers.

Conclusion

This demo setup provides a safe technical environment for learning how a digital asset dashboard combines frontend visualization, backend services, real-time data, and an admin panel. It uses simulated market data and paper trading only.

Reminder: This content is for educational purposes only. It does not provide financial, investment, or legal advice. Operating a real financial platform requires proper licenses, regulatory compliance, and professional oversight. Always follow local laws and regulations before building or launching any real financial system.