MTP Client Portal Redesign
One place for every traveler to see what is left before their trip, keep their profile current, complete a brand-aware pre-trip form, and pay invoices with a clear view of what is due now.
- Client
- The Kautapen Group
- Design owner
- Federico Drago
- Delivery
- WebtrixPro
- Scope
- 79 features · 4 phases
- Shared24h
- Dashboard33h
- My Profile51h
- Pre-trip forms96h
- Invoices & payment63h
- On-site invoices8h
- Our Company12h
- QA & testing60–70h
- Review, PM, UAT43–48h
- Contingency30–45h
Goals
- Show every client, per upcoming trip, exactly what is left to do before travel.
- Let clients update their profile one section at a time, with a warning before losing changes.
- Make the pre-trip form brand-aware: fly fishing for Nervous Waters, firearms for David Denies and Red Stag Patagonia.
- Make invoices easy to read: what is owed now, what is paid, and what insurance costs.
- Deliver a responsive portal for desktop, tablet, and phone.
Not in this release
- Mobile app changes (discussed separately)
- Surveys redesign (stays visible, unchanged)
- New payment rules (50/50, 100%, 90-day rule, card fee stay as-is)
- New design work (Figma is final)
What we build
79 features across 7 areas
Pick an area to see its features, how the development hours break down, and how the client will accept it.
Budget
How the full scope fits in 420–450 hours
The earlier full-scope estimate ranged from 445 to 688 hours. This plan delivers every feature by building on what the codebase already has, with a realistic QA margin and a contingency buffer.
Building every feature in the list
Our own testing across every role, device, and payment path before the client sees it
Code review, coordination, corrections after client testing
Buffer for surprises found in the existing code during the build
The approach
- Low estimate per itemEach work item is priced at its low estimate, grounded in what the codebase already has.
- Simpler option on open decisionsWhere the spec leaves a choice open, the simpler option is included. The larger option is a change request.
- Realistic QA, review and PM103–118 hours (about 26% of the total), in line with the usual 25–35%.
- Contingency buffer included30–45 hours for issues found in the existing code. Scope changes and the larger decision options are still estimated separately.
Already in the codebase
- PaymentsAuthorize.net charges, 50/50 vs 100% plans, 3.5% fee per invoice, wire / check pending, history, real-time status.
- InsuranceInclude / exclude, totals recalculate, choice persists across payments.
- ProfileMost fields, emergency contact, medical, drinks, manager notes, email sync to login.
- Pre-tripPer-lodge dates, calendar button, loaner gear, gun blocks, flights, submit emails.
- On-site invoicesClient list, detail dialog, per-invoice card fee, QR payment link.
- Brands & lodgesLogos, colors, websites, and lodge records in staff settings.
- SharedUnsaved-changes dialog, CDN image upload, passport photo upload and preview.
Timeline
Four phases, each ending on staging
Phase 1 goes first because its layout shell and section-save pattern are reused everywhere else. Holidays and client review wait time are not included.
8 h/day · 53–57 days · 11–12 weeks
- At 420 hours
- Up to 450 hours
- Phase 1Shared layout, dashboard, My Profile158–169h
- Phase 2Pre-trip forms, incl. role at invoice creation140–151h
- Phase 3Invoices and payment92–99h
- Phase 4On-site invoices and Our Company30–31h
Milestones
- Layout shell and navigation on stagingEnd of week 1
- Dashboard and My Profile ready for reviewWeeks 4–5
- Pre-trip forms ready for reviewEnd of week 8
- Invoices and payment ready for reviewWeeks 10–11
- On-site invoices and Our Company readyWeeks 11–12
Assumptions & decisions
What 420–450 hours includes — and what would change it
Each assumption picks the simpler option. Choosing the other option is a change request, estimated separately.
| Topic | Included in 420–450 h | Change request if… |
|---|---|---|
| Role at invoice creation | One role per person per trip | Role stored per lodge per person |
| “Partially filled” status | Client portal and staff pre-trip list | Staff KPIs, filters, and mobile app also need it |
| Invoice client block | Live profile data (as today) | Snapshot frozen at invoice creation |
| Payment plan stages | Derived from existing invoice data | A stored deposit / balance stage |
| On-site invoices | Existing on-site payment flow | New on-site payment rules |
| Our Company content | Client supplies text, brochure, lodge links | Content writing or data entry by WebtrixPro |
| Mobile app | Not included | Mobile API must return new fields and statuses |
| Design | Figma is final and supplied | New screens or design rounds |
| Surveys | Not included | Survey screens change |
Non-functional requirements
- Responsive
- Desktop, tablet (768px), phone (390px) for every screen.
- Browsers
- Latest Chrome, Safari, Edge, Firefox; iOS Safari; Android Chrome.
- Security
- Staff-only fields removed server-side. Clients only access their own records.
- Payments
- Card data goes only to Authorize.net (Accept.js). Amounts validated on server.
- Data
- New fields via migrations. Existing records keep working.
- Performance
- Dashboard and invoice pages load in under 3 seconds.
- Compatibility
- Existing mobile app keeps working with the database changes.