Blue: Done, Green: Building, Black: to do, Yellow: Proposal.
Set Up Seed Hypermedia
Find and Download Seed Hypermedia
As a User, I want to learn about Seed Hypermedia.
As a User, I want to download the app.
As a User, I want to install the app.
As a User, I want to update the app.
Connect to the Network
As a new User, I want to Connect to a Peer with the content I want.
Sync only the document I wanted with that peer, non recursively.
As a new User, I want to learn what Seed Hypermedia is.
seedhypermedia.com
As a new User, I want to Connect to a Site’s Peer.
Create an Author Account
As a User, I want to create a new account with my first name and surname.
As a User, I want to generate a new account and a username.
As a User, I want to add an account and a username by adding an existing key.
As a User, I want to choose how to store the Account Keys.
Show my mnemonics, and I will write them down.
Please save the key in the keychain.
Do not save anything. I will input the mnemonics or key when the app starts up.
Save the key to my keychain and my mnemonics to an encrypted file.
Save the mnemonics to an encrypted file.
Save the mnemonics to my keychain. (close future)
As a User, I want to remove my secret words from the app.
As a User, I want to remove the keys of an Account from my app without
As a User, I want to generate new keys for the same Profile.
Create a Publisher Account
As a Publisher, I want to create a new publisher account to start a new knowledge community.
As a Publisher, I want to create a homepage.
As a User, I want to be the Admin of the Publisher Account.
Publisher delegates to my account.
As an Admin, I want to add an admin to the Publisher Account.
An admin cannot be removed without publisher keys.
As an Admin, I want to invite writers to the Publisher Account.
As a User, I want to keep a separate publisher key to remove admins.
no need for an adming
Create a hyper.media Site
Share and Validate my Account
As a User, I want to ask a Contact to validate my Keys.
As a User, I want to share my contact information with others.
Edit my Profile - Author Home, Publisher Home
As a User, I want to add my Username to my account.
As a User, I want to add an avatar to my account.
As a User, I want to add content to my account into my Home document.
As a User, I want to add validate my socials to my account.
As a User, I want to add my email to my account.
As a User, I want to add my wallet to my account.
As a user, I want to see selected contacts on my account.
Add my Account to a new Device/Peer
As a User, I want to add my account to a new peer/device.
Show my mnemonics on the old device, and I will add them to the new device.
Download the key to a file.
I want to add an existing Key.
Read and Navigate
See documents and drafts
As a User, I want to see all the documents in my node.
Members, titles, last updated date, pathname, Comments
As a Writer, I want to see my Drafts.
No need for an account until Publish.
Having accounts or not.
As an Owner, I want to see the documents I own.
As a Reader, I want to see the documents by authors.
As an Author I want to see the documents I have authored
As an Owner, I want to see the comments I have published.
As a Reader, I want to see the document with the most recent comments.
As a Reader, I want to see the documents sorted by the latest activity.
As a Reader, I want to see what documents are Read and Unread.
As an Author, I want to see the Documents I have been invited to.
Search for a document
As a Reader, I want to search for a document with the latest or concrete version.
As a Writer, I want to search in a draft for a document I want to link.
Open a document
As a Reader, I want to open an Author’s Profile.
Connect to the DHT through the bootstrap nodes
Connect to hyper
With one-hop referenced material.
Indexed documents are referenced materials too.
As a Reader, I want to open a document.
Fetching: the Frontend makes a request to the backend for a particular document.
This will trigger syncing with seed hypermedia and the peers that are connected to it
As a Reader, I want to open a document by typing its title in the search bar.
As a Reader, I want to open a document on a Site.
As a Reader, I want to open a document in a separate window by typing its title in the search bar.
Read a document
As a Reader, I want to read the content of a document.
As a Reader, I want to see the hierarchical location of a Document’s Breadcrumbs.
As a Reader, I want to see the list of external and internal documents published in a Directory.
As a Reader, I want to see the structure of a Document’s Outline.
As a Reader, I want to know and verify if the content is cryptographically secured.
As a Reader, I want to see the Discussion on a Document.
As a Reader, I want to follow a reference to another document.
As a Reader, I want to see the links to a publication inside a site.
As a Reader, I want to see the links to a publication outside a site.
As a Reader, I want to see the embeds to a publication inside a site.
As a Reader, I want to see the embeds to a publication outside a site.
As a Reader, I want to see the backlinks to a document.
Read and Manage my Feeds
As a Reader, I want to create a reading list or Feed.
As a Reader, I want to see what documents and comments I have already seen.
As a Reader, I want to block certain documents with special rules.
Favorite Content
Pay Content
As a Reader, I want to donate dollars or satoshis to the collaborators on a site.
As a Reader, I want to donate Dollars or Satoshis to the Collaborators of a particular publication.
Subscribe and Archive
Subscribe to Content
As a User, I want to subscribe to a Space Updates.
As a User, I want to subscribe to a Document and get instant updates.
As a User, I want to subscribe to a Space and get instant updates.
As a User, I want to subscribe to a Peer. (backups)
As a User, I want to subscribe to content distributor peer.
Archive Content
As a User, I want to Archive Content for personal use that won’t get redistributed on the network.
As a User, I want to share Archived Content to a specific set of peers.
Manage Contacts
Find new Contacts
As a User, I want to see all the Contacts (Suggested Contacts) synced on my computer.
As a User, I want to see the Contacts of an already-added Contact.
As a User, I want to see as Contacts the Document Members I opened and subscribed to.
See my Contact List
As a User, I want to see all the Profiles on my app
As a User, I want to see all my Contacts on my profile page.
Add a Contact
As a User, I want to add a contact from another contact in my contact list.
As a Contact, I want to sync all my Contacts.
As a User, I want to create a new contact from a profile in the contact list.
As a User, I want to merge two Accounts.
Connect to a Contact’s Peer
As a User, I want to connect and sync to a peer.
copy peer routing
go to contacts page
press “add connection” button
paste peer routing
see the success message
As a User, when a peer connects and syncs to me, I want to sync automatically back.
As a User, I want to see all the profiles of the peers I connect with.
As a User, I want to know the PeerId and the Routing Details of a Contact through a private communication channel.
Manage a Contact
As a User, I want to see a Contact.
As a User, I want to see a Contact’s Profile (account home page?).
As a User, I want to see the the documents that a contact is the author/owner.
As a User, I want to see a Contacts’s Contact List.
As a User, I want to share a contact.
As a User, I want to export a contact.
As a User, I want to Validate a Contact.
As a User, I want to add notes to a Contact.
Write and Collaborate
Create a Document
As a Writer, I want to create my home document.
As a Writer, I want to create a document in the directory of another document.
~~press in “add sub-document” button on parent’s index section~~
~~open dialog with “path” input~~
~~open draft for subdocument with breadcrumbs sho42wing the selected path and parent document title’~~
~~edit sub-document~~
~~press “publish”~~
~~redirect to new sub-document created~~
As a Writer, I want to create a draft without a location until the document gets published.
~~As a Writer, I want to create a document in a directory without inheriting permission from the parent document.~~
Compose a Document
As a Writer, I want to create a Heading.
As a Writer, I want to add text, video, and images.
As a Writer, I want to copy and paste a Markdown document.
As a Writer, I want to add a Code Block to a document.
As a Writer, I want to add a Table Block to a document.
As a Writer, I want to add an embed to a document.
As a Writer, I want to add a link to a document.
As a Writer, I want to add external references.
As a Writer, I want to edit an Embed.
Should switch from all types of embeds.
Embed picker, same for all references common UI.
As a Writer, I want to convert a Section into a Document.
As a Writer, I want to add a document to another document or section.
Manage Collaborators
As an Owner, I want to add Writers to a Document.
As an Owner, I want to remove Writers from a Document.
As an Owner, I want to add and remove Editors.
When an account is not a member anymore, you stop resolving their changes, unless a change is linked by another member.
As an Editor, I want to add Writers and Collaborators to a branch.
As an Editor, I want to add non-users as Collaborators to a document.
we can issue an invite for them (although technically that would be an ephemeral collaborator of some sort, that the inviter creates for them).
As an Editor, I want to add and remove Writers from a branch.
Writers can be users or not.
Edit a Document
As a Collaborator, I want to edit a Document based on the latest accepted change.
As a Writer, when I edit a document, I want the cursor to be in the same place in the draft as it was in the document.
As a Collaborator, I want to rebase my draft when I get new changes from Collaborators and review conflicts.
click on review change that open the rebase flow
preview the draft with the new change rebased
see the conflicts or changes
cancel operation
As a Collaborator, I want to see when a new change arrives while editing a Draft.
As a Collaborator, I want to rebase my draft with suggested changes from other users.
As a Writer, I want to delete content.
As a Writer, I want to bring back content that I have deleted.
Discuss
As a User, I want to discuss a document.
As a User, I want to reply to a message in an existing discussion.
As a Collaborator, I want to reply to a Document with a Comment.
As a Collaborator, I want to reply to a Comment.
What is happening to the document?
As a Collaborator, I want to see the latest published version.
As a Collaborator, I want to see the history of a document and how the document has evolved.
As a Collaborator, I want to see a new published version while reading the document.
As a Collaborator, I want to see what has been published since the last time the user read the document.
As a Collaborator, I want to see all the Document Branches.
As a Collaborator, I want to see all the Suggested Changes.
As a Writer, I want to see my Drafts.
As a Collaborator, I want to see if permissions have changed.
As a Collaborator, I want to see the history of a document and how the document has evolved.
Suggest Changes
As a Collaborator, I want to suggest a change to a Branch.
As a Collaborator, I want to suggest a change based on another Suggested Change.
As a Collaborator, I want to see new Suggested Changes when they arrived.
open changes panel to see the suggested changes list
select specific changes in the suggested change version
As a Writer, I want to accept a Suggested Change.
open changes panel to see the suggested changes list
select one item in the suggested changes list
see the diff between the suggested version and the current version
merge the suggested change
notify the branch collaborators
As a Writer, I want to reject a Suggested Change.
As a Writer, I want to make Suggested Changes instead of directly editing the document.
Branch a Document
As a Writer, I want to create a new Branch.
As a Writer, I want to select a different Branch.
As a Writer, I want to see the difference between the two Versions.
As a Collaborator, I want to suggest Writers merge a Branch.
As a Writer, I want to accept branches.
See the difference between the two versions.
Review conflicting changes in the same paragraphs.
Merge the Branch
Notify the Branch Collaborators
As a branch owner, I want to close and reopen a Branch or a document.
As an Owner, I want to select a different branch as the default branch.
As an Owner, I want to Transfer ownership of a document to another Owner.
As a User, I want to take over and fork a document.
Comment
As a Writer, I want to comment on a Document’s fragment
Commentary only makes sense to happen among the Users that can participate on Document’s Content. Commentary is about convergence, about winding down concreteness around a topic. Only Owners, Editors, Writers, Contributors? should be able to participate. Others User and Readers participate through the Discussion component which works as divergence and peer review.
As a Writer, I want to reply to a Comment.
Publish and Broadcast
Publish My Profile
As a Publisher, I want to publish in my profile index.
As a Publisher, I want to edit my profile.
Publish a Document
As a Publisher, I want to publish a Document.
If I want readers to access a sub-document easily, I add a link or embed it in the content.
Needs the Index component.
As a Publisher, I want to publish a Document with a different path from the name.
As a Publisher, I want to publish a Document with inherited permissions.
As a Publisher, I want to publish a Document on my WebSite.
As a Publisher, I want to publish a highlight document.
I don't care about people reading a particular sub-document; I will leave it only in the index.
As an Editor, I want to squeeze Document History for security reasons.
As a Publisher, I want to publish a document from somebody else on my website using a certain (pretty) URL. The other person can continue updating it.
As a Publisher, I want to publish a document from somebody else on my site or publication, but I want to decide when it gets updated.
As a Writer, I want to submit a document to a publisher for publication.
Manage the Directory Structure and Navigation
As a Publisher, I want to edit a Document’s Path.
As a Publisher, I want to change the title and public URL of my document.
As a Publisher, I want to edit a Document’s Path and remove or add a redirect.
As a Publisher, I want to remove a Document from a Space.
As a Publisher, I want to publish a Document in a different Space.
creates a fork of a document.
As a Publisher, I want to publish a Document in a different Space again.
creates a fork of a document.
As a Publisher, I want to move (change location) a document to another directory.
As a Publisher, I want to add a directory level to group documents.
As a Publisher, I want to add Citations.
As a Publisher, I want to suggest what document to go next.
Link an Author or Publisher Account to the Web
As a Publisher, I want to publish a new document.
As a publisher, I want to publish a new document on a new site.
Link a Subdirectory to a Site
Broadcast my Publications
Configure Client, Wallet, and Web Server
Import and export content
As a User, I want to import one markdown file from another app.
As a User, I want to import multiple markdown documents as drafts
Configure a Web server
Publish a Site to the Server