Giter Club home page Giter Club logo

bigbom-marketplace's People

Contributors

chris-tn avatar hieuht2048 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bigbom-marketplace's Issues

Update README

Current README is using a template from ReactJS. Let's fix it

Build in-app wallet feature

In order to have better UX for users, we came up with a solution to build an in-app wallet management system. This app will have these features:

  1. Able to create and restore wallet from seed phrase. Password-protected encrypted key vault.
  2. Support remote storage sync with Gdrive, Dropbox, Blockstacks or IPFSCloud
  3. Able to manage ETH and Token balance. At first it will support ETH, BBO, DAI, USDC and TUSD.
  4. Able sign & broadcast transaction to different network. This will provide the capabilities of offloading some transactions to different network than Ethereum Mainnet, while keeping all the payment-related on the Ethereum Mainnet.
  5. Integrates into the app like as web component, so user can sign & confirm transaction like normal applications.

The idea was from seeing the use of eth-lightwallet, and we feel that we can use part of Metamask source code to build our own wallet management system.

Adding shortcut to check transaction history on Etherscan

Is your feature request related to a problem? Please describe.
After submitting a transaction, user need to open metamask and click to the transaction in order to check it's status on Etherscan. If people is using hardware wallet, then they won't able to check it since they're not connecting via Metamask

Describe the solution you'd like
Adding a shortcut on the transaction confirmation screen so people can check the TX on Etherscan after submitting TX. It should diligently support Mainnet/Ropsten/Tomochain block explorer

Rating Events function return all result of the same raters

**Rating Events function return all result of the same raters **
Rating Events function return all result of the same raters, not override on previous rate.

To Reproduce
Steps to reproduce the behavior:

  1. Add a review and submit Rate
  2. After confirm from network, add a new review again.
  3. Then call Rating function to view result. It will return two result of rating, include previous rate.

Check BBO balance before sending transaction

Certain actions such as deposit BBO requires that account balance must >= required amount. We should display an error for letting user know that they don't have sufficient balance before actually sending the transaction through Metamask

Old bids from an account is still displaying after placing new bid

Describe the bug
When account A submit another bid to replace his/her old bid for a job, the old bid data still appears on the Job Detail screen.
This is a bug since on the contract side, we only store the data of last bid. This will create a confusion for Hirer when select bid winner.

To Reproduce
Steps to reproduce the behavior:

  1. Login as Freelancer
  2. Select a job
  3. Place a bid
  4. Place another bid
  5. Check the list of bids for a job, it will displaying 2 bids from same account

Expected behavior
We should only display the last bid from an account

Screenshots
screen shot 2018-08-31 at 3 29 40 pm

Desktop (please complete the following information):

  • OS: MacOS High Sierra
  • Browser: Chrome
  • Version: 64

Support "Custom" BBO value as budget and remove the dollar sign

Is your feature request related to a problem? Please describe.
We should let people specify a custom BBO value for the budget, also we need to reduce the list of budget range since i don't think current configuration is optimized

Also the dollar sign $ is misleading, because we're using BBO as the currency, not fiat.

Describe the solution you'd like
We should apply this range for budget selection .

Name Value
Small Project BBO 200,000
Medium Project BBO 1,000,000
Medium-Large Project BBO 1,500,000
Large Project BBO 3,000,000
Very Large Project BBO 10,000,000
Custom

Correct the allowance check behavior

Describe the bug
According to our design, before deposit BBO into contracts, if the current allowance is bigger than the deposit amount, it should not reset the allowance to 0 before setting new allowance. However currently implementation is ignoring the current allowance comparison, resulting to sending 2 transaction for setting the allowance.

To Reproduce

  1. Accept a bid
  2. Check the "Approve" transaction from Metamask.

Expected behavior
It should not require to reset the allowance to 0, if the current allowance is already bigger than the bid amount

Unable to create job

Describe the bug
Current build does not allow user to click to "Create Job" button if we leave the Budget as default

To Reproduce

  1. Start the app (http://localhost:3000)
  2. Login as Hirer
  3. Create a Job, DO NOT select any budget, just leave it as default
  4. Click to "Create Job"

Expected behavior
It should be able to create the Job and send Tx via Metamask

Desktop (please complete the following information):

  • OS: MacOS High Sierra
  • Browser: Chrome
  • Version: 64

Product meeting - 7/Dec/2018

This is the first meeting with Kadin, our lead Product designer for redesign our Bigbom Marketplace into a full-fledge product.

  • Bigbom Marketplace will support 2 business: Hire a Freelancer or Find a Job
  • Marketplace will focusing on finding Designer or Digital Experts
  • Assumption:
    1. User must use crypto. Non-crypto users will get supported in later version
    2. This app will run on a decetralized environment. Meaning that most of the activities on Marketplace will be decided by P2P model, via smart contracts
    3. User will use either Metamask or an in-app wallet (Temporarily called Bigbom Wallet)

TODO:

  • We will have 2 product meeting every week, one in Tuesday and one in Friday
  • Provide new Signup/Signin workflow, to support multiple identity services like email, telegram, blockstacks, etc.... (Alex)
  • Define the Porfolio for these actors in the marketplace: (Kadin)
    a. Advertiser
    b. Designer

Honor Cache Control policy for staging build

Even with Pre-release like staging, we should honor Cache-Control policy in order to properly serving static resources from CloudFlare.

What should be done here:

  • Set "Cache-Control" header into Google Cloud Storage bucket for each deployment
  • Remove Service Worker from ReactJS App

Unable to create job if "Estimated time" is too big

Describe the bug
When create a job, if the amount of "Estimated time" is too big,
To Reproduce
Steps to reproduce the behavior:

  1. Login as Client
  2. Create a job
  3. In the "Estimated Time" input, put a super large number, like 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999. Since the input does not validate the amount, we can still submit this job

Expected behavior
It should have a maximum duration, like it cannot larger than 1 year.

Screenshots
screen shot 2018-09-19 at 1 41 05 pm

Temporarily hidden the category selection at home screen

Currently we're not having any logic defined for clicking to any categories at home screen. In future release, it should lead to a specific actions or we may completely change the UI. With that reason, we should hide that block in this current release

Cannot create user

Describe the bug
Cannot create user after Metamask Authentication. Further checking show that the API call to https://uat-api.bigbom.net/users returns 400 error code. Error message is as following

{"type":"ValidateError","subCode":2,"message":"ValidateError","details":[{"field":["returnUrl"],"message":"\"returnUrl\" is not allowed","type":"object.allowUnknown"}]}

To Reproduce

  1. Go to home page https://uat-marketplace.bigbom.net
  2. Login with a new account
  3. Input Name & Email
  4. Press "CREATE"

Expected behavior
It should be able to send the verification email to user

Additional context
Environment: UAT

Proposals for version 0.0.3

Today after internal discussion, we came up with a proposal for version 0.0.3. This is subjected to be change at anytime.

BREAKING CHANGES:

  • [UI] Implement a feature to allow switching between Client/Freelancer/Voter role.
    * [RPC] Experiment the feature to override the RPC for Metamask to avoid depending to Infura.

FEATURES:

  • Basic profile support. Allows user to link their Ethereum address with Bigbom's profile.
  • Supports filtering by Ethereum address for compatible with multiple addresses being associated with a single Bigbom's profile
  • Supply reason when rejecting payment bigbomio/digital-contracts#64
  • Implements Dispute Voting workflow
  • Using IPFS for revealing votes
  • Adding "Place new bid" button #29

ENHANCEMENTS:

  • [UI] Moving account balance into profile shortcut
  • [UI] Better job/bid sorting #40
  • [UI] Smart countdown for job #22

Better tooltips for the Estimated time and Expired time on job creation screen

This is current text explanation for Estimated time and Expired time
screen shot 2018-09-06 at 9 39 06 am

My suggestion for the improvement is

  • [] Move the unit next to the input, rather than put it in the tooltips
  • [] Change the tooltips of Estimated time to "Time estimated for completing this job"
  • [] Change the tooltips of Expired time to "Maximum bid period"

Enhancing the bid filter

Today while checking the "My Bid" screen, i notified that the loading time of this page is significant, and it takes a long time before starting showing my bids. It should not like that since i only placed my bid for 4-5 jobs

Using Developer Console, i figured that dApp is loading a lot of job hashes from IPFS, so i guess that web client is filtering AFTER scanning all the posted jobs.

To Reproduce
Steps to reproduce the behavior:

  1. Go to My Bid
  2. Open Developer Console
  3. Check for the request to https://ipfs.infura.io

Screenshots
screen shot 2018-09-13 at 10 28 02 am

Desktop (please complete the following information):

  • OS: Mac OS X High Sierra
  • Browser: Google Chrome 64 bit
  • Version: 69.0.3497.92

TODO
What we can do for increasing the loading time for filter "My Bid" ??

Proposal for next development of Bigbom Marketplace

After we release version 0.0.5, we got a much better vision about which way we should come forward. Our next version, 1.0.0, will focus on several key areas, such as reducing the tx fees to zero, as well as supporting multi-chain payment. In the upcoming month we will focus our development into these topics:

Major UI&UX design

Current version is using a simple design, in order to be quickly apply new tests. With the next version, we will have proper UI&UX design, in order to bring a smoother UI&UX, and provides a rich set of features. These are the Major components we will introduce in the new version:

  • Redesigned profile
  • Peer-review system, powered by smart contracts
  • Better Signup & Signin
  • Redesigned Listing & Bidding UI

In-App Wallet (aka Bigbom Wallet)

In order to provides flexibility and great UX for end-user, we came up with a solution to replacing the needs of having Metamask installed. With Bigbom Wallet, user will have smooth experience on the app without installing anything. Bigbom Wallet also will provides extra capabilities, such as side-chain support and multi-chain payment.

Moving to Side-Chain

With the goal to eliminates the pain of paying transaction fees, we will start to offload most of our core services into a side-chain. This side-chain will provides an environment to execute complex logic on the app, while maintaining the speed, transparency and completely free on the tx fees.
The first implementation of our side-chain will use the Plasma concept, while we will operate our own POA network for transaction validation and storage.

TODO:
1-Jan-2019: Implements and test plasma contracts
2-Jan-2019: Implements Bigbom Wallet on testnet
3-Jan-2019: Deploy new side-chain to run with plasma contract on Rinkeyby network. Implements Bigbom Wallet into Marketplace app on Rinkeby network.

Product meeting - 12/Nov/2018

Today we conducted our internal meeting for upcoming development, below is our meeting notes:

  1. Before we can push 0.0.3 build into production, we need to implements these features:
  • Display a "Parameters" panel in each screen for show current configured paramaters
  • Transaction confirmation dialogue must have more contents to display the expected result of each action, like how much BBO will be paid,etc....
  • Change font color of Registration page for better readiness
  • Deploy a new set of smart contract into Ropsten network so we can switch our development work into new build of bigbom freelancer's contracts
  1. Development planning for v.0.0.4
  • Implements countdown after a payment is rejected to ensure that Client could claim their money back.
  • Refactoring code to implement jobID instead of jobHash in other to compliant with this PR bigbomio/digital-contracts#97
  • Implements rating feature
  • In-App notification & Browser notification with Drizzle & Service Worker (Experimental)

Minor UI change in text display

I'm proposing minor changes in how we display text

  • [] For job that is already started, we should display it as "In Progress" status. This will have proper meaning than "Started".
  • [] On the Bid screen, we should change the "Award BBO" text to "Bid Amount", for reflecting the behavior properly.

Wrong job budget displaying

Describe the bug
Job budget in Manage view and detail view is different

To Reproduce

  1. Post a job. Select any budget, "Small Budget" for example
  2. Waiting for the job being created
  3. Go to Manage view, check the Job Budget amount
  4. Click to the Job, check the Job Budget amount

Expected behavior
Those 2 amount should be the same

Screenshots
Manage View:
screen shot 2018-08-27 at 4 13 54 pm
Detail View:
screen shot 2018-08-27 at 4 14 10 pm

Desktop (please complete the following information):

  • OS: MacOS High Sierra
  • Browser: Chrome
  • Version: 68.0.3440.106 (Official Build) (64-bit)

Add "Place new bid" button

Is your feature request related to a problem? Please describe.
Since we let people to replace their previous bid in contract side, we should allow that from DApp side also

Describe the solution you'd like
Adding new button, "Place new bid", allow to submit a new bid, replacing current one
Cancel bid button still the same.

A collection of feedbacks for 0.0.2 Release

After we release version 0.0.2, we conducted a feedback bounty program, for getting user feedback about our application. We collected 35 responses so far. Based on what people telling us, below are the most highlighted feedbacks:

  • Most of the participants say that they're excited with the Marketplace's first features. Only 8.6% say that they are "slightly excited". Nobody says that they are not excited with the product

  • People is liking the design the most. Many of the comments about the design are "Friendly", "Easy to use", "Clear design". This is a very interesting thing to us, since this design is a not a completed design yet.

  • People is complaining the most about the involvement with Metamask. One of the biggest disadvantage from the Marketplace is it does not automatically connect to Metamask wallet every time we refresh the browser. One other thing is depends on Ethereum confirmation speed. If we can improve this user experience, by combining multiple techniques, such as automatically Metamask/Hardware Wallet detection, remember last choice of wallet authentication, or using a layer-2 scaling solution, it will gives people less latency using this application.

  • When asking about competitors, people name quite many names, ranging from non-blockchain to blockchain-backed solutions. Upwork, Fiverr, Fivebucks, Zinc, Zirtual, Blockfreelance, Freelancer Coin are popular among their answer. Even they put Linkedin into the list.

  • People is showing very high engagement with the Marketplace. More than 60% says that they will switch from other competitors to using Bigbom Marketplace if it's launched on Mainnet.

  • For the next release, people is calling for Mobile-Friendly version, useful contents, auto reconnection with Wallets when refresh, improving speed and adding more tutorials onto the website.

From these feedback, we will conduct internal discussion, and select the features / improvements that we think it will have greatly impact to user experiences into the next release. Of course we won't abandon other suggestions, all of it will be accounted in our future development plans. We want to show a huge gratitude to the community for giving their feedbacks to this version, and we looking to having more and more feedback in the future.

Original source of the feedbacks can be found here: https://docs.google.com/spreadsheets/d/1Vj47671yQux_UifOoLX7ST-WcMgM6q3NhBwukvnu-aM/edit?usp=sharing

Empowerment of individuals is a key part of what makes open source work, since in the end, innovations tend to come from small groups, not from large, structured efforts.
Tim O'Reilly

Job Categories and Skills table

Support skills and job categories as following:

Category:

  • Search Advertising
  • Social Advertising
  • Design
  • Others

Skills:

  • HTML
  • CSS
  • Javascript
  • Photoshop
  • Animation
  • Video
  • Flash

Wrong description of Estimated Time

Describe the bug
Display wrong text for the "Estimated Time"

To Reproduce

  1. Login as Freelancer
  2. Create a Job
  3. Check the "Estimated Time" input. The current text says "Select a category for your job".

Expected behavior
It should display a text to describe the purpose for "Estimated Time"

Screenshots
screen shot 2018-08-27 at 4 07 52 pm

Making confirmation dialogue more detail

Currently some of the confirmation dialogue is not very specific, especially when token balance is going to have a change (like making payment, deposit, rewards, etc....). We should put more contents to explain about what is going to happens before actually making transaction.

Details about which step, and which content to put could be found HERE

Issues need to be done before the release of 0.0.3

Before we can release version 0.0.3, following issues need to be done:

  1. Basic Profile: Implement basic profile features for dApp, includes:
    a. Login screen using Metamask. Hardware wallet support must be use alongside with Metamask
    b. Ability to authenticate using Metamask via REST API
    c. Allow linking Ethereum wallet to email address
    d. Support multi-wallet linking for a single profile

  2. UI: Making some tweaks for our UI:
    a. Only allow voter to select their choices & review the evidence on the Voting Pop-Up.
    b. Remove the shortcut "Create a Job like this" on the Freelancer view

  3. UX: Set the fallback screen for "Permission Deny" page.

  4. Contents: Before we release the 0.0.3 version to public, we should populate the contents, including jobs, bid, etc.... Jobs data should be crawl from other websites for demonstration purpose.

Showing marketplace's parameters on dApp

In order to have better understanding about Marketplace's parameters, we should display this table in dApp

Name Description Value RealParams
Payment Parameters
Payment duration Maximum duration for accepting payment hours paymentLimitTimestamp
Dispute filing duration Maximum duration to file a dispute after payment is rejected hours rejectedPaymentLimitTimestamp
Voting Parameters
Min votes Minimum votes can cast for a dispute interger minVotes
Max votes Maximum votes can cast for a dispute interger maxVotes
Deposit for staking Amount of Tokens needed to deposit before starting a dispute interger stakeDeposit
Time for evidence Duration for putting evidences for a dispute. After this duration, it's not possible to submit evidences and being considered looser hours evidenceDuration
Commit duration Duration for committing votes hours commitDuration
Reveal duration Duration for revealing votes hours revealDuration
Additional bonus Additional bonus from Bigbom by BBO. Voters on either winning or loosing bloc will get this reward for each poll they participated interger bboRewards

Change Loading Waiting to In Progress Bar

*Change Loading Waiting to In Progress Bar

Change UI for loading status, from Loading Waiting to In Progress Bar on the top.
Content will be not hidden while user waiting for new data render and user has better experience in waiting moment

Making smarter time counter for each step of a job

Is your feature request related to a problem? Please describe.
Currently we're displaying a counter, count down to the expired time of a bid. But after a winner is selected, this is no longer valid.
Also we have several scenarios that need to show the time counter, like how long until the job is going to be finished, or how long before a payment can be claimed, etc.....

Describe the solution you'd like
Defining proper time for each phase of a job, and displaying countdown accordingly

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.