windingtree / win-frontend Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Description:
Set of handlers and UI components that makes web3 UX easier and smoother.
Required:
Description:
Add a fall back for images that did not load successfully
flowchart TD
subgraph state[App state]
searchResults
end
subgraph filters
price[price asc/desc]
amenities_filter[amenities]
end
subgraph results[Search results]
offers_view[Foto, name, price]
end
state <--> useAppState
useAppState --> filters
useAppState <--> results
filters_ui --> filters
filters --> results
subgraph offer_details[Offer details PAGE]
details_view[Gallery, name, description, price, amenities]
end
results -.-> offer_details
searchResults
state is persistent app statesearchResults
is changing filters
must be recalculatedfilters_ui
user can adjust search results
data setoffer
he should be moved to a separate pageBook now
button (see below)flowchart TD
details[Offers details PAGE] -.-> config[Offer configuration]
config --> person[Personal information]
person --> overview[Booking overview]
overview -.-> book[Book now]
A booking wizard
is definitely a wizard
that guides the user through the three steps
At every step, it should be possible to move back
At the last step, the user should be able to start a booking process from the Book now
component
At every step, the UI must demonstrate to the user offer an expiration time counter. If a timer is exhausted, the booking must be cancelled and the user should be moved to the search page.
This is the list of terms that is similar to the general terms list but these terms are strongly related to the options listed above. For example:
Remove breakfast
About how to display terms please see: Options and terms logic
flowchart
subgraph state[App state]
searchResults
end
subgraph useSearchForm
validator
queryBuilder
querySender
end
subgraph form[Search form]
address
dates[check-in/out dates]
guests
num[Num rooms]
end
subgraph server
search_api
end
querySender --> useDispatch
useDispatch <--> state
form <--> useSearchForm
search[Search start] -.-> querySender
querySender -.-> search_api
The Search form
component should allow the following configuration*:
*This configuration must be provided via app config
useSearchForm
hook accepts all the form properties as arguments.
search query
is prepared to be sent to the serversearch
is started by the user the querySender
sends a request to the serverDescription:
User should be redirected to Facility Page after choosing search option either from list or pin on map. Could be interpreted as a modal.
Required:
Requirements:
deal
is refusedVidere
docsAs a user, I want to pay booking costs in stable coins (crypto) or native tokens.
I want to be able to select a proper network and choose an allowed token to pay.
I want to have the following possible payment options:
After successful payment, the component must call a callback with payment details.
The payment component must accept the following payment request object as an input parameter:
interface Payment {
currency: AssetCurrency;
value: BigNumber;
expiration: number;
providerId: string;
serviceId: string;
}
Asset for a selected network must be filtered by the currency
parameter. If the selected network does not contain proper assets for the user should be displayed a message: This network does not support payments in ${currency}
Description:
Current implementation of map does not properly fit into a screen. Suggest to make header transparent, so it gives addition space for map
Options list is the list of the options that belong to the booking. For example:
Breakfast
Adult TV channels
SPA voucher
About how to display options please see: Options and terms logic
As a developer (front & back), I want to know the detailed payment process flow across all parties involved in the process.
The following information is required:
Description:
A page with all users bookings list.
Required:
flowchart
subgraph book[Book now]
network[Network selector]
asset[Asset selector]
guaranteeIdQuery
cryptoPayment
bookingFinalization
end
subgraph server
booking[Booking API]
end
contract[Smart contract]
offer[offer price, currency] --> book
metamask <--> network
asset -.-> balance
guaranteeIdQuery -- request guaranteeId --> booking
booking -.- guaranteeId -.-> guaranteeIdQuery
guaranteeIdQuery -- guaranteeId --> cryptoPayment
start[Start payment] -.-> cryptoPayment
cryptoPayment <-- asset and price, guaranteeId, value --> contract
cryptoPayment --> bookingFinalization
bookingFinalization --> booking
booking -.-> bookingFinalization
The Book now
component accepts offer price and currency as params.
Network selector
allows the user to select desired blockchain network (list of allowed networks must be configured via app config). When a user selects a network from the list the app must send special request to the Metamask wallet that changes the currently selected network.
Each network
has its own set of crypto assets
allowed for payments. Assets
must be configured via app config.
The smart contract
has two functions.
calc
makes a calculation of the selected asset value and accepts the following arguments:
pay
makes crypto payment. Accepts the following arguments:
When the user selected the network
the asset
the component must send a calculation request using the calc
function. After the calculation is obtained the UI must demonstrate to the user the required asset value.
The transaction expiration time must be calculated according to the following rule: transaction expiration time must be less than the offer expiration time. The difference between these times must be enough for the completion of the booking procedure via the Glider API.
When the payment transaction is mined the bookingFinalization
helper must send a request to the booking API
for making the booking via the Glider API.
When booking via the booking API
is finished in exchange should be returned a booking ID
. This Id should be demonstrated to the user and saved to the local storage into myBookings
persistent property.
flowchart
subgraph state[App state]
myBookings
end
state <--> useAppState
useAppState <--> bookingFinalization
Description:
Grommet native carousel is not meet our requirements, its too laggy.
Requirement:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.