← Selected work

Tax document portal · Built by Doug Morgen

A private handoff for tax documents.

Visit finance.dougmorgen.com ↗

I built a portal for a tax practice to collect source documents and deliver completed returns. Clients sign in, upload records by tax year and document type, and return to view or download their finished documents. The preparer reviews submissions and publishes the return package from a separate admin area.

Client document intake

Client portal upload screen with tax year and document-type choices for W-2s, 1099s, statements, and other records
Clients select a tax year and document category before uploading W-2s, 1099s, statements, prior returns, or other records.

What I built

Client portal

Client sign-in requires two-factor authentication. Each client can upload, review, download, and remove their own source documents.

Preparer workspace

A separate, password-protected admin area lets the preparer review client files and upload completed returns, signature pages, and other finished documents for a specific client and tax year.

Return delivery

Completed documents appear in the right client's portal for viewing or download. The application checks account ownership before retrieving a file; document bytes stay in private object storage rather than public site assets.

The preparer's view

Tax portal admin dashboard with completed-document upload and client document review; client details are redacted
The admin workspace connects incoming source files with the completed documents sent back to each client. Client details are redacted here.

Private by design

I kept document access behind authenticated routes, scoped client queries to the signed-in account, and stored files under opaque keys in a private S3-compatible bucket. Views and downloads pass through the server with private, non-cacheable responses.

Have something to build?

Let’s talk about what you need.

Discuss a project →