| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A modern, responsive web application for tracking investment holdings with real-time portfolio management using Blazor Server and Bootstrap 5.
The application connects to the same AWS RDS SQL Server instance as the console application. The connection string is configured in appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=[your-rds-endpoint];Database=investment-tracker;User Id=admin;Password=***;TrustServerCertificate=True;Encrypt=True;"
}
}Security Note: In production, use environment variables or Azure Key Vault for sensitive connection strings.
cd InvestmentPortfolioTracker.Webdotnet restoreEdit appsettings.json and update the connection string with your database credentials.
dotnet builddotnet runThe application will:
Navigate to: https://localhost:5001 (or the port shown in the terminal)
InvestmentPortfolioTracker.Web/
├── Program.cs # Application entry point with DI configuration
├── appsettings.json # Configuration file
├── Models/
│ └── Holding.cs # Entity model with calculated properties
├── Data/
│ ├── PortfolioDbContext.cs # EF Core database context
│ ├── PortfolioDbContextFactory.cs # Design-time factory
│ └── Migrations/ # Database migrations
├── Repositories/
│ ├── IHoldingRepository.cs # Repository interface
│ └── HoldingRepository.cs # Repository with stored procedures
├── Services/
│ └── PortfolioService.cs # Business logic and calculations
├── Pages/
│ ├── Index.razor # Dashboard page
│ ├── Holdings.razor # Holdings list with table
│ ├── AddHolding.razor # Add new holding form
│ ├── EditHolding.razor # Edit holding form
│ └── UpdatePrices.razor # Price update interface
├── Shared/
│ ├── MainLayout.razor # Main application layout
│ └── NavMenu.razor # Navigation menu
└── wwwroot/
└── css/
└── site.css # Custom styles
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />The application uses stored procedures for all database operations:
| Procedure | Purpose |
|---|---|
| sp_GetAllHoldings | Retrieve all holdings |
| sp_GetHoldingById | Get specific holding |
| sp_InsertHolding | Create new holding |
| sp_UpdateHolding | Update holding details |
| sp_UpdateHoldingPrice | Update price only |
| sp_DeleteHolding | Delete holding |
| sp_HoldingExists | Check existence |
dotnet runThe application runs with hot reload enabled - changes to .razor files are automatically reflected.
dotnet build -c Release
dotnet publish -c Release -o ./publishdotnet ef migrations add MigrationNamedotnet ef database updatedotnet ef migrations removeCreate appsettings.Development.json or appsettings.Production.json for environment-specific configurations.
dotnet clean
dotnet restore
dotnet buildChange the port in Properties/launchSettings.json or use:
dotnet run --urls "https://localhost:5002"Migrations are automatically applied at startup. If issues occur:
dotnet ef database update --connection "your-connection-string"⚠️ Current Implementation (Development):
🔒 Production Recommendations:
| Feature | Console App | Blazor Server App |
|---|---|---|
| User Interface | Text-based menu | Modern web UI |
| Accessibility | Local only | Network accessible |
| Real-time Updates | Manual refresh | Automatic SignalR |
| Multi-user Support | Single user | Multi-user capable |
| Responsiveness | Terminal window | Mobile responsive |
| Data Visualization | Text tables | Rich UI components |
This is a portfolio project for educational purposes.
This is a personal project, but suggestions and feedback are welcome!
For issues or questions, please refer to the main project documentation or create an issue in the repository.
Built with ❤️ using Blazor Server and .NET 8
| Back | FazBrowse Home | New Git URL |