Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement contest creation #19

Closed
7 tasks done
nathanielhourt opened this issue Dec 16, 2015 · 3 comments
Closed
7 tasks done

Implement contest creation #19

nathanielhourt opened this issue Dec 16, 2015 · 3 comments

Comments

@nathanielhourt
Copy link
Contributor

Several components here:

  • Add data types and APIs to capnp schemas
  • Add QML wrappers for new capnp data types
  • Add support in BackendWrapper for getting and submitting contest creation request wrapper
  • Add GUI support for filling out the contest creation request wrapper
  • Add GUI support for making the purchase
  • Add support in ChainAdaptorWrapper for making the purchase
  • Add stub server support for fulfilling the request

In the data types and APIs section, we need a price schedule type which contains all of the prices for contest creation, and an API to fetch it; as well as a contest creation request type which specifies all of the necessary information for the server to create the contest, and an API to submit it in return for a purchase interface.

We need QML friendly wrappers for the contest creation request and the price schedule.

The information we are collecting to create the contest is the title, question/description, contestant list, stake coin, and sponsorship details. The sponsorship details include the number of sponsored votes to buy, the limit of votes to sponsor, the end date of vote sponsorship, and whether or not to show the contest in voter feeds if sponsorship is unavailable.

@nathanielhourt nathanielhourt self-assigned this Dec 16, 2015
@akernest akernest added this to the Phase 2: UI/UX milestone Jan 4, 2016
@nathanielhourt
Copy link
Contributor Author

The form for contest creation needs to collect the following from the user:

  • Contest details
    • Type (different types have different base costs)
    • Name (limit length?)
    • Contest description (limit length or charge more for long ones?)
    • Weight coin
    • Contestant count (more contestants may cost more money)
    • Contestant names and descriptions (limit length?)
    • End date (optional, may run forever)
  • Sponsorship options
    • Sponsor votes?
    • Offer voting incentive?
    • Max number of votes to sponsor?
    • End date of sponsorship?
    • Max number of vote changes per voter to sponsor?
  • Promo codes
  • Need more VOTE to checkout/fulfill sponsorships?

nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 7, 2016
@nathanielhourt
Copy link
Contributor Author

nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 7, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 7, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 11, 2016
Currently working on creating enum classes for the contest limits and
price line items. Everything's OK so far, except QML always says the
enum values are "undefined"
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 12, 2016
Apparently it's required that enum values start with an uppercase
letter.
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 12, 2016
Rather than making ContestCreator an implementation detail of
BackendWrapper, I went ahead and created a full wrapper for it which is
now exposed as a property of BackendWrapper.
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 12, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 13, 2016
I've renamed all the wrapper classes to have Wrapper in their name,
which makes them easier to distinguish from the capnp types beneath.

I've also refactored main to use macros to eliminate redundant code in
the QML type registrations.

Finally, I've added some properties to PurchaseContestRequestWrapper
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 13, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 13, 2016
…tRequestWrapper

Also, refactor all inline methods to the cpp file, more cleanup with
macros
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 14, 2016
@nathanielhourt nathanielhourt mentioned this issue Jan 15, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 15, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 19, 2016
I still need to make a QML wrapper for Purchase APIs, to give QML access
to the Purchase API returned by purchaseContest
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 19, 2016
Begin implementation of PurchaseWrapper, which wraps CapnP Purchase
APIs. Complete notification is done, still to do is getting prces,
notifying server of payment
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Jan 20, 2016
All QML wrappers necessary for purchases should be complete now.
Application infrastructure for requesting contest creation should be
complete now.
@nathanielhourt
Copy link
Contributor Author

For the GUI sections of this issue, we first need to at least start #20 since the created contests page is the only way to access the create new contest UI.

nathanielhourt added a commit that referenced this issue Jan 20, 2016
Also, refactor all inline methods to the cpp file, more cleanup with
macros
nathanielhourt added a commit that referenced this issue Jan 20, 2016
I still need to make a QML wrapper for Purchase APIs, to give QML access
to the Purchase API returned by purchaseContest
nathanielhourt added a commit that referenced this issue Jan 20, 2016
Begin implementation of PurchaseWrapper, which wraps CapnP Purchase
APIs. Complete notification is done, still to do is getting prces,
notifying server of payment
nathanielhourt added a commit that referenced this issue Jan 20, 2016
All QML wrappers necessary for purchases should be complete now.
Application infrastructure for requesting contest creation should be
complete now.
nathanielhourt pushed a commit that referenced this issue Jan 20, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 3, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 5, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 8, 2016
NOTE: We now dep Qt 5.6 (currently in beta)
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 8, 2016
nathanielhourt pushed a commit that referenced this issue Feb 8, 2016
kalli8 pushed a commit to kalli8/StakeWeightedVoting that referenced this issue Feb 8, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 9, 2016
Need to replace this with a proper date/time picker, but neither Quick
nor V-Play has one of these, so we'll need to make our own or snag
someone else's
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 9, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 11, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Feb 11, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Mar 9, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Mar 10, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Mar 11, 2016
Simplify some of the code around the contestants, redesign
PurchaseContestRequest to be a one-off rather than persistently held and
filled out by CreateContestPage.qml, move promo codes back to the
purchasing API (it's much cleaner to have them there; otherwise, I have
to resubmit the entire creation request every time I want to try a new
code).
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Mar 11, 2016
Fix PromiseWrapper; check more error conditions in backend; handle
errors properly in GUI
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Mar 11, 2016
nathanielhourt added a commit that referenced this issue Mar 11, 2016
nathanielhourt added a commit to nathanielhourt/StakeWeightedVoting that referenced this issue Mar 14, 2016
nathanielhourt added a commit that referenced this issue Mar 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants