Journeys Handcrafted uniquely for you.
Jufe-509 -
Week 1 — Introduction: course overview; time value of money; NPV vs IRR.
Week 2 — Cash flow estimation and forecasting; working capital.
Week 3 — Risk and return metrics; portfolio basics.
Week 4 — CAPM, beta estimation, and empirical issues.
Week 5 — Capital budgeting under uncertainty; sensitivity, scenario, and real options.
Week 6 — Cost of capital: WACC, debt, equity, preferred stock.
Week 7 — Capital structure theories: Modigliani–Miller, trade-off, pecking order, market timing.
Week 8 — Debt financing: bond valuation, default risk, credit spreads.
Week 9 — Corporate payout policy: dividends, repurchases, signaling.
Week 10 — Valuation: relative multiples, DCF, residual income.
Week 11 — Mergers & acquisitions: valuation, synergies, financing, anti-trust basics.
Week 12 — Derivatives primer: forwards, futures, options; basic pricing intuition.
Week 13 — Risk management: hedging, value-at-risk, credit risk basics.
Week 14 — Case studies, student presentations, course wrap-up.
| Persona | Need | |---------|------| | Project Manager (PM) | Wants to pull all project status reports for the last quarter to present to senior leadership. | | Data Analyst | Needs a CSV dump of all projects with custom fields to feed into a data warehouse. | | Customer Support Agent | Must quickly extract a set of tickets for a customer‑escalation case. | JUFE-509
CREATE TABLE report_export_audit (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
requested_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
filters_json JSONB NOT NULL,
columns_json JSONB NOT NULL,
row_count INTEGER NOT NULL,
format VARCHAR(10) NOT NULL, -- 'csv' | 'xlsx'
file_key VARCHAR(255), -- S3 key (null if failed)
status VARCHAR(20) NOT NULL -- 'pending', 'completed', 'failed'
);
| # | User Story | Acceptance Criteria (AC) |
|---|------------|--------------------------|
| JUFE‑509‑US‑01 | As a PM, I can choose a date range and filter by project status before exporting. | • UI presents a date‑picker and status multi‑select.
• Export respects the selected filters.
• No projects outside the range appear in the file. |
| JUFE‑509‑US‑02 | As a PM, I can pick which columns appear in the export (e.g., Project Name, Owner, Budget, Completion %). | • “Column selector” list with check‑boxes.
• At least one column must be selected.
• Export file header matches the selected columns exactly. |
| JUFE‑509‑US‑03 | As a PM, I can download the file in CSV or Excel format. | • Export button shows a format dropdown (CSV/Excel).
• File is generated and streamed within 10 seconds for ≤ 5 000 rows. |
| JUFE‑509‑US‑04 | As a PM, I receive a progress indicator while the export is being prepared. | • Spinner or progress bar appears after clicking “Export”.
• If generation exceeds 30 seconds, a “Processing – you’ll receive an email when ready” fallback is triggered. |
| JUFE‑509‑US‑05 | As a PM, I can receive a notification email with a secure download link if the export runs in background. | • Email contains a one‑time link that expires after 48 h.
• Link is protected with the same auth token used for the UI session. |
| JUFE‑509‑US‑06 | As a Data Analyst, exported files must include audit‑trail metadata (exported‑by, timestamp, filter criteria). | • First row after header includes exported_by, exported_at, filters.
• Values match the authenticated user and selected filters. |
| JUFE‑509‑US‑07 | As a Support Agent, I can export up to 100 000 rows without the UI timing out. | • Server uses asynchronous job queue (e.g., Celery, Sidekiq).
• UI shows “Your export is being prepared – you’ll be notified via email”. | Week 1 — Introduction: course overview; time value