Git Product home page Git Product logo

ido-ux's Introduction

Gnosis Auction Front-end

Development

Install Dependencies

yarn

Configure Environment

Copy .env.example to .env and change the appropriate variables.

Run

yarn start

To have the frontend default to a different network, make a copy of .env named .env.local, change REACT_APP_NETWORK_ID to {yourNetworkId}, and change REACT_APP_NETWORK_URL to e.g. https://{yourNetwork}.infura.io/v3/{yourKey}.

Connect to additional - local services api

Checkout the repo gnosis/ido-services - note that this is private repo - and run the orderbook service with

cargo run --bin orderbook.

This will start the necessary backend end points for a smooth development. Then set the env variable:

REACT_APP_ADDITIONAL_SERVICES_API_URL=http://127.0.0.1:8080/

in the .env or .env.local file to the connect to the local api

Connect to additional - development services api

Set the env variable:

REACT_APP_ADDITIONAL_SERVICES_API_URL=https://ido-v1-api-rinkeby.dev.gnosisdev.com/

in the .env.local file to the connect to the development api

License and origin

This program is free software: you can redistribute it and / or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The project is a fork of the uniswap front-end from the following commit.

Copyright © 2021, Gnosis limited.

Copyright © 2020, Uniswap.

Released under GNU General Public License v3.0

ido-ux's People

Contributors

0xslipk avatar alongoni avatar anxolin avatar avsavsavs avatar batangatroy avatar cmagan avatar fairlighteth avatar gabitoesmiapodo avatar henrypalacios avatar hpmaxi avatar josojo avatar lint-action avatar maria-vslvn avatar mariano-aguero avatar mmv08 avatar rafanator avatar ramirotw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ido-ux's Issues

[UI] Remove Est. Fill column

Remove Est. Fill column from orders section:

Screenshot 2021-02-11 at 14 57 30

Reasoning -> Increased activity right before the auction ends will possibly increase activity a lot, and make this Est. Fill unreliable, which could anger users.

Add tooltip to `Current Price`

Screenshot 2021-02-10 at 10 46 14

Add a tooltip saying:

"Current Price" shows the current closing price of the auction if no more bids are submitted or canceled

Choose the price suggestion:

Currently, the UI proposes always a price of 1, in order to actively ask for an input. We could alter the behaviour:

Stefans suggestion:

It would be useful if the price would always set to the min price of the auction. Maybe later to the min price to actually win 
based on the current order book

I am not sure of what is best. Wdyt?
@Rafanator @cmagan

Enable walllet-connect on Rinkeby

Currently, the only wallet option on rinkeby is metamask. Please also enable Walletconnect on rinkeby.

The code for wallet connect should already be available, it's just that Uniswap had not enabled it for some reason on rinkeby.

Show auction details in the graph

If people are zooming in the graph by clicking on it, tthe graph modal shows up. Please show all auction details information in the graph via appropriated visualizations:

  • Mark the lowest price
  • Mark the current price
  • Make sure font-sizes are appropriate
  • Mark filled orders with darker colors compared to unfilled orders.

Orderbook should be updated upon order placement

The orderbook should be updated upon order placement.

Either the orderbook is updated very regularly - if this is okay for the load of our servers -, or at least new user orders should immediately be appended with the newOrder hook.

Make the chart higher in height + Disable modal

The chart looks too compressed and not very nice as it is:

Screen Shot 2021-02-10 at 15 13 52

Please increase the height so it can be visible without requiring the modal. Something similar to:

Screen Shot 2021-02-10 at 15 16 02

Disable the modal once this is adjusted.

Make the bright-mode site look good

Currently, only the dark mode has an acceptable appearance. Please design the daylight mode as well appropriate and make sure that all information is easily readable in dark and bright mode.

Creation an auction overview/table page

Given the new design of the landing page, we should put the current auction table on a new site.

I suggest the following routes:

  • /start. -> points to the landing page
    -/overview -> points to the auction table page
    -auction?auctionId=6 -> points to trading page with auction 6

The auction overview page should only contain the following table for now:
image

pulling in the tokenLogo.

Let's discuss over here what could be the best way to manage token-logos?

Proposal 1:
We have a list of tokenlist for each network:
mainnet -> coingecko,
rinkeby ->defaultlist
xdai -> honeyswap list

If tokens auctioned off are not in the list on the respective network, then we warn the users...

Questions: will IDO project get their token logos listed so quickly, that we can show them?
@cmagan Where do token projects try to "list" their logo first? Is there a common base? Because then we would like to integrate with them first...

[UI] Switch Volume (GNO) to Volume (DAI)

Switch the y axis of the chart to Volume(DAI).

Screenshot 2021-02-18 at 18 01 58

This is because Gnosis Auction works different from normal orderbook exchanges.

In gnosis auction, bidders determine the price they want to bid at and the amount of BID tokens they want to submit, contrary to what happens in normal orderbook exchanges where bidders select the amount of sell tokens on their order.

[UI] Responsive views

I created this issue so I don't forget to check how the app looks on mobile (and to add some new designs when needed).

Add zoom feature to chart

Add chart Zoom with mouse in similar to the one in https://mesa.eth.link/ 's orderbook, pictured below:

Screenshot 2021-02-11 at 13 04 37

Screenshot 2021-02-11 at 12 54 36

Reason: in the past, user "broke" the Mesa orderbook chart by placing orders with very big volumes at a very low or a very high price. Zooming in solves this.

[UI] Split Interface in 2 for mobile

Divide interface for mobile in half, similar as in this image:

Screen Shot 2021-02-10 at 15 16 02

Have Place Order section on top and Chart + detail sections below + order details at the bottom:

Screenshot 2021-02-10 at 18 06 46

Screenshot 2021-02-10 at 18 06 52

And order sections below (sorry I have no screenshot for that section right now).

Refactor: Merging state?

Currently, we have different states for the user input: orderPlacement, the orderbook, and the user orders. Though all of them are interlinked and actions in one state trigger also hooks on other states.

What is the best practice? Should they be merged to save hooks and improve the loading of the page. Or should be keep them separate, mostly for readability.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.