Code Monkey home page Code Monkey logo

registration-webapp's People

Contributors

tintinnabulate avatar

Stargazers

 avatar

Watchers

 avatar

registration-webapp's Issues

Support QR code checking

  1. Generate QR code image from some unique registration ID (https://registration-webapp/qr/Stripe_Charge_ID?)
  2. Email QR code image to registrant using their email address
    1. What happens if one email address has multiple Stripe_Charge_IDs associated with it? Ideally send 1 email with multiple QR codes to save spamming them/save confusion.
  3. At the convention, registration committee member scans QR code from registrant using a QR code scanner
  4. QR code scanner decodes QR code, launches web browser, which visits https://registration-webapp/qr/Stripe_Charge_ID
  5. Handler in registration webapp func getStripeChargeID(ctx context.Context, r *http.Request, w http.ResponseWriter) does a database lookup to see if that Stripe_Charge_ID is NOT in the Scanned table. If it is, Fail, If it's not, then check its in the User table. If it is, then Succeed, if it's not then Fail

Create a version that is db-agnostic

Ideally we won't be so tightly coupled with Google Appengine's Datastore.

I'd like to be able to easily swap in different databases e.g. sqlite, postgres, etc.

What is the impact of not having sessions.NewCookieStore key rotation?

Do we need to use the github.com/gorilla/sessions key rotation?

At the moment, we don't have it. Write a test to assess the impact of not having rotation of store and encryption keys, and if it's not a problem, leave it. If it is a problem we may need to add it as per the example on http://www.gorillatoolkit.org/pkg/sessions

var store = sessions.NewCookieStore(
    []byte("new-authentication-key"),
    []byte("new-encryption-key"),
    []byte("old-authentication-key"),
    []byte("old-encryption-key"),
)

New Stripe Customer created despite using pre-existing email address

At the moment, the app will create a new Customer object in Stripe even if the same email address already exists in Stripe.

This is silly, and will make checking pre-registration a pain in the future!

The fix will involve checking if the entered email address already exists in the User table. If it does, use that Customer ID for the new payment, otherwise create a new Customer.

[SCANCYPAA 2020] Add richer Description in Stripe payments

Currently, Stripe payments Description field just says "SCANCYPAA Registration". We want to improve this, by having:

  • First Name
  • Email
  • Tshirt?
  • From (Country + City)
  • Fellowship?
  • Helper?
  • Outreach?

So that these details can be visible from Stripe.

Donate-a-reg: In a separate payment form, separate to the registration form, add the feature to donate one/two/X registration fees

In a separate payment form, separate to the registration form, add the feature to donate one/two/X registration fees of EUR20.00, where X is a number specified by the donator.

ENGLISH:
"We know many love EURYPAA, but some can't make it (which sucks). If you would like to support the convention, please feel free to donate 1, 2 or more registrations for newcomers and help support the event."

SPANISH:
"Sabemos que son muchos los que les encanta EURYPAA, pero algunos no pueden asistir (qué lástima!). Si deseas apoyar la convención, puedes donar 1, 2 o más inscripciones para recién llegados y ayudar apoyar el evento".

If we can have it in Spanish as well, I guess there might be text in the option box that would need to be translated too. If so, let me know and we can translate this too.

Estimated time to complete: 3 weeks.

[Online 2020] for donations, remove need for email verification flow?

Proposal

This issue proposes removing the verification flow entirely, going straight to the /register endpoint.

Rationale against change

Currently the form mails a verification link to each donator's email address so that we KNOW we have a valid email address.

  • This makes it possible to issue refunds with Stripe.

Rationale in favour of change

For the Online 2020 convention, we are asking for a donation, NOT a registration fee... so they're very unlikely to request a refund.

  • Much quicker to take donation.
  • However - we are no longer guaranteed to be able to issue refunds because they may enter an invalid email address.

Implement low priority enhancements

  • Does the form have validation ? E.g. needed fields?
  • Can the databse be wiped and reused fresh again the next year? Or is the data backed up as required and the process is then restarted?
  • What is the initial form field?
  • Since IRE and EUR use the same codebase, why not just have one app, and have /eury/signup and /irey/signup select which registration form to load?
  • Fix go lint warnings.
  • Use eury email provider to send out verification email
  • Use Braintree? Stripe can only receive payments in 26 countries, whereas
    Braintree can receive payments in 45 countries!
  • Add registration pin map showing country/city where people have registered from (Google Maps?)
  • Status Bar:

IsSelfSupporting

/selfsupporting that returns true / false

Compare a Convention db entry with Stripe API query

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.