Project Overview
The BSV Arbitrage Finder is a live analytics web app that compares BSV/USDT prices across multiple cryptocurrency exchanges to reveal potential arbitrage spreads after factoring in trading fees, withdrawal costs, and estimated slippage. The project was built with Flask and follows a clean, modular design emphasizing professional software-engineering practices — configuration via environment variables, adapter-based API services, and a responsive dark-themed interface.
Core Technologies
- Python 3.10 & Flask (REST integration, routing, Jinja templating)
- Requests & dotenv (API communication and configuration)
- Bootstrap 5 + custom CSS (responsive dark-mode UI)
- DigitalOcean Droplet with Nginx + Gunicorn for deployment
Technical Execution & Problem Solving
Each exchange uses its own API schema, so a service adapter pattern was introduced under services/exchanges/ — every adapter exposes a unified fetch(session, timeout) method returning standardized quote data. This design isolates inconsistencies between exchanges and makes the system easy to extend.
A lightweight in-memory cache (10-second TTL) improves performance while ensuring up-to-date results. When an exchange API fails or returns invalid data, the app degrades gracefully, skipping it with a clear on-screen banner rather than halting execution.
Key Features
- Aggregates live BSV/USDT bid-ask quotes from multiple exchanges
- Computes gross and net arbitrage spreads with fee and slippage adjustments
- Responsive, dark-mode dashboard with sortable results table
- JSON API endpoint (
/api/quotes) for programmatic access - Configurable per-exchange fee structure via
.env
Demonstrated Skill Set
This project showcases expertise in REST API integration, Flask architecture, modular Python design, error handling, front-end polish, and production deployment workflow. It reflects the ability to take a simple educational concept and evolve it into a portfolio-ready, professional web application that emphasizes clarity, maintainability, and real-world usability.
Outcome
The final result is a reliable analytics tool that highlights how thoughtful engineering — from normalized data ingestion to polished presentation — can elevate a small API exercise into something production-worthy and visually refined.