Awesome
We have redesigned Souq for Open Beta and Production and it no longer requires the user to have their own preferred node.
Closed Beta is now over, this repo is deprecated
Souq Decentralized Project Tagging & Funding
Target group
Souq is meant to be used by anyone with a Project
they think should be funded, and or anyone who wants to support said Projects
. We hope to have a wide variety of use cases.
Problems to solve
Current online crowdfunding has some flaws:
- Crowdfunding apps like Kickstarter and Indigogo are centrally controlled and subject to censorship and favoritism.
- Crowdfunding apps do not faciliate funding of initiatives at local levels.
- Funding is typically insufficiently available to meet the stated objectives due to lack of discovery by relavent would be backer(s).
- Results aren't always available to public critique.
Goal
Solve the stated problems above by giving users the ability to easily create decentralized Projects
that other users can easily find and fund. Projects
are secured by Blockstack and the Bitcoin Blockchain.
Minimal Viable Product (MVP)
- Users are able to create
Projects
that have- Title
- Description
- Category (more coming)
- Type (more coming)
- Stage
- Payment address
- Goal amount
- Coordinates (latitude, longitude)
- Image url
- Phone number
- Email address
- External url
- users are able to update data of a owned
Project
- Users are able to send cryptocurrency to the specified payment address of a discovered
Project
- Users are able to search for
Projects
by its Unique ID. - Users are able to search for
Projects
by relative Properties, ie keywords etc. - Users are able to search for
Projects
by relative Proximity to their current location. - Users are able to transfer ownership of a owned
Project
to another user. - Users are able to search for
Projects
by relative Owner.
Future features
- Users are able to
Review
aProject
they have contributed funds to. - Users are able to track the History of a
Project
(change log of Project zone file) -
Project
owners are able to create delegatableTasks
to other Users that can be independently described & funded (sub domains)
Core components / Models
-
Lock
- intial local application lock (not to be confused with your Blockstack Password) -
Account
tab- Configure Settings (Button top right)
- Set the Preferred node Path, Port Number, and Secret
- Configure Settings (Button top right)
-
Projects
tab- Create new
Project
(Button top left)- Save the
Project
data details by defining the various fields.
- Save the
- View
Project
(s) (still being cleaned up)- Get List of
Projects
: By ID, By Properties, or By Proximity- Inspect
Project
details: View the various information- Inspect its Details:
- Title
- Description
- Category (more coming)
- Type (more coming)
- Stage (almost done)
- Image URL (currently simple, needs Gaia integration)
- Payment Address QR Code
- Payment Address Button
- Goal Amount
- Current % Funded Bar
- Location on Map
- Phone Button
- Email Button
- External URL Button
- Inspect its Reviews (once feature is available)
- Send Cryptocurrency to the specified payment address of the
Project
via blockstack wallet. - Send Cryptocurrency to the specified payment address of the
Project
via external Wallet - Send Cryptocurrency to the specified payment address of the
Project
via a ShapeShift
- Inspect its Details:
- Inspect
- Get List of
- Create new
User flow
Setup Souq
- Alice and Bob both go through their initial Souq setup (Install/Setup Preferred Node, Install/Setup Mobile App, Funds Account)
Create a Project
- Alice clicks
New Project
and fills out the form for creating a newProject
- Upon "Save Project", redirected to her
Account
tab, showing a pending registration at the bottom of the list of OwnedProjects
. - The JSON object containing the respective data gets written into the zone file of Alice's new
Project
upon registration complete. - Alice retrieves unique ID and shares it with other users.
View a List of Projects
- Bob first gets a list of
Projects
by id, owner id, keyword(s), location, and or additional funding details.
Inspect a Individual Project
- Alice's
Project
catches Bob's eye in the list when searching forProjects
byProximity
- Bob can click on her specific
Project
to inspect it - The
Project
details and their elements can be more carefully inspected.
- Bob can click on her specific
Send Funds to Project
- If Alice's
Project
is a worthy cause, Bob is able to send funds to the specified payment address- Bob sees the goal amount
- Bob sees the payment address qr code, upon click is presented with funding options (wallet select)
- Bob can specify how much he would like to send
- The transaction is executed upon confirmation
Stage Changes to Project
- As Alice's
Project
matures, and the outcome is clear, Alice updates thestage
field as needed.- Bob sees the
stage
transition fromIn Progress
toCompleted
if theProject
is successfully completed. - Bob sees the
stage
transition fromIn Progress
toCancelled
if theProject
initiative fails to be completed.
- Bob sees the
Audit Project History
- If Alice's
Project
has ever been updated, then Bob sees the changes in a clean log of historical changes to its zone file.- Bob sees when the goal payment address has changed, or other key details such as objective description changes.