WikiDeal FundingMVP Technical Specifications — Request for Proposals

WikiDeal Funding MVP — Technical Specifications

DRAFT v0.2 · 2026-08-18 · Status: working draft, awaits human validation · Reference mockups: WikiDeal Funding hub · Currency: Swiss francs (CHF) only

Purpose. This document translates the WikiDeal funding mockups (aidev.wikideal.net/mockups/funding/) into implementable IT requirements, as the basis for a small call for proposals. The expected result of the development is the behaviour presented in the mockups. Budget envelope for the MVP: CHF 3'000 – 5'000. Respondents are asked to quote a fixed price and a delivery timeline (see §8).
Contents
  1. Context & scope overview
  2. Core concepts & terminology
  3. Functional requirements (MVP)
  4. Phase 2 — explicitly out of MVP scope
  5. Indicative data model
  6. Non-functional requirements
  7. Technology stack
  8. What proposals must contain
  9. Reference mockups (user journey)
  10. Open points to be confirmed

1. Context & scope overview

WikiDeal (a project of the Ynternet.org Foundation) raises donations to fund its Prototype 1. Donors and Early Supporters receive Rewards, which are progressively compensated in cash by the income of WikiDeal subscriptions. The MVP is the minimal working system that supports this loop:

  1. Donation payments by credit card (Stripe) or bank transfer, in CHF.
  2. Reward activation — automatic at card payment time, manual (operator registry) for bank transfers and Early Supporters.
  3. Subscriptions — CHF 1/month or CHF 10/year (annual recommended).
  4. Subscription income distribution to holders of already-activated Rewards, visible on each user's dashboard.
  5. Accounts with single sign-on shared with the MediaWiki at wikideal.net.

Outgoing payouts to users' bank accounts are not part of the MVP (Phase 2, see §4).

2. Core concepts & terminology

TermDefinition
RewardThe single unit of recognition attributed to supporters. There is one type of Reward only (no sub-categories). Rewards are not guaranteed financial instruments; they are compensated over time by subscription income. Total attributed in Prototype 1: 100'000'000 Rewards.
Attributed (promised) RewardsRewards assigned to a person (by donation or as Early Supporter) but not yet compensated in cash. Shown in the left column of the dashboard mockup.
Activated RewardsAttributed Rewards whose holder has completed the activation step (automatic at card payment; manual by the Foundation secretariat otherwise). Only activated Rewards participate in subscription income distribution.
Cash-out balance (obtained)CHF amount already earned by a holder through distributions. Accumulates on the dashboard; transferable to a bank account only from CHF 100, and only in Phase 2.
Early SupporterPerson who received a Reward attribution manually (registered by the secretariat after a webinar), without a card payment.
SubscriberPerson paying CHF 1/month or CHF 10/year. Subscribers get access to WikiDeal member benefits (list maintained separately); they do not receive Rewards.
Terminology rule for implementers: use the single word Reward(s) everywhere. Do not introduce “Community Rewards”, “Personal Rewards”, “miles”, “cashback”, “investment”, “tokens” or similar terms in UI, code identifiers, or documentation.

3. Functional requirements (MVP)

F1 — Donation payment by card (Stripe) MVP

F2 — Automatic Reward activation at card payment MVP

F3 — Bank-transfer donations, manual activation MVP

F4 — Subscriptions MVP

F5 — Online Reward registry & operator interface MVP

F6 — Distribution of subscription income to Reward holders MVP

F7 — User dashboard MVP

F8 — Accounts & single sign-on with MediaWiki MVP

4. Phase 2 — explicitly out of MVP scope PHASE 2

The following will be developed after the MVP, in a second stage. The MVP architecture should not block them, but no Phase-2 work is expected or paid within this envelope:

5. Indicative data model

Indicative only — respondents may propose their own schema, provided the auditability requirements hold.

EntityKey fields
usersid, pseudonym, e-mail (private), MediaWiki identity link, role (user / operator)
reward_grantsholder, amount, origin (card_donation / bank_donation / early_supporter), status (attributed / activated), activation timestamp & actor
paymentstype (donation_card / donation_bank / subscription), gross amount CHF, Stripe references, status
subscriptionsplan (monthly / yearly), Stripe subscription id, status
distributionssource payment, date, per-holder credits (CHF), Rewards consumed
audit_logappend-only: operator actions, activations, distributions

An append-only ledger style for Reward and cash movements is strongly recommended (no destructive updates of balances).

6. Non-functional requirements

7. Technology stack

Suggested option (not mandatory): Laravel + VueJS, matching the team's existing base (investment-dashboard repository serving aidev.wikideal.net) and the current developer's proposal. Respondents may propose another stack, with justification, provided it satisfies §6 (hostable on Foundation infrastructure, free license, maintainable).

8. What proposals must contain

  1. Fixed price in CHF for the full MVP scope (§3), within the CHF 3'000 – 5'000 envelope. If the envelope cannot be met, state which requirements you propose to defer and the resulting price.
  2. Delivery timeline (calendar weeks from kick-off).
  3. Stack & architecture summary (1 page max), including the SSO approach for F8.
  4. Included / excluded items, assumptions, and Stripe account prerequisites.
  5. Maintenance: proposed conditions after delivery (optional).

9. Reference mockups (user journey)

The mockups below define the expected result. Latest versions, maintained at the Funding hub:

10. Settled points & change log

v0.2 (2026-08-18) — all v0.1 open points settled with the project owner and cross-checked against the published wiki rules:

  1. Card / bank-transfer threshold: bank transfer is optional and recommended from CHF 2'000; card remains possible up to the CHF 5'000 ceiling; above CHF 5'000, bank transfer only. (F1, F3)
  2. Subscription income split: 25% donors / 25% Early Supporters / 50% Foundation operations — the published 25/25/50 rule. (F6)
  3. Allocation key: equal share per activated Reward within each group. (F6)
  4. Consumption: nominal unit 1 Reward = CHF 1 when cashed out; 1:1 consumption as cash is credited. (F6)
  5. Subscriber benefits: referenced from the wiki Subscriptions page; marketplace low-commission access will require an active subscription. (F4)

These rules go in this tendency and are proposed as the working basis; final details are settled with the selected respondent before contract signature.