FundWatch is a comprehensive stock tracking and portfolio management application that helps users monitor investments and simulate trading strategies.
- Stock Portfolio Tracking: Monitor your investments with detailed metrics including purchase price, current value, and performance statistics
- Stock Data Integration: Leverages Polygon.io API to fetch real-time and historical stock data
- Performance Analytics: Visual charts and metrics showing portfolio performance over time
- Transaction History: Track purchases and sales with comprehensive history views
- Watchlist Management: Keep track of potential investment opportunities
- Simulation Tools: Test different investment strategies with historical data
- Backend: ASP.NET Core MVC (.NET 8)
- Database: Microsoft SQL Server (migrated from PostgreSQL)
- Frontend:
- HTML5, CSS3, JavaScript
- Syncfusion UI components
- Bootstrap for responsive design
- Authentication: ASP.NET Core Identity
- External APIs: Polygon.io Stock API
- Cloud Infrastructure:
- Microsoft Azure App Service
- Azure SQL Database
- Cloudflare for DNS, SSL, and security
- .NET SDK 8.0 or later
- SQL Server (local or cloud instance)
- Visual Studio 2022 or Visual Studio Code
- Polygon.io API key
-
Clone the repository:
git clone https://github.com/taylor-js/FundWatch.git cd FundWatch
-
Set up user secrets for connection strings and API keys:
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=FundWatch;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;" dotnet user-secrets set "PolygonApi:ApiKey" "YOUR_POLYGON_API_KEY" dotnet user-secrets set "Syncfusion:LicenseKey" "YOUR_SYNCFUSION_LICENSE_KEY"
-
Apply database migrations:
dotnet ef database update --context ApplicationDbContext dotnet ef database update --context AuthDbContext
-
Run the application:
dotnet run
-
Open your browser and navigate to http://localhost:5147
FundWatch utilizes several Polygon.io API endpoints:
/v2/aggs/ticker/{symbol}/range/{multiplier}/{timespan}/{from}/{to}
- For historical price data/v3/reference/tickers/{symbol}
- For company details/v2/snapshot/locale/us/markets/stocks/tickers/{symbol}
- For real-time quotes
The application is deployed on Microsoft Azure using GitHub Actions for CI/CD:
- Every commit to the main branch triggers an automated build and deployment
- Azure SQL Database is used for data storage
- Cloudflare provides additional security and performance optimizations