A self-hosted dashboard for exploring stock prices, technical indicators, and company news.
Website · Development guide · Frontend · License
- Explore daily prices and trading volume for ten US-listed companies.
- Compare SMA, EMA, RSI, and MACD indicators against stored price history.
- See price movements across the tracked companies and read related news.
- Export calculated indicators as ARFF files for analysis in tools such as Weka.
The tracked companies are Apple, Alphabet, Amazon, IBM, JPMorgan Chase, Johnson & Johnson, Coca-Cola, Microsoft, NVIDIA, and ExxonMobil.
Prices are shown in USD. This is a research tool using daily data, not a live trading platform.
The hosted application is available at profit-pilot.trade.
Access is invitation-only. Contact me on github or message me on Discord if you would like to try it. Approved users sign in with an email code through Cloudflare Access.
To run your own instance, follow the development guide.
Alpha Vantage supplies daily stock prices, which the backend stores in PostgreSQL. Charts and indicators use these stored prices, so exploring the dashboard does not trigger new price-provider requests. Company news comes from Marketaux.
The optional import schedule checks for updates during the day in New York. The application treats the previous trading day's prices as due from 06:00 New York time; this is an application rule, not a publication guarantee from Alpha Vantage.
Request budgets and import results are stored in the database. This lets the application retain its request accounting and latest completed import report after a restart.
flowchart LR
Browser --> Access[Cloudflare Access and Tunnel]
Access --> App[Spring Boot + React]
App --> DB[(PostgreSQL)]
App --> Prices[Alpha Vantage]
App --> News[Marketaux]
The production build packages the frontend inside the Spring Boot JAR. A systemd service runs it on the Pi.
| Area | Tools |
|---|---|
| Backend | Java 21, Spring Boot, Spring JDBC, Spring Security |
| Frontend | React, TypeScript, Vite, Recharts, Sass |
| Storage | PostgreSQL |
| Tests | JUnit, Vitest, React Testing Library |
| Hosting | Raspberry Pi 5, systemd, Cloudflare Access and Tunnel |
The development guide covers database setup, local configuration, startup, testing, and Pi deployment.
The frontend README explains the UI source layout and frontend-specific development tools.
web/ React frontend
src/main/java/io/github/vnic03/profitpilot/ Backend
src/main/resources/db/ SQL setup and updates
src/test/java/ Backend tests
scripts/ Build, deployment, and status checks
doc/ Setup and operation
assets/ Screenshots and project history
The test suite covers indicator calculations, import behavior, request budgets, API responses, and frontend loading states. PostgreSQL integration tests run separately against a dedicated test database.
- Historical coverage varies between stocks. The import freshness check uses the latest stored date; it does not guarantee a gap-free history.
- Update timing depends on the import schedule, provider availability, and request limits.
- Price-movement comparisons cover the ten tracked companies, not the entire market.
- ARFF exports use fixed indicator settings rather than the current chart settings.
- Database setup is manual. The hosted instance runs on a single Raspberry Pi.


