money-currency is a first-party web product for launching and using a new digital currency called cash pull, in the style of Bitcoin. The requester, Jhovany Beltran (US), asked to start his own money currency like Bitcoin, named cash pull. This document is the System Requirements Document for that product.
The product intent is narrow and concrete: a Currency Creator starts cash pull and sets its name; the product shows the cash pull currency and its current supply; a Currency Holder holds a cash pull balance, sees it, sends cash pull to another user, receives cash pull from another user, and sees the record of cash pull transfers. Because holding, sending, and receiving currency are durable, actor-bound obligations, the product establishes application-owned identity: new users enroll through self-service Sign Up, returning users verify identity at Login, and protected cash pull state is reachable only after identity is established.
Audience: the Currency Creator who launches cash pull, and the Currency Holders who acquire, hold, send, and receive it.
money-currency is delivered as a first-party web application: a React frontend, a shared FastAPI backend process for all application APIs and domain modules, and a MariaDB database for application-owned persistent data. All currency state — the cash pull currency definition, its supply, holder balances, and the transfer record — is owned and persisted by the application.
Access is application-owned. Landing, Sign Up, and Login are anonymously reachable. Currency requires login. Create Currency is restricted to the Currency Creator role; Wallet, Send, and Receive are restricted to the Currency Holder role. Identity is established at Sign Up and verified at Login; a protected destination never establishes access to itself.
Current scope is exactly the accepted behavior in this document: starting cash pull, showing the currency and its supply, holding and viewing a balance, sending, receiving, and viewing the transfer record. Nothing beyond that — no trading, exchange, mining, staking, fiat on/off-ramp, or market pricing — is part of the current product.
Not applicable — no reference directive with content_source was supplied.
clamp(44px, 7vw, 104px)); supply counter (tabular figures, counts up once on load); primary CTA block; secondary login link.FR-1 — Start cash pull. As a Currency Creator, I should start a new digital currency named cash pull, in the style of Bitcoin, so that holders can use it. (explicit)
FR-2 — Show the currency and its current supply. As a Currency Creator or Currency Holder, I should see the cash pull currency and its current supply, so that I know how much exists. (explicit)
FR-3 — Hold and see a balance. As a Currency Holder, I should hold a cash pull balance and see it, so that I know what I can send. (explicit)
FR-4 — Send cash pull. As a Currency Holder, I should send cash pull to another user, so that value moves to them. (explicit)
FR-5 — Receive cash pull. As a Currency Holder, I should receive cash pull from another user, so that my balance grows. (explicit)
FR-6 — Show the record of transfers. As a Currency Holder, I should see the record of cash pull transfers, so that I can verify what moved. (explicit)
FR-7 — Self-service enrollment. As a new user, I should complete self-service enrollment before protected cash pull work, so that I can hold and control cash pull. (required_inference)
FR-8 — Returning verification. As a returning user, I should verify identity at Login, so that I can reach my protected cash pull state. (required_inference)
FR-9 — Start cash pull before holders use it. As a Currency Creator, I should start cash pull before holders use it, so that there is a currency to hold. (required_inference)
Authoritative creative direction: Systematic product craft with a hot accent, muse Rasmus Andersson.
#141517; surface #1D1F22; text #F6F3EE; primary #FF5C1A (tangerine — primary actions and the cash pull mark); accent #C6F24E (acid green — gains and confirmations only); muted #8A8F98; hairline borders #2A2D31.clamp(44px, 7vw, 104px) for the hero line.#2A2D31; no shadows.The public entry is a graphite full-width field holding an oversized cash pull wordmark in Space Grotesk with tight tracking at clamp(44px, 7vw, 104px). Directly beneath it sits a live supply counter in JetBrains Mono with tabular figures, separated from the wordmark by a thin tangerine rule. The Sign Up control is a solid tangerine block with a 10px radius and no shadow, left-aligned — never centred. A muted Login link sits beside it. The supply counter counts up once on load; under prefers-reduced-motion it renders its final value statically. All readable text and controls stay whole inside the viewport at 375px, 768px, and 1280px, wrapping or scaling to fit.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, the count-up is suppressed and a usable static arrangement is provided. (explicit — creative direction)frontend, backend, and database services; the backend is reused for all feature APIs rather than adding separate services.
No comments yet. Be the first!