Client Project Documentation

Hocuwa Marketplace — Functional & Technical Handover

A detailed, implementation-aligned reference for the delivered Hocuwa livestock and agriculture marketplace, including workflows, controls, architecture, operations, and current scope boundaries.

Document version

31 August 2026

Application

Hocuwa Marketplace

Review environment

staging.hocuwa.com

Production state

Coming Soon until approval

Repository access depends on the client's GitHub permissions. The browser report is a saved QA run snapshot; source-controlled tests remain the definitive executable specification.

Contents

1. Document purpose & status

This document describes the delivered Hocuwa application from a client, operational, and technical perspective. It is based on the current application routes, database models, business-rule services, administrator controls, and automated tests—not on a generic marketplace feature list.

Hocuwa is available in a separate staging environment for client review. The production domain is intentionally held on a Coming Soon page until business approval, production payment credentials, content, and launch operations are confirmed.

Source of truth

Where wording in an older proposal, screenshot, or historical note differs from this document, the current application and its admin-configured live values take precedence. Prices, fees, plan limits, currency, auction timing, and payout timing can all be changed by an administrator.

2. Product overview

Hocuwa is a responsive web marketplace for livestock and the wider agriculture sector. It brings discovery, seller profiles, structured listings, negotiations, auctions, checkout, delayed seller payouts, communication, verification, and administration into one application.

Marketplace discovery

  • Public category browsing and keyword search
  • Category, item, pricing, price, and country filters
  • Newest, price, popularity, and auction-ending sorting
  • Comparison for up to three listings
  • Favourites, view tracking, sharing, and reports

Listings & media

  • Five-step listing wizard with saved drafts
  • Livestock, produce, feed, machinery, and agri-input categories
  • Images, one video, and supporting PDF documents
  • Fixed price, open-to-offers, and auction pricing
  • Moderation, expiry, stock, archive, and boost controls

Trading

  • Stripe-hosted fixed-price checkout
  • Offers, counter-offers, and acceptance workflows
  • Auctions with increments and optional Buy Now
  • Winner payment windows and fallback bidders
  • Receipts, collection confirmation, disputes, and reviews

Trust & communication

  • Buyer-to-seller conversations with image sharing
  • Identity and proof-of-address review
  • Seller reviews, ratings, and public trust score
  • In-app notifications and email alerts
  • Listing, review, and conversation safety controls

Membership & teams

  • Admin-configurable membership plans
  • Enforced listing, auction, boost, messaging, and team limits
  • One-time paid-plan checkout for a configured term
  • Business team access under one seller identity
  • Plan badges and operational support/marketing entitlements

Content & growth

  • Editable company, legal, contact, and FAQ pages
  • Blog publishing across five content types
  • Eleven advertising positions with click/view tracking
  • Newsletter and contact submission capture
  • Admin-managed social links, categories, and regions

Public visitors can browse listings, seller information, membership plans, blog posts, help content, and company pages. Registration is required for personalised actions such as favouriting, offering, bidding, purchasing, messaging, publishing a listing, and using the dashboard.

3. Users, access & account model

Public account labels

Registration offers Private and Business account labels. These labels change how names and contact details are presented; they are not hard buyer-versus-seller permissions. Every registered account can both buy and sell, subject to its effective membership plan and account status. This allows a farm, company, or private individual to use one account for both sides of a trade.

Account owner

Controls profile, listings, purchases, selling activity, billing, payout setup, security, and eligible team access.

Team member

Signs in independently and works under the owner's seller identity. Billing and team management stay with the owner.

Administrator

Uses a separate protected admin portal for moderation, configuration, support, finance, content, and audit operations.

Account lifecycle and access controls

  • Email/password registration with bot protection, terms acceptance, and optional email OTP verification.
  • Optional Google sign-in when platform credentials are configured.
  • Password recovery, password change, remember-me sessions, and optional authenticator-based MFA.
  • Active, suspended, and deleted account states are enforced on protected routes.
  • Users can manage notification preferences and request account deletion from settings.
  • The marketplace session and administrator session are separate.

4. Functional scope

Listing creation and management

The five-step wizard covers category, product or animal details, media, price, and final review. A listing may include title, description, quantity and unit, age, weight, sex, condition, health and vaccination information, location, country, price, auction rules, up to ten images, one video, and up to five supporting PDF documents. Fields appear where relevant to the selected category.

Drafts do not consume an active-listing allowance. Publishing requires the mandatory structured data and at least one image. With manual moderation enabled, a submitted listing enters Pending Review; otherwise it becomes Active. The owner can edit it or remove it from active use, with protections when offers or bids may be affected. Removal archives the record so linked commerce history is preserved. Stock quantity decreases by one after each successful checkout, and a listing is marked Sold when no quantity remains.

Search, browse, and comparison

Search covers listing titles, descriptions, locations, item/subcategory details, and seller or farm names. Users can narrow results by category structure, pricing method, price, and country, then sort by newest, price, popularity, or auction end. Up to three listings can be compared side by side using category, type, age, weight, price, health, location, and seller-rating information.

Dashboard

Every account receives a unified dashboard because every account may buy and sell. It includes an overview, listings, messages, favourites, offers, auctions and bids, purchases, transactions, reviews, profile, verification, and settings. Team management appears only when the owner's plan enables it.

Trust, messaging, and notifications

  • One reusable conversation is maintained for each buyer/seller pair, with text and image messages.
  • Direct messaging is available only when the seller's effective plan includes it.
  • Users may block conversations and report inappropriate listings or reviews.
  • Verification accepts supported ID and address documents for administrator review.
  • Paid purchases permit one buyer-to-seller review per transaction.
  • The public trust score considers review activity, average rating, verification, and account age.
  • Important events create in-app notifications; email is best effort and preference-aware where applicable.

5. Commerce workflows

Geographic rule

Hocuwa currently supports domestic transactions only. The buyer's profile country must match the listing country before an offer, bid, Buy Now action, or checkout can proceed.

Fixed-price purchase

  1. 1The buyer opens an active fixed-price listing and selects Buy Now for one unit at the displayed price.
  2. 2Hocuwa validates ownership, stock, account status, and country, then creates a secure Stripe Checkout session.
  3. 3Stripe confirms payment; Hocuwa marks the transaction paid and reduces the available quantity.
  4. 4The parties arrange handover or collection outside the platform. The buyer then confirms collection.
  5. 5After the configured delay and checks, the net amount transfers to the seller's connected Stripe account.

Offer and negotiation

  1. 1A buyer proposes a price on an eligible active listing. Only one pending offer per buyer/listing is allowed; if the seller supplied an asking price, the buyer may instead use Buy Now at that amount.
  2. 2The receiving party accepts, rejects, or counters. The proposer may withdraw a pending offer.
  3. 3Each pending offer has a 48-hour expiry and its activity is shown in the dashboard.
  4. 4Acceptance creates a pending transaction at the agreed amount; it does not automatically charge the buyer.
  5. 5The buyer pays from Transactions and follows the fixed-price collection and payout process.

Auction and bidding

  1. 1An eligible seller sets start/end time, starting amount, increment, and optional Buy Now within configured limits.
  2. 2Each live bid must meet the minimum next bid. The previous leader receives an outbid notification.
  3. 3If Buy Now remains available, a buyer can use it to end the auction immediately and move to payment.
  4. 4At scheduled close, the highest bidder receives the configured payment window and a pending transaction.
  5. 5If the winner does not pay, the opportunity can pass to the next distinct bidder; otherwise the listing expires.

Dispute and resolution

  1. 1A buyer or seller opens a dispute on a paid transaction before payout processing and provides details.
  2. 2Hocuwa places the transaction in Disputed status, preventing normal payout progression.
  3. 3An administrator records assignment, review status, and resolution.
  4. 4The transaction returns to its normal path or receives an eligible full Stripe refund, depending on the outcome.

6. Memberships & entitlements

Membership plans are database-driven and administered without a code deployment. The active default free plan applies when an account has no current paid membership. A paid plan is purchased through a one-time Stripe checkout and remains active for its configured term; it is not an automatically recurring subscription.

The table below records the seeded delivery baseline. Administrators can change plan prices, duration, limits, fees, badges, and activation state, so the live Membership page is the authority for customer-facing values.

Enforced capabilityBasicStandardPremium
Active listings61015
Listings containing video125
Listing lifetime35 days70 daysUnlimited
AuctionsNot includedUp to 7 daysUnlimited duration
Listing boosts03 per termUnlimited
Direct messagingNot includedIncludedIncluded
Team members00Up to 3

Automatically enforced

Active-listing and video limits, listing lifetime, auction availability and duration, boost credits, direct messaging, team availability and size, membership term, and plan badge display.

Operational entitlements

Priority support, advertising slots, logo placement, co-marketing, and related promotional benefits are displayed by plan but coordinated manually by the Hocuwa team; they are not a self-service campaign workflow.

Commission is plan-configurable. For each sale, Hocuwa calculates the percentage fee, fixed fee, and marketplace service fee against the seller's effective plan. Deductions reduce the seller's net payout rather than increasing the buyer's item total.

7. Payments, payouts & disputes

Payment architecture

Buyer payments use Stripe-hosted Checkout. Server-side quoting calculates quantity, gross amount, configured fees, and seller net amount. Signed Stripe webhooks are the authoritative payment signal, with idempotent reconciliation when a customer returns from checkout. Hocuwa uses one administrator-selected platform currency for listings, checkout, transactions, memberships, and reports.

Currency display

Visitors may see an approximate local-currency conversion when detection and exchange-rate data are available. This is display-only. Checkout and accounting remain in the configured Hocuwa platform currency.

Delayed seller settlement

The delivered workflow is escrow-style delayed payout, not a regulated legal escrow account. Payment is received by the platform and linked to a Stripe transfer group. When collection confirmation is required, payout remains Not Ready until the buyer confirms receipt. It is then scheduled after the configured delay. The background processor transfers the seller net amount only when the seller's Stripe Connect account is ready and no dispute is holding the transaction.

  • Sellers complete Stripe Connect onboarding from dashboard settings before receiving payouts.
  • Buyers can download a PDF receipt from an eligible transaction.
  • A dispute can be opened before payout processing has started.
  • Administrator refunds are full refunds; partial-refund tooling is not delivered.
  • If a seller transfer has already been paid, the normal admin refund is blocked until handled externally.

8. Platform administration

The separate administration area centralises marketplace operations. Administrative changes and sensitive support actions are protected and logged where applicable.

Administrative access is role-based in both the interface and server API. Super Admins have full access and are the only accounts that can assign operational roles. Admins retain full operational access without role assignment; Product Managers manage listings and membership products; Content Managers manage blog, podcast, and advertising content; and Staff handle users, listing moderation, and disputes.

AreaDelivered controls
DashboardUser, listing, transaction, membership, dispute, and moderation summaries.
UsersSearch/filter, account state and role changes, suspension reasons, verification review, support impersonation, and audit visibility.
ListingsReview pending listings; approve, reject with a reason, or remove content.
MembershipsInspect and manage customer memberships and current status.
Membership plansConfigure price, duration, limits, auctions, boosts, messaging, teams, badges, entitlements, and three-part fees.
TransactionsInspect payment/payout state and issue an eligible full refund.
DisputesReview, assign, progress, resolve, or reject cases while payout is held.
AdvertisingManage creative, destination, schedule, order, rotation, and status across 11 positions; monitor views, clicks, and CTR.
BlogCreate, edit, publish, and remove Guide, Podcast, Safety, News, and Story content.
Commission & revenueReview totals, fees, membership income, charts, date-filtered records, and CSV export.
Platform settingsManage categories, regions, moderation/security, auctions, commerce, page content, and social links.
Admin profileManage administrator profile, avatar, password, and MFA.

Configurable operating rules

The settings interface is organised into Categories, Regions, Moderation, Auction Rules, Commerce, Page Content, and Social Links. It includes listing moderation, email verification and reCAPTCHA switches, auction timing, winner-payment windows, automatic lifecycle control, currency, payout delay, collection confirmation, Connect countries, Stripe webhook setup, company/legal/help content, and social URLs.

9. Technical architecture

Browser & mobile web → Next.js App Router UI → authenticated route handlers & business rules → Prisma data layer → relational database & persistent uploads

Application

Next.js 16 App Router and React 19 provide the public site, dashboard, admin portal, and server API in one responsive full-stack application.

Data

Prisma models accounts, profiles, listings/media, offers, auctions/bids, messages, transactions, reviews, verification, disputes, memberships, notifications, content, ads, and audits.

Authentication

NextAuth credential sessions serve users and administrators through separate protected flows. Passwords are hashed and optional TOTP MFA is available.

Payments

Stripe Checkout accepts buyer and membership payments; Stripe Connect onboards sellers and receives delayed marketplace transfers.

Communication

SMTP sends transactional email. In-app notifications remain available even when email is disabled or delivery fails.

Supporting services

reCAPTCHA protects selected public forms. Country and exchange-rate services support approximate local display currency when available.

Storage

Listing media, documents, avatars, blog covers, and advert images are validated and stored in persistent server storage.

Background work

Scheduled processing closes/advances auctions, expires offers/listings/memberships, and processes eligible seller payouts.

10. Security, privacy & audit

  • Passwords are one-way hashed; password-reset links and email OTPs are time-limited.
  • Registration, login, contact, recovery, and verification actions use validation and targeted rate limits.
  • Uploads are restricted by file type, signature, size, and ownership checks.
  • Server routes enforce authentication, account state, ownership, team ownership, plan rules, and transaction-party access.
  • Stripe webhook signatures are verified and event handling is idempotent.
  • MFA supports authenticator applications and one-time backup codes.
  • Administrator support impersonation is time-limited, restricted, and audit logged.
  • Verification documents are available only to the account and authorised administrators.

Operational security responsibility

Production credentials, SSH access, Stripe live keys, SMTP credentials, database backups, domain access, and administrator accounts must be handled through an approved secret-management process. They must never be placed in public documentation, source control, or support screenshots.

11. Environments & operations

EnvironmentPurposeData & integrations
Local/testDevelopment and automated browser testing.Resettable isolated test data and controlled fixtures.
StagingClient review, acceptance testing, and test-mode payment checks.Independent database, uploads, settings, and Stripe test configuration.
ProductionPublic marketplace after formal go-live approval.Independent live data, integrations, backups, and secrets.

The application is built as a standalone Next.js server suitable for the current hosted deployment, with persistent upload storage separated from replaceable application releases. A health endpoint checks application and database availability. Scheduled lifecycle and payout endpoints are designed for protected scheduler invocation.

Routine operating tasks

  • Review pending listings, verification documents, disputes, and failed payouts.
  • Monitor Stripe webhooks, seller onboarding, refunds, and scheduled payout processing.
  • Maintain database/upload backups and periodically verify restoration.
  • Review administrator access and audit logs; remove obsolete accounts promptly.
  • Keep categories, regions, legal content, plans, fees, rules, and support details current.
  • Run regression tests before release and verify key flows after deployment.

12. Quality assurance

The repository contains 57 Playwright end-to-end tests across nine browser-test files, executed against isolated test data. The configured browser matrix includes desktop Chromium and a Pixel 7-sized mobile project. A separate four-scenario Stripe test-mode suite exercises the real payment integration when approved test credentials and network access are available.

Browser workflow coverage

Registration/recovery, account types, profiles, MFA, verification, listings/uploads, moderation, favourites, search, offers, auctions, checkout records, collection, receipts, reviews, disputes, messages, plan gating, teams, admin APIs, public pages, and mobile rendering.

Stripe lifecycle coverage

Connect onboarding, fixed-price checkout and admin refund, paid membership activation, and auction-winner payment through collection confirmation and seller transfer.

Standard verification commands are npm run lint, npm run build, npm run test:e2e, and, in an authorised Stripe test environment, npm run test:payments.

13. Current product boundaries

These statements prevent business users and support staff from assuming adjacent capabilities that have not been implemented.

Domestic trade

Offers, bids, Buy Now, and checkout require the buyer and listing to be in the same country. No cross-border trade workflow is delivered.

One settlement currency

Hocuwa uses one platform currency. Local currency may be shown approximately, but there is no per-listing or multi-currency checkout.

Collection, not logistics

Hocuwa records collection confirmation but does not book couriers, calculate shipping, schedule transport, or manage delivery.

Delayed payout, not legal escrow

The platform delays a Stripe Connect transfer according to its rules; it is not a separately regulated escrow service.

Membership terms

Paid memberships use one-time payment for a configured term. Automatic recurring renewal, proration, and self-service mid-term switching are not delivered.

Promotional benefits

Plan advertising, logo, co-marketing, and some support benefits are fulfilled operationally rather than through a self-service campaign manager.

Reviews

A buyer can review a seller once per paid transaction. Seller-to-buyer reviews are not included.

Refunds

The admin tool performs eligible full refunds. Partial refunds and automated post-transfer reversals are not included.

Messaging

Dashboard messages include images, unread state, and notifications; the product does not promise socket-based live chat.

Web application

Hocuwa is mobile-responsive web software. Native iOS and Android applications are not part of the delivered codebase.

Tax and insurance

Hocuwa does not calculate tax, provide insurance, perform veterinary checks, or replace buyer due diligence.

External handover

Parties arrange inspection, collection, and off-platform documents themselves. Hocuwa records the marketplace payment lifecycle.

14. Handover checklist

Client acceptance

  • Approve staging design, content, categories, regions, and legal pages.
  • Confirm membership prices, limits, fees, currency, and wording.
  • Confirm auction timing, payment window, collection policy, and payout delay.
  • Complete representative Private, Business, team, purchase, offer, auction, dispute, and admin tests.
  • Approve current boundaries and record roadmap requests separately.

Production readiness

  • Install production-only secrets and live integration configuration.
  • Register and verify the live Stripe webhook and Connect countries.
  • Verify DNS, HTTPS, scheduler security, persistent storage, backups, and restore process.
  • Create named administrator accounts with MFA and remove temporary access.
  • Run regression tests, complete a production smoke test, and record launch approval.

Related user documentation

The Hocuwa Knowledge Base provides plain-English, task-by-task instructions for account holders, buyers, sellers, and business teams.