ZeusWPI / FK-enrolment

Enrolment system for new members of FK-clubs at Ghent University.
http://zeus.ugent.be
BSD 3-Clause "New" or "Revised" License
7 stars 0 forks source link

Add the possibility to enable/disable ISIC-registration on a user-basis #31

Closed TomNaessens closed 9 years ago

TomNaessens commented 10 years ago

This doesn't seem very hard to do, we can add a checkbox to the registration (if the club allows this) to register for an ISIC card or just a regular FK-card.

To summarize, the ISIC-logic should be moved from Club-basis to a User- or Cardbasis. Clubs should be able to choose between FK-cards only, ISIC-cards only, FK- and ISIC-cards.

TomNaessens commented 9 years ago

The problem here is the assignment of card numbers. At the moment, there are two options.

A club only allows FK-cards

A club has a stack of cards with preprinted numbers (FK-numbers) on them. When a student registers, they get added as a user to the users of that club. When a user pays for this card, an admin searches the users name, clicks "pay", grabs a card from the stack, enters the number on that card on the pay wizard. Then a card gets created and linked to the user with the filled in number. These FK-numbers are uniquely defined within an academic year. Every club has a large range of 10.000(?) numbers, so a number also defines a club.

A club only allows ISIC-cards

When a user registers in a club which only allows ISIC-cards, the club works with a stack of temporary cards. When a user registers and pays, the admin of the club searches the numbers and just clicks on "pay", no number has to be filled in; this number is automaticly assigned by taking the highest number so far and adding one. After a user has paid, we do an API call to ISIC. After a week, ISIC prints the cards and they get returned to the members so the members have an official ISIC card. (I don't know wether the FK number is printed on these cards or not @Thoge @BenoitDeVrieze @maartenhbe?)

This year, we've tried to simulate this options by specifying ranges of dates when a club would be FK-only or ISIC-only, this worked fine until two things happened:

  1. when we switched from FK to ISIC and back, printed FK cards became useless as the "autoincrement" from ISIC already assigned these FK-numbers to ISIC-cards
  2. people would register at wrong times with higher payments (ISIC costs more than FK) and confusion

Core problem when allowing both with the current system

The following problems can occur when we let the users choose with the following system:

Club Tsemoanie prints 1000 FK cards (numbers ranging from 1-1000), and allow a mixed registration of FK cards and ISIC cards. 10 people order an FK card, assigning numbers 991 - 1000 (because the card of stacks has been reversely sorted). The next person orders an ISIC card, automaticly asigning the highest number + 1, being 1001, which falls out of the number range from the club.

A less problematic problem is when the stack of cards is sorted: 10 people get cards 1 - 10. Then an ISIC person comes around, gets number 11 automaticly. The next FK card on the stack is number 11, and people get confused why the system won't accept the number.

TLDR

Having a shared range for both FK cards and ISIC cards is bad.

TomNaessens commented 9 years ago

If FK numbers are printed at the ISIC cards, an easy solution would be to unify the logic of entering FK-numbers for ISIC cards. This would however result into the "temporary cards" to also contain a unique ID, which could result into an extra cost for the clubs (again, not sure here @Thoge @BenoitDeVrieze @maartenhbe?)

maartenhbe commented 9 years ago

FK numers are printed on the ISIC cards because we ask them to ;) The barcode on the ISIC cards is the ISIC number. However, I think we have enough reasons why they should use the FK number for the barcode instead of the ISIC number.

About the temporary cards, FK can design them to include a field to fill in the temporary FK number.

Finally, I would go for the unify logic. This would also make it easier to add another third party card provider if the FK "kringen" decide to drop ISIC in favour of another provider.

Thoge commented 9 years ago

Don't forget to update the API (and documentation about how to use it)

TomNaessens commented 9 years ago

Club ranges are => [15020000..15029999, 15030000..15039999, 15320000..15329999, 15260000..15269999, 15250000..15259999, 15040000..15049999, 15050000..15059999, 15060000..15069999, ....

This means that every club has 10.000 numbers. We could split these into 5.000 for FK cards an 5.000 for ISIC cards, which seems like the easiest solution to me.

TomNaessens commented 9 years ago

Fixed, merged and deployed!