115 lines
6.5 KiB
Markdown
115 lines
6.5 KiB
Markdown
# Project Mycelium Complete UX
|
|
|
|
## Introduction
|
|
|
|
We present the complete user experience for the Project Mycelium.
|
|
|
|
## User Experience
|
|
|
|
- Publicly available information
|
|
- A user can consult the docs at /docs
|
|
- A user can consult the privacy policy at /privacy
|
|
- A user can consult the Terms and Conditions at /terms
|
|
- A user can read about the marketplace at /about
|
|
- A user can contact ThreeFold by consulting the page /contact
|
|
- Registration and Login
|
|
- A user can register at /register
|
|
- Once registered they can log out and then log in at /login
|
|
- Purchases
|
|
- A non-logged in user can check the marketplace at /marketplace and add items to cart
|
|
- To buy an item, the user must be logged in and have enough credits
|
|
- Purchase UX
|
|
- A user can always buy a product or service in two ways
|
|
- They can Buy Now, or Add to Cart (then proceed to checkout and complete the purchase)
|
|
- A non-logged in user will have access to the cart at /cart
|
|
- If they then log in, the cart items will be added to their account's cart
|
|
- In the /cart page, they can clear cart or delete individual items in the cart
|
|
- If they try to edit the cart, a message appears telling them to log in to edit the cart
|
|
- A logged in user will have access to the cart at /dashboard/cart
|
|
- Then they add to cart, they can see their cart at /dashboard/cart
|
|
- In the /cart page, they can clear cart or delete individual items in the cart
|
|
- As a logged in user, they can edit the cart, e.g. click + to add more of that same item, or click - to remove that item
|
|
- A user can see all their purchases at /dashboard/orders
|
|
- A user can see their recent transactions at /dashboard/wallet Recent Transactions
|
|
- Credits
|
|
- A user can buy credits at /dashboard/wallet, Buy Credits
|
|
- A user can transfer credits to another user at /dashboard/wallet, Transfer Credits
|
|
- A user can set up Auto Top-Up Settings at /dashboard/wallet Auto Top-up Settings
|
|
- Thus if a user buys an app that costs e.g. 10 USD per month, they can set an automatic wallet top-up to never go below that number, ensuring their app will never run out of credits
|
|
- Marketplace
|
|
- In the marketplace, a user can search and filter items in different categories
|
|
- They can buy compute resources (slices) at /marketplace/compute
|
|
- They can reserve a complete node (server) at /marketplace/3nodes
|
|
- They can buy Mycelium gateways at /marketplace/gateways
|
|
- They can buy applications (solutions) at /marketplace/applications
|
|
- They can buy services at /marketplace/services
|
|
- Settings
|
|
- A user can change settings at /dashboard/settings
|
|
- They can
|
|
- Update the profile information (email can't be changed)
|
|
- Name
|
|
- Country
|
|
- Time Zone
|
|
- Change the password
|
|
- Set Up SSH Public Keys
|
|
- Update notification settings
|
|
- Security alerts
|
|
- Billing notifications
|
|
- System alerts (downtime, maintenance)
|
|
- Newsletter and product updates
|
|
- Dashboard Notifications
|
|
- Show alerts in dashboard
|
|
- Show update notifications
|
|
- Update their currency preferences
|
|
- They can decide to have the prices displayed in
|
|
- USD
|
|
- TFC
|
|
- EUR
|
|
- CAD
|
|
- Delete account
|
|
- When a user deletes their account, their data is still available on the marketplace backend for security, audit and legal purposes
|
|
- Dashboard UX and Provider+Consumer Interactions
|
|
- A user can see their dashboard overview activities at /dashboard
|
|
- A user can see their user profile and activities at /dashboard/user
|
|
- A user provoding resources to the grid (aka a farmer) at /dashboard/farmer
|
|
- There they can add resources, e.g. add a node to the marketplace which will be available for purchase by other users as slices (a node is distributed as slices)
|
|
- A user can become an app provider at /dashboard/app-provider by registering new applications
|
|
- When a user register an application
|
|
- The application is displayed publicly at /marketplace/applications
|
|
- The application is shown at the app provider dashboard /dashboard/app-provider at the table My Published Applications
|
|
- When another user buys that app
|
|
- The app provider will see that info at the table /dashboard/app-provider Active Deployments
|
|
- The app purchaser will see the app info at /dashboard/user My Applications
|
|
- A user can become a service provider at /dashboard/service-provider by registering new services
|
|
- When a user register a service
|
|
- The service is displayed publicly at /marketplace/services
|
|
- The service is shown at the service provider dashboard /dashboard/service-provider at the table My Service Offerings
|
|
- When another user buys that service
|
|
- The service provider will see that info at the table /dashboard/service-provider Service Requests
|
|
- There are 3 stages to this service request from the service provider POV
|
|
- Open
|
|
- In Progress
|
|
- Completed
|
|
- The service purchaser will see the service info at /dashboard/user My Service Bookings
|
|
- A user can become a resource provider by adding nodes and thus resources to the marketplace at /dashboard/farmer
|
|
- They can Add Nodes
|
|
- Then it fetches the nodes on the ThreeFold Grid and distribute the node into slices
|
|
- Then the slices are can be seen publicly at /marketplace/compute
|
|
- Any user can then purchase slices from that farmer and access the slices
|
|
- Products
|
|
- Farmers at the core offer compute resources (slices) to the marketplace.
|
|
- On their end, farmers host nodes on the threefold grid. nodes are split into slices.
|
|
- Users can use slices for individual VMs, or for Kubernetes cluster
|
|
- The UI is intuitive
|
|
- .html_template_tests
|
|
- Apps can be self-managed and managed
|
|
- An app is at its core a slice (VM or Kubernetes cluster) with an app on top
|
|
- for self-managed node, users can set their SSH public key, they set it in /dashboard/settings SSH Keys page
|
|
- for managed node, users will have access to the credentials on their marketplace dashboard in /dashboard/user page at the section of the app/product they rent/bought
|
|
|
|
---
|
|
|
|
- we want to have tests to check and confirm that the UX of the marketplace is as should be
|
|
- thus, there should be a series of test for the UX above
|
|
- we don't need any other test and we should have the tests mentioned above in an isolated section, e.g. not shared with other tests
|
|
- this ensures that the tests are not affected by other tests |