Inspiration

We built FinTerminal because managing a stock portfolio shouldn't require Bloomberg terminal access or a finance degree. Most retail investors struggle to track their holdings, visualize performance, and make informed decisions. We wanted to create a tool that puts professional-grade portfolio analytics in everyone's hands.

What it does

FinTerminal is a real-time portfolio tracking dashboard that transforms how you monitor investments:

  • Portfolio Dashboard: See your total invested, current value, gains/losses, and ROI at a glance
  • Visual Analytics: Pie charts for allocation, bar charts for gains/losses across holdings
  • Real-time Quotes: Search any stock symbol and get live pricing data
  • Portfolio Management: Add, remove, and track holdings with custom cost basis
  • Persistent Storage: Your portfolio saves automatically and syncs across sessions
  • Demo Mode: Start tracking immediately—no API key required for testing
  • Professional UI: Modern, responsive design that works on desktop and mobile

How we built it

Backend:

  • Go - Fast, reliable CLI and web server
  • Alpha Vantage API - Real-time stock market data
  • RESTful API - Clean endpoints for portfolio and quote operations

Frontend:

  • Vanilla JavaScript - No framework bloat, pure performance
  • Chart.js - Beautiful, responsive charts and visualizations
  • HTML5 & CSS3 - Modern web standards with custom properties for theming
  • Responsive Design - Mobile-first approach using CSS Grid

Architecture:

  • CLI tool with Cobra framework
  • Web server with static file serving
  • Portfolio storage as JSON files
  • Mock data for demo mode ## Challenges we ran into Challenge 1: API Limitations Alpha Vantage's free tier has rate limits (5 calls/minute). We solved this by implementing caching in the portfolio file and adding a "Refresh Prices" button instead of auto-polling.

Challenge 2: No API Key Barrier Early on, we realized requiring users to sign up for an API key was a huge friction point. We built mock data mode so anyone can try FinTerminal immediately without setup.

Challenge 3: Chart Performance Initial Chart.js implementation was slow with large portfolios. We optimized by destroying/recreating charts on demand and using efficient data structures.

Challenge 4: Cross-browser Compatibility Getting responsive design perfect across mobile, tablet, and desktop required extensive CSS media queries and testing.

Challenge 5: Error Handling Balancing helpful error messages without scary technical jargon took iteration. We added toast notifications instead of browser alerts for better UX.

Accomplishments that we're proud of

Built a fully functional product - From concept to working web app in a short timeframe

Professional UI/UX - Modern design with charts, smooth animations, and intuitive navigation

Zero external dependencies for frontend - No React/Vue bloat, just vanilla JavaScript and Chart.js

Comprehensive error handling - Graceful failures with helpful user messages

Full test coverage - Unit tests with testify/assert for all critical functions

Demo mode - Users can try everything without signing up for an API key

Responsive design - Works beautifully on phones, tablets, and desktops

Clean architecture - Modular code that's easy to extend and maintain

Real-time updates - Live price fetching with instant portfolio recalculation

Beautiful charts - Allocation pie chart and gains/losses bar chart

What we learned

Go is powerful for full-stack - Building both CLI and web server in Go was seamless

Less is more - Vanilla JavaScript outperformed over-engineered solutions

API design matters - Clean REST endpoints make frontend development much easier

CSS custom properties are game-changers - Theming and maintenance became trivial

Testing catches real bugs - Our test suite caught edge cases before production

UX > Features - A polished feature beats 10 unfinished ones

Users hate friction - Demo mode increased engagement dramatically

Documentation is underrated - Good README and code comments saved so much time

What's next for FinTerminal

Phase 1: Foundation & Accessibility

  • Refactor to production-grade RESTful API with proper versioning and documentation
  • Docker containerization for one-command deployment across all platforms
  • Comprehensive error handling with user-friendly messages and recovery workflows
  • Enhanced demo mode with realistic historical data
  • Cloud deployment guides (AWS, Heroku, DigitalOcean)
  • Eliminate API key barriers with built-in default credentials for demo users

Phase 2: User Experience & Interface

  • Dark mode and light mode with system preference detection
  • Enhanced UI with real-time price ticker and improved notifications
  • Advanced charts: candlestick charts, heatmaps, performance analysis
  • Bulk import from CSV for quick portfolio setup
  • Customizable dashboard with draggable widgets and user preferences
  • Accessibility improvements and keyboard shortcuts for power users

Phase 3: Advanced Features & Integration

  • Price alerts and watchlists for investment tracking
  • Multiple data provider support (IEX Cloud, Finnhub, Polygon)
  • Brokerage integration for auto-synced holdings
  • Tax loss harvesting and dividend tracking
  • Cryptocurrency support and portfolio analysis
  • Mobile app and desktop applications for all platforms

Built With

Share this project:

Updates