Quote & Client Portal – Demo

Quote & Client Portal Interactive walkthrough
Introduction 0 / 5
Business workflow application

See how a client journey can move from quote to payment and project progress in one place.

This walkthrough shows how a project can move from an internal quote to a client proposal, staged payments and ongoing project communication without relying on scattered emails and spreadsheets.

✓
One connected workflow Quote creation, client approval, payments and project progress.
Step 1 · Start with the client and project

The workflow begins with a real client and a clearly defined project.

Instead of building a quote in isolation, the project becomes the central place for scope, pricing, client communication and delivery.

Dashboard
New client New project New quote
Draft quotes 1
Ready quotes 0
Sent quotes 2
Total quoted value € 8,950
Current project Client Portal Redesign

Website workflow and client experience

In progress
Step 2 · Build the quote

Scope and pricing become a structured proposal instead of a loose document.

Features, services and external costs can be combined into one clear quote with a defined project total.

Quote HV-2026-001
Client portal foundation Accounts, dashboard and project access
€ 2,400
Proposal & acceptance flow Digital proposal and approval workflow
€ 1,350
Payments & project progress Staged payments and project phases
€ 1,850
Step 3 · The client receives a clear proposal

The customer sees the scope, price and next step without needing a separate PDF thread.

The proposal can be reviewed online and accepted directly from the client-facing experience.

Proposal for

Client Portal Redesign

Prepared by Hanneke Verhoef

Included
  • Client accounts and secure portal access
  • Digital proposal and acceptance
  • Staged payment workflow
  • Project progress and client feedback
Total investment € 6,776

Includes VAT and agreed project scope.

Accept proposal
Secure client access
Step 4 · Payments follow the project

Payment stages stay visible instead of disappearing into separate invoices and email threads.

The client can see what has been paid, what comes next and how each stage relates to the project.

01
At project start € 2,710.40
Paid
02
After prototype approval € 2,032.80
Current
03
Before launch € 2,032.80
Upcoming
Total project € 6,776
40% paid
Step 5 · Keep the client involved after acceptance

The portal keeps project progress, requests and feedback connected to the work.

Clients can see what is happening, where input is needed and what has already been completed.

✓
Discovery

Requirements and project direction confirmed.

Complete
02
Prototype

Review the first working client portal structure.

Waiting on client
03
Build & integration

Connect workflows, payments and client communication.

Upcoming
Client feedback

“The structure looks good. Can we move the payment overview above the project notes?”

Sent from client portal
One workflow instead of five disconnected tools

Need a client experience that fits the way your business actually works?

I build focused portals and business tools around real processes, customer journeys and internal workflows.

Tell me about your project →
Technical Case Study

From manual project scoping to a structured quote and client workflow

The Quote & Client Portal is a working web application I designed and developed to turn project scoping, pricing, proposals and client communication into one structured workflow.

What started as a focused internal quote builder developed into a connected application covering client records, projects, pricing logic, quote versioning, proposals, structured intake, project progress and a secure client-facing portal.

The goal was not to reproduce a generic CRM or invoicing platform. The application was built around a specific business problem: producing consistent, explainable project quotes without losing the context, pricing decisions and history behind them.

01 · The Problem

Pricing a custom application is more than choosing a number.

A project quote needs to reflect scope, complexity, functionality, testing, risk and external costs while still being clear enough to explain to a client.

01

Pricing inconsistency

When project types, features and prices live in notes, spreadsheets or individual documents, it becomes easy to forget an item or calculate similar projects differently.

02

Lost project context

A final price does not show why that price was reached. Requirements, complexity decisions, dependencies and revisions need to stay connected to the quote.

03

Disconnected client workflow

Scoping, quoting, proposal review, payment and project updates can easily become separate processes. That creates extra manual work and fragmented information.

The core design question: How can one system turn project requirements into a consistent quote while preserving the decisions and data behind that quote?
02 · The Solution

One connected workflow instead of separate tools.

I designed the application around the natural lifecycle of a client project rather than around isolated database screens.

Client
Project
Scope
Quote
Proposal
Payment
Project Portal
Client Management
Client records store the information needed across multiple projects and quotes, including business details, contact information and billing-related data.
Project Structure
Each client can have multiple projects. Projects hold the problem, desired result, project type, notes, status and related quotation history.
Quote Builder
Project type, selected functionality, complexity, quantities, testing, risk and additional costs contribute to a structured calculation rather than an arbitrary final price.
Pricing Library
Prices and feature definitions live in the database instead of inside UI components. Pricing can therefore evolve without rewriting the quote interface.
Proposal Workflow
A quote can progress into a client-facing proposal containing the project overview, scope, investment and payment schedule.
Client Portal
Clients receive controlled access to relevant project information, proposals, payment information and project progress without access to the internal application.
03 · Pricing Architecture

The pricing engine was designed to stay understandable.

Instead of asking AI to invent a project price, the application uses deterministic business rules and stored pricing data.

Database-driven catalogue

Project types and features use stable identifiers and database records. Public names, descriptions and prices can change without breaking the underlying application logic.

Complexity-aware pricing

Features can support simple, standard and complex pricing where needed, while other items can use a single base price.

Pricing settings

Global settings support factors such as complexity, testing, discovery, risk, revisions, VAT and quote validity rather than scattering those rules throughout the interface.

Frozen quote snapshots

A saved quote retains the pricing values used at the time it was created. Changing the catalogue later should not silently rewrite the commercial history of an earlier quote.

04 · Application Architecture

Built as an application, not as a static prototype.

The interface sits on top of a relational data model so clients, projects, quotes, proposals and project activity stay connected.

React UI Application interface and forms
→
TypeScript Application logic and typed data
→
TanStack Routing and server-state management
→
Supabase Authentication and application data
→
PostgreSQL Relational business data
Clients
Projects
Quotes
Quote Items
Pricing Features
Dependencies
Proposals
Payment Plans
Client Access
Project Phases
Intake Data
Workflow History
05 · Internal & Client Access

Two different users. Two different experiences.

Internal application

The management side uses authenticated access with email and password login, protected application routes, logout and password recovery.

Internal screens contain business information that should never be exposed through the client experience.

Client-facing portal

The client portal uses controlled token-based access so a client can view the information relevant to their project without receiving access to the internal administration environment.

The portal separates client-facing content from internal notes, pricing logic and administrative controls.

06 · Engineering Decisions

Some of the important work is invisible in the interface.

01

Keep pricing separate from presentation

Pricing values were moved into structured database records instead of being hardcoded into React components. This makes the system easier to maintain and allows the same catalogue to be reused by multiple workflows.

02

Preserve quote history

Quotes use version-aware logic rather than overwriting previous commercial decisions. New versions can be created while earlier versions remain part of the history.

03

Freeze commercial values

Key client, project and pricing information is stored as snapshots with the quote. Historical proposals therefore remain tied to the values that were actually presented at that time.

04

Protect customer history

Quote deletion logic checks for proposal publications, responses and accepted payment plans before deciding whether a version can safely be permanently removed.

05

Separate internal and public workflows

The internal quote environment and the client-facing portal use separate routes and access patterns. Clients see only the information intended for them.

React TypeScript TanStack Router TanStack Query Supabase PostgreSQL Authentication Stripe PDF Generation Responsive UI
07 · Structured Intake

Turning requirements into usable project data.

A quote becomes more useful when the information feeding it is structured before pricing begins.

Versioned intake forms

Questions, options and form versions can be stored as structured data rather than being permanently embedded in a single form.

Conditional questions

Visibility rules make it possible to show relevant questions based on earlier responses instead of presenting every question to every project.

Mapping rules

Answers can be connected to suggested project types, features, complexity and scope signals, creating a bridge between project discovery and the internal quotation workflow.

08 · Client Experience

The calculated quote becomes something a client can understand.

Internal pricing detail and customer-facing communication are not the same thing. The proposal layer translates the project into a clearer client experience.

Proposal content

The client can review the project overview, objectives, included scope, investment and payment schedule through a dedicated proposal view.

Response workflow

The portal can hand the client into the appropriate proposal response flow while keeping the displayed financial data tied to the frozen proposal version.

Payment structure

Accepted proposals can be connected to structured payment plans and payment stages, including VAT values, due conditions and payment status.

Project visibility

Project phases and client-facing updates extend the portal beyond the initial quote and allow the same application to support the project after acceptance.

09 · Development Process

Built iteratively from business problem to working system.

Define the workflow

I started with the business process rather than the UI: what information is needed, where pricing decisions happen and what needs to remain connected throughout the project lifecycle.

Model the data

Clients, projects, project types, pricing features, quotes and quote items were separated into related data structures so the application could grow without turning one screen into the entire system.

Build the core quotation flow

The first usable workflow connected login, dashboard, client, project, quote creation, pricing calculation and saved quote detail.

Add commercial safeguards

Pricing snapshots, quote versions, lifecycle rules and customer history were added so later edits could not casually destroy the meaning of earlier quotes.

Extend into the client workflow

Proposal publication, client access, response handling, payments and project visibility turned the internal quote builder into a broader Quote & Client Portal.

Test, debug and refine

The application was developed iteratively, reviewing behaviour, correcting workflow issues and refining the data and application logic as later phases introduced new requirements.

10 · Result

A working business application, not a portfolio mock-up.

The result is a connected application that manages the path from initial client and project information to pricing, quotation, proposal and client-facing project activity.

The project demonstrates my approach to application development: start with a real operational problem, break it into understandable workflows and data structures, build a focused first version and expand it without losing the integrity of the original system.

The live demo above shows the interface. This case study shows the application architecture and decisions behind it.

Web Application Development Product Architecture React TypeScript Supabase Database Design Authentication Business Logic Workflow Design Client Portals Payment Workflows Debugging & Testing AI-Assisted Development