Viniswap: Requirements
Viniswap is the graphical interface that allows user the following:
Data Visualization: three types of data for each MTB* vintage: "Vineyard", "Work", "Money"
Trade: (Buy and sell) MTB* vintage tokens, in ETH by connecting to the user's wallet to Uniswap and the MTB* vintage crowdsale contracts
Redeem: exchange tokens for bottles of wine
Exchange Info: Access information about token historical pricing
Liquidity: Enable users to add or remove liquidity from MTB* token liquidity pools
This document describes the functional requirements for Viniswap. In separate sections, we define the requirements for:
User's wallets for holding MTB* vintage tokens and ETH
The form used by Costaflores workers to register tasks
The form for redeeming bottles of wine with tokens
Data Visualization
Four types of data for each MTB* vintage: sensor, tasks, business, images
Req | P | Definition | Owner | Notes |
1.1.1 | 1 | Present "Vineyard" sensor data, for each vintage token, starting on the 6th of May of the previous year, through the 5th of May of the following year, the day before the token is issued (i.e. sensor data for the MTB21 token runs from 6th of May, 2020 to 5th of May, 2021) - on Argentine Time Zone. | enchainté | If it is too complicated to start on the 6th of May and end on the 5th, we could start on the 1st of May with sensor data, and end on the 30th of april.
|
1.1.2 | 1 | Present Work, in a tabular format, with the following columns: Date Task Name (from fixed set of tasks) Worker name Tools used Chemicals Used (and amount) Start Time Finish Time Start Location (row, claro, plant) - End Location (row, claro, plant) Note (observations) | enchainté | These are the current task fields in the database managed by OpenBravo. |
1.1.3 | 1 | At the top of the Work section, present the visual representation of the percentage of task hours, per category block, against an MTB bottle. | enchainté |
|
1.1.4 | 1 | The Vineyard data should be presented in two views (daily, monthly) for: + Subsoil humidity (.5m, 1m, and 2m) - relative percentage from 0-100% + Solar irradiance - VI, IR, UV + Rain (a running total for the year) - mm (0-400) + Atmospheric pressure (950-1020 range) + Relative Humidity - relative percentage from 0-100% + Wind Speed (in Knots) + Wind Direction in degrees 0º-359º | enchainté | All data points are currently correct except for: Rain fall (sensor not working properly) Solar irradiance (sensor not working properly) Atmospheric pressure (scale needs to be calibrated) Wind Direction (not reporting) |
1.1.5
| 1 | Present "Money" in tabular format, including G/L Category Date Account Amount Notes | enchainté |
|
1.1.6 | 1 | At the top of the Money section, present the visual representation of the percentage of money spent for expense categories, against an MTB bottle, in similar fashion as for tasks. Include two fields: Estimated Landed Cost, per bottle, for ICO Total Cost per bottle (running total) | enchainté |
|
1.1.8 | 1 | The data must be localized in the following languages: English, Spanish, Portuguese, French, Catalan | enchainté |
|
1.1.9 | 1 | At the top of the Vineyard section, incorporate a dashboard, with the following items: Name (Costaflores Organic Vineyard) Location (///multimedia.sonorous.puppies) - link to what3words Time / Date of last update Vineyard Stage: (bud burst, flowering, setting, thinning, veraison, harvest, pruning) Input molecules: Co (Copper) S (Sulfur) H2O Guano Buttons for: Live Stream Grape status: pH, Brix, Total Acidity, KG (estimated or harvested)
| enchainté |
|
1.1.10 | 1 | Use a color scheme consistent with the Costaflores and/or OpenVino style guide. | enchainté |
|
1.1.11 | 1 | Instructions for modifying text and the background image. | enchainté |
|
1.1.12 | 1 | Document the architecture components and provide monitoring points and procedures for service recovery. | enchainté |
|
1.1.13 | 1 | On the Vineyard section, next to the Month and Date selection, add a button to link to the YouTuber 360 video of the: specific day, or for the month, if "none" is selected as the date. This requires a lookup from a table where the name of the URL is written. If the current date is selected, the "Live Stream" is viewed. | enchainté |
|
1.1.14 | 1 | Map the YouTube 360 Live Stream with the Vinophonics audio | Mike |
|
Trade
Trade: (Buy and sell) MTB* vintage tokens, in ETH by connecting to the user's wallet
Req | P | Definition | Owner | Notes |
1.2.1 | 1 | Buy and sell tokens by connecting a web3 wallet to interact with the uniswap v1 smart-contract | enchainté |
|
1.2.2 | 1 | Buy and sell tokens by connecting a web3 wallet to interact with the annual crowdsale smart-contract | enchainté |
|
1.2.3 | 1 | Collect the e-mail addresses and wallet addresses (not checked) of the person buying or selling tokens on Viniswap | enchainté |
|
Redeem
When a token holder wishes to exchange tokens for bottles, we present redemption form to indicate the address where the wine bottles should be shipped, display the shipping and handling fee, and charge the appropriate shipping and handling expenses.
Req | P | Definition | Owner | Notes |
1.3.1 | 1 | Present a form for the token holder to indicate how many bottles to redeem in exchange for tokens. Token holders must exchange whole integers for redemption. | enchainté |
|
1.3.2 | 1 | Request the shipping address: Name (Free Text) Street(Free Text) Number, apartment (Free Text) City (Text) Country (drop-down, limited listing) Province (drop-down, country specific ?) Zip code (Free text) Telegram ID Include a button for a link where the token holder can get more information about fulfilment, i.e. if their country is not on the list, or if their price is too expensive. | enchainté | unisocks.exchange: |
1.3.3 | 1 | After the user indicates the shipping address, allow the token holder to select the number of tokens to redeem for bottles and wine, and show the corresponding shipping and handling expense, similar to how the purchase/sale price changes in the buy/sell menus. Calculate the shipping and handling expense (in USD and ETH) to present to the user for confirmation. The cost of shipping and handling is managed in a table in the back-end (in USD) with the valuation in ETH calculated on-the-fly. Shipping and handling expenses are determined by the back-office and are static based on three factors: Country Province Bottle amount (i.e. more expensive for single bottles than 6-bottle packages) On the same form, present the estimated shipping times. | enchainté | missing screen example. |
1.3.4 | 1 | Confirm the order data, and sign. | enchainté |
|
1.3.4 | 1 | Finalize the purchase (redemption) of the wine bottles with a confirmation of the order, thank you, and tracking link. | enchainté |
|
1.3.5 | 1 | Record the information collected for the order (token redemption). Not quite sure what to do after this point. |
|
|
Exchange Info
Access information about token historical pricing.
Req | P | Definition | Owner | Notes |
1.3.1 | 1 | Alongside "Buy" and "Sell" on the Viniswap token screens, add a third button "Farm" | enchainté | We combine access to a new panel which provides token information and liquidity "farming". |
1.3.2 | 1 | Open a screen based on uniswap.info, presenting Volume, Liquidity, and Price graphs. | enchainté | https://v1.uniswap.info/token/0x1bcfd19f541eb62c8cfebe53fe72bf2afc35a255
|
Liquidity
Enable users to add or remove liquidity from MTB* token liquidity pools
Req | P | Definition | Owner | Notes |
1.4.1 | 1 | Define manual instructions for interacting with the Uniswap v1 smartcontract to create a new liquidity pool, add liquidity, and remove liquidity. | enchainté |
|
1.4.2 | 2 | On the same screen as described in 1.3.2, provide a Farm! button and a data display: Farm! button (allow users to add/remove liquidity) My Liquidity (report how much liquidity this wallet holder has for the following for ANY MTB* tokens. | enchainté |
|
1.4.3 | 2 | Upon selecting Farm!, the user should be able to provided with a two panel button that allows them to select MTB* tokens they wish to Seed (add to the liquidity pool), or Harvest (remove from the liquidity pool). This is similar to the uniswap.exchange "Add Liquidity" and "Remove Liquidity" menus, but with these simplifications: Users are not enabled to create new liquidity pools, so we don't need a Create Pool button. We are ONLY balancing ETH and the tokens available on Viniswap (MTB*). Since they have already selected the token from the main menu, we don't need to provide a button to "Select a token" for the inputs. We do, however need to provide the user with the option to select the amount of tokens they wish to Seed or Harvest (or MAX), and insure that they have sufficient ETH to match.
|
|
|