SPECS-STORIES.md 3.11 KB
Newer Older
1 2
# Specs - User Stories 
> *for https://snowdrift.coop*
Bryan's avatar
Bryan committed
3

4
> ***Understanding this document***
Bryan's avatar
Bryan committed
5

6
> Collaboratively creating software presents many challenges, not the least of
Bryan's avatar
Bryan committed
7
which is agreeing on what software is actually being created. This page is a
8 9
record of what agreements have been made and implemented. It is a **living document**.
The rest of this section will describe its format and contents: namely, user stories.
Bryan's avatar
Bryan committed
10

11 12
> We try to focus our discussion on individual features by motivating them with
user stories. By using the format **" As a ____ , I want ____ so that ____ "**, we can
Bryan's avatar
Bryan committed
13 14 15 16 17 18
have a concrete discussion about *who* is using the feature, *what* it provides,
and *why* it is useful. Deciding on a user story is only the first step, of
course, and can certainly be contentious in its own right. We can always return
to it, however, to reign in lengthy and far-ranging tangents while collaborating
on future plans.

19
> The user stories for the website are grouped under the page on which the relevant
Bryan's avatar
Bryan committed
20 21 22
feature exists. This is just for ease of lookup. User stories define which pages
exist—not the other way around.

23 24
###  / (Welcome page)
-  **As a** visitor, **I want** to read an introduction to the website **so that** I can
Bryan's avatar
Bryan committed
25
   familiarize myself with the platform and its goals.
Bryan's avatar
Bryan committed
26

27 28 29
###  /how-it-works
-  (Rationale) **As a** visitor, **I want** to read an introduction to the mechanism **so
   that** I can familiarize myself with how it works and what will happen when I
Bryan's avatar
Bryan committed
30
   make a pledge.
Bryan's avatar
Bryan committed
31

32 33 34
###  /about
-  (Rationale) **As a** visitor, **I want** to read a description of the Snowdrift.coop
   ORGANIZATION (i.e. in the guise of the entity that runs the platform) **so that**
Bryan's avatar
Bryan committed
35 36
   I can learn about the people who run the Snowdrift.coop website and how they
   operate.
Bryan's avatar
Bryan committed
37

38 39 40 41 42 43 44
###  /p/snowdrift
-  **As a** visitor, **I want** to see information about the project's goals and
   purpose **so that** I can decide if I want to support it.
-  **As a** visitor, **I want** to see the crowdmatch status for the Snowdrift.coop
   PROJECT (i.e. in the guise of a project on the platform: /p/snowdrift) **so that** 
   I can understand the effect of adding my pledge.
-  **As a** user, **I want** a pledge button on the project page **so that** I can become a
Bryan's avatar
Bryan committed
45
   patron.
46
-  **As a** patron, **I want** an unpledge button on the project page **so that** I can
Bryan's avatar
Bryan committed
47
   unpledge if I no longer think the project needs my support.
Bryan's avatar
Bryan committed
48

49 50
###  /dashboard
-  (Rationale) **As a** patron, **I want** to see an overview of my pledges **so that** I
Bryan's avatar
Bryan committed
51
   feel in control of my impact and contributions.
52 53
-  **As an** early-stage patron, **I want** to see a history of crowdmatches (with
   totals) **so that** I can track the progress towards the first donation payment.
Bryan's avatar
Bryan committed
54

55 56
###  /payment-info
-  **As a** user, **I want** to read an explanation of the payment-info process, **so that**
Bryan's avatar
Bryan committed
57 58 59
   I know what purpose it serves and what the next steps will be.
    -  This explanation is self-contained, but also follows from the text on the
       welcome page.
60 61
-  **As a** user, **I want** to be notified when a page uses proprietary javascript **so that** 
   I know Snowdrift.coop has made an intentional compromise.