InvierteEdu: interactive financial education
A full-stack platform that explains technical and fundamental analysis with real market data and calculators.
Educational modules
12
Technical and fundamental
Time ranges
1D – 2Y
For any ticker
Chart indicators
EMA · RSI · MACD
Can be toggled on and off
Data cache
5 min
Persisted in SQLite
The idea
Every metric investors use, explained from scratch: what it means, how it's calculated, how to read it and with real examples. The app puts theory and practice on a single screen: next to each lesson there is a chart with real market data so you can see the indicator at work.
The app's interface and lessons are written in Spanish, since it was built for a Spanish-speaking audience.
Two learning paths
- Technical analysis: support and resistance, moving averages, RSI and MACD, with the formula, the reading zones and the buy and sell signals.
- Fundamental analysis: P/E ratio, EPS, ROE, dividends and market capitalization, with interactive calculators to practice with your own numbers.
- Stock chart tool: any ticker, ranges from 1 day to 2 years, EMA 20/50/200, RSI 14 and MACD.
Stock chart
The real tool queries market data on the spot for any ticker. This version uses saved data so it works without a backend, but keeps the interaction: pick a range and hover over the series.
AAPL · saved data as of 2026-09-21
$338.98 +13.75%
Saved historical data (not live) so the demo works without depending on the backend. The real app queries the Yahoo Finance API on the spot for any ticker.
The app at work
Screenshots of the application running locally against the backend, with real market data (the app itself is in Spanish).
Architecture
- 1
Frontend
React 19 with TypeScript, Vite, Tailwind CSS and React Router; charts with Recharts. A shared context syncs the chart with the rest of the page.
- 2
Backend with FastAPI
A service queries the Yahoo Finance chart API with httpx, computes the exponential moving averages (20, 50 and 200) on the server and exposes candles by ticker and range.
- 3
Robustness
Persistent SQLite cache with a 5-minute TTL that survives restarts, an allowlist of ranges, strict ticker validation and CORS configurable through an environment variable.
- 4
Quality and deployment
Tests with Vitest on the frontend and pytest on the backend. A Render blueprint defines the static frontend and the API as two services.