← Back
Case Study

Freelance Client Portal

A PRD focusing on scope containment, simple authentication, and secure file uploads for a freelance web development agency.

Document Status: DraftAuthor: Alex (Freelancer)

1. Objective

To build a secure, branded portal where clients can log in to view project progress, download invoices, and upload requested assets (images, copy). This reduces endless email threads and centralizes client communication.

2. Constraints & Scope

Time Constraint

Must be completed in exactly 2 weeks (40 hours of billable work). Therefore, no custom chat system will be built. All communication defaults back to email.

Budget Constraint

Client is on a tight budget. We will use Firebase Authentication (free tier) instead of building a custom auth solution from scratch.

Out-of-Scope Explicitly

  • In-app messaging or chat (communication stays in email).
  • Email notifications for every file upload.
  • Complex permission levels (everyone who logs in has full access to the portal).

3. Milestones & Deliverables Schedule

MilestoneDeliverableTimeline
Week 1UI Design Approval & Firebase Auth IntegrationDay 1 - 7
Week 2AWS S3 Uploads, Final Testing, & HandoffDay 8 - 14

4. Core Features (User Stories)

Auth & Access

Story: As a client, I want to log in with a magic link sent to my email so I don't have to remember a password.

Acceptance Criteria:
  • Magic link expires in 15 minutes.
  • Session persists for 7 days.

Asset Uploads

Story: As a client, I want to drag-and-drop zip files and images into the portal.

Acceptance Criteria:
  • Max file size is 50MB.
  • Only .png, .jpg, .pdf, and .zip files are allowed.
  • Files are uploaded directly to AWS S3 using presigned URLs.

5. Third-Party Services & Budgeting

Firebase Auth

Used for passwordless magic link logins.

Cost: $0/mo (Free Tier)
AWS S3

Used for secure asset uploads & storage.

Cost: ~$1-2/mo (Usage)
Vercel

Frontend and Serverless API hosting.

Cost: $0/mo (Hobby)

6. Client Sign-Off Criteria

Acceptance Testing

The project is considered complete and final payment is due when the following actions are successfully performed by the client on the live URL:

  • 1. Client successfully logs in using an email magic link.
  • 2. Client successfully uploads a 10MB .zip file and sees it appear in the dashboard.
  • 3. Client successfully downloads a sample invoice from the dashboard.

7. Maintenance & Support (SLA)

Post-Launch Agreement

The portal will be hosted on Vercel. Up to 2 hours of bug fixes per month are included for the first 3 months. Any feature requests (like adding a chat module or connecting to a CRM) will require a new Statement of Work (SOW) and will be billed at standard hourly rates.