Trading Tools | Full-Stack Application

Options Hub

React + Vite FastAPI SQLite Tradier API Gemini Assistant

This project is a web-based options dashboard built to manage positions, monitor P/L, and inspect option chains in one workflow. The frontend is implemented with React, while a FastAPI backend handles market data requests, persistence, and AI-assistant endpoints.

Position records are stored in SQLite, pricing data is pulled from Tradier, and a Gemini-powered assistant can discuss strategy and position context. The app is organized around practical trader workflows: dashboard review, ledger management, chain lookup, settings, and AI chat.

Options Trading Dashboard main dashboard view with open-position pricing snapshot and P/L chart
Dashboard view with live open-position pricing and portfolio-level P/L tracking.
Frontend React, Vite, React Router, Axios, Recharts
Backend FastAPI, Uvicorn, pandas, requests, dotenv
Data Layer SQLite position storage and calculated close metrics
External APIs Tradier options data and Gemini AI chat integration

Application Scope

  • Track open and closed options positions in a ledger
  • Calculate and monitor running P/L over time
  • Fetch quotes, option chains, and contract pricing
  • Filter chain strikes around spot with configurable range
  • Import structured position data from Excel
  • Use Gemini for position-specific discussion and notes

Core Sections

  • Dashboard: Open-position pricing snapshot and total P/L charting
  • Ledger: Add, edit, close, delete, and roll positions with row-level actions
  • Option Chain: Calls and puts lookup by ticker and expiration
  • AI Assistant: Backend-routed Gemini chat with position context support
  • Settings: Profile preferences and strike-range controls
  • Notebook: Reserved placeholder page for future expansion
Options chain view showing calls and puts tables with strike filtering controls
Option chain screen for calls/puts exploration with configurable strike filtering.

Architecture Notes

The backend exposes REST endpoints for positions, market data, settings, and AI chat while the frontend consumes those endpoints through a shared API layer. During development, Vite proxies `/api` calls to the FastAPI server for a clean local workflow.

SQLite is used for durable position records and close-trade metrics such as collateral, P/L, days, ROC, and annualized ROC. Historical P/L chart points are retained in browser local storage through the frontend context.

Operational & Security Notes

  • Backend requires a Tradier token for quotes and chain data.
  • Gemini key is optional unless AI chat endpoints are used.
  • Tokens and API keys should never be committed to source control.
  • CORS is configured for local development origins.
  • This project is educational tooling and not financial advice.