Project Experience Summary
Default entry point for hiring managers — project experience, verified demo scale, and skills at a glance.
4 min read
Project Background
- Legacy desktop portfolio management system — a WinForms enterprise application used for day-to-day investment operations and month-end reporting.
- Production SQL Server database (dzungmedia_com_PMS) already held buy/sell contracts, detail views, and historical portfolio data.
- Executives and BOD stakeholders needed browser-based decision support — KPI dashboards, allocation views, and financial summaries without installing desktop clients.
- Critical requirement: read-only web modernization that preserves existing financial logic — no schema migration, no rewritten profit or holdings calculations.
My Responsibilities
- Business systems analysis — mapped legacy workflows to executive reporting requirements
- SQL Server data investigation — validated NhapChiTiet, XuatChiTiet, and holdings reconciliation
- Portfolio holdings and cost basis reporting design
- Executive dashboard and BOD decision-support delivery
- Financial report aggregation — realized profit and allocation analytics
- Legacy system modernization — web reporting without changing business rules
- Cross-functional documentation — Knowledge Center linked to live modules
- Data verification against legacy WinForms outputs
Technical Environment
- ASP.NET MVC read-only PMS area
- Executive Dashboard
- Portfolio Analytics
- Financial Reports
- Holdings aggregation
- Allocation reporting
- Report aggregation
- Snapshot period handling
- SQL Server — dzungmedia_com_PMS
- Entity Framework 6
- NhapChiTiet / XuatChiTiet views
- Chart.js executive visuals
- Month-end snapshot KPIs
- Knowledge Center case study portal
Key Challenges Solved
Business Outcomes
- Reduced manual reporting effort — consolidated executive dashboards replace multi-spreadsheet extracts
- Improved executive visibility — month-end snapshot KPIs across cost, value, gains, and allocation
- Centralized portfolio analytics — single holdings calculation path for Dashboard and Analytics
- Faster management reporting — Financial Reports and Dashboard share the same profit aggregation
- Better investment performance tracking — 874,655,278 VND cumulative realized profit through Oct 2021
- Verified demo scale — 160 buy contracts, 152 sell contracts on live SQL Server data
This article summarizes the PMS project as professional portfolio experience — not a tutorial, but a case study grounded in working software.
Verified demo portfolio at a glance:
- 160 buy contracts / 152 sell contracts through Oct 2021
- 874,655,278 VND cumulative realized profit
- 4 open positions at 01/2021 — 476,734,120 VND portfolio cost basis
- Live database — dzungmedia_com_PMS
Use Explore live modules below to move from documentation to Executive Dashboard, Analytics, and Financial Reports.
Explore live modules
Reporting Architecture
- Users interact with executive reporting screens — not raw SQL — for month-end portfolio review and decision support.
- Business services enforce a single source of truth for holdings, allocation weights, and realized profit reporting.
- All modules read the same dzungmedia_com_PMS schema — read-only, preserving legacy financial semantics.
- Knowledge Center links documentation to live modules so recruiters and managers can verify reporting outcomes immediately.
Project overview
Delivered a read-only Portfolio Management System (PMS) reporting environment that modernizes legacy WinForms investment reporting into web-based executive dashboards and BOD decision-support outputs for management and analyst audiences.
The web module connects to the existing dzungmedia_com_PMS SQL Server schema — preserving buy/sell detail views, holdings math, and realized profit calculations while adding browser-based dashboards and documentation.
- Investment portfolio tracking — buys, sells, holdings, and P/L reporting
- Executive Dashboard, Portfolio Analytics, Holdings, and Financial Reports modules
- Knowledge Center — business and technical case study portal (this site)
- Month-end snapshot reporting with unified period handling across modules
Business domain
Vietnamese equity portfolio management: track contract-level buy and sell activity, reconcile open holdings at month-end, report cost basis and allocation, and aggregate realized profit from disposals.
Stakeholders include portfolio managers (composition and concentration), finance (realized P/L), and executives (KPI dashboards).
- Buy lifecycle — HopDongMua → NhapChiTiet → open position cost basis
- Sell lifecycle — HopDongBan → XuatChiTiet → realized profit
- Snapshot reporting — month/year selector with month-end cutoff date
- Exchange classification — HOSE, HNX, UPCOM via Content / Classify
Responsibilities
- Business systems analysis — mapped legacy WinForms workflows to web module requirements
- Financial data modelling — holdings engine, cost basis, realized vs unrealized semantics
- SQL Server reporting — NhapChiTiet, XuatChiTiet, Price, and Content view integration
- Service-layer design — PmsPortfolioHoldingsService, PmsReportService, allocation builders
- Executive reporting delivery — Dashboard, Analytics, Holdings, Reports, and Buy/Sell History outputs
- Executive UX — KPI cards, Chart.js trends, allocation charts, period selectors
- Legacy modernization — web delivery without rewriting business rules or migrating schema
- Technical documentation — Knowledge Center articles linked to live working screens
Solution architecture
A read-only enterprise reporting application reads dzungmedia_com_PMS through SQL Server views. Business services aggregate holdings and financial data; executive dashboards present analytics for management decision support.
- PmsPortfolioHoldingsService — open positions and cost basis at snapshot cutoff
- PmsPortfolioAllocationBuilder — weights, summaries, cost-basis allocation charts
- PmsReportService — Financial Reports and Dashboard Top Realized from XuatChiTiet
- PmsPortfolioDashboardService / PmsPortfolioAnalyticsService — UI orchestration
- PmsPortfolioPeriodHelper + PmsPortfolioDefaults — consistent snapshot period across modules
Project scale
Based on verified demo portfolio data in dzungmedia_com_PMS:
- 160 buy contracts
- 152 sell contracts
- 874,655,278 VND cumulative realized profit through Oct 2021
- 4 open positions at 01/2021
- 476,734,120 VND portfolio cost basis at 01/2021
- 284 buy detail lines / 258 sell detail lines
- Multiple reporting modules with shared service architecture
- 2021 portfolio history with month-end snapshots
Modernization highlights
The legacy WinForms PMS remained the calculation authority. The web module adds executive accessibility without a risky full rewrite.
- Preserved — XuatChiTiet profit, holdings reconciliation, Classify exchange groups
- Added — browser dashboards, Knowledge Center, unified snapshot pipeline
- Reused — existing SQL Server schema and investment data
- Constraint — read-only web access for portfolio demonstration
Read this page → Executive Dashboard (?month=1&year=2021) → Financial Reports → Portfolio Project Overview for module depth.
- Faster recruiter and hiring-manager onboarding to the full PMS case study
- Consolidated view of responsibilities, architecture, and verified outcomes
- Demonstrates delivery of a business application — not a toy sample
- Connects professional experience narrative to live working modules
A recruiter opens /PMS/KnowledgeCenter before an interview and needs a concise summary of project experience, scale, and skills demonstrated.
The PMS provides:
- Project Experience Summary — default landing article
- Verified facts — 160 buys, 152 sells, 874,655,278 VND realized profit
- Live module links — Executive Dashboard, Analytics, Financial Reports
The interviewer can assess business systems, SQL reporting, and executive reporting delivery without reading every topic article first.
Investment committees lose trust quickly when Dashboard, Holdings, and Analytics show different numbers for the same period. Centralized services prevent that drift.
Without centralized holdings calculations:
- Dashboard totals disagree with Holdings detail rows for the same snapshot date.
- Allocation percentages differ between Analytics charts and Financial Reports.
- Realized profit on the Executive Dashboard does not match the profit-by-stock grid.
- Executive decisions become unreliable when each screen calculates holdings independently.
How this PMS avoids that:
- Project Experience Summary gives recruiters a single landing page with verified scale and skills before deeper topic articles.
- Responsibilities and architecture sections map directly to working Dashboard, Analytics, and Reports modules.
- Demo facts (160 buys, 874,655,278 VND realized) prove business-application depth.
Implementation components
Actual C# services in this solution — no source code, but real architecture boundaries:
PmsPortfolioHoldingsService
Open positions and cost basis at month-end cutoff.
PmsPortfolioAllocationBuilder
Portfolio summaries, allocation weights, realized profit helpers.
PmsReportService
Financial Reports — realized trading performance from XuatChiTiet.
PmsPortfolioDashboardService
Executive dashboard KPI and chart composition.
PmsPortfolioAnalyticsService
Composition analytics and cost-basis allocation charts.
PmsPortfolioPeriodHelper
Shared month/year resolution across all snapshot modules.
- What was delivered in this PMS project?
- What business domain and responsibilities does it demonstrate?
- What is the verified demo portfolio scale?
- Which live modules support an interview walkthrough?
Related Dashboards
Skills Demonstrated
- Business Systems Analysis
- SQL Server Data Investigation
- Executive & BOD Reporting
- Portfolio Reporting
- Holdings Analysis
- Financial Data Modeling
- Legacy System Modernization
- Executive Analytics
- Business Process Documentation
What this demonstrates professionally
This module demonstrates experience with:
- Business Systems — investment portfolio tracking aligned to executive reporting needs.
- Financial Reporting — realized profit from XuatChiTiet; holdings from NhapChiTiet/XuatChiTiet reconciliation.
- SQL Server — live dzungmedia_com_PMS database with legacy schema preserved.
- Enterprise Application Delivery — read-only PMS reporting area with Dashboard, Analytics, Holdings, and Financial Reports.
- Data Modelling — cost basis, snapshot periods, and allocation weights without duplicate engines.
- Analytics Dashboards — Chart.js KPI cards, trends, and composition charts for decision support.
- Project Experience Summary — recruiter landing page presenting end-to-end delivery of a financial portfolio reporting system on live SQL Server data.