-
Notifications
You must be signed in to change notification settings - Fork 2
Design: Locker Sale
Currently, the Locker Sale is done in person. A member of EESoc is required to sit in the computer lab for several hours, collecting money and assigning locker numbers. This is both cumbersome for the society (time waste, excel) and can be irritating for people who can't make it. Additionally, cash in hand shouldn't be collected by us.
We want to have an online process which allows members of EESoc to purchase a locker, and give us their locker preferences. Locker preferences can be broken down into:
- Precise locker number
- We give them a locker number based on their exact preference. If for some reason we can't give them that number (shouldn't happen!), we give them next best
- General locker preferences (provide ONE or BOTH of following)
- Locker Floor
- Locker Height (Top locker, medium locker, bottom locker)
The process should be as follows:
- Member purchases a locker from the Imperial College Union website first
- They log into www.eesoc.com. If they have registered, they can fill out their preferences, otherwise, they are asked to purchase (with a link). Preference form should ask for EITHER:
- Exact locker number
- Locker Preference (ONE or BOTH: Floor, Height)
- On the server side, we need to store:
- Full Name
- User Name (for emailing!)
- Submit Date
- Locker Preferences. Locker numbers are 3 digits long. I'll try getting a complete list of locker numbers tomorrow when I'm in college, and see how they map to floor or height.
- Locker Preferences related to height and floor should be STORED - please do not assign them a locker number.
- On submit or using background javascript (As preferred), we should notify the user if they've chosen a locker that has already been picked by someone else, or if preferences might not be met.
If it's not hard, they should be able to amend their preference, but this should come at a cost.
If you will implement this, please don't track previous submissions - if they decide to change their preference, act as if they never submited something the first time. This let's us be fair with assigning lockers.
Please add a warning message when editing saying that we work on a "first come first served" bases, and that they will be put at the back of the list when editing.
There is no requirement to give us preferences - users are free to purchase a locker online, but not submit this form. We should not assume everyone fills this out. Close to the end, we should find a way to insert all member who have purchased but not filled in preferences into the database to assign them a nice locker.
if possible, not required Stats that would be cool to see when applying for locker:
- Each floor, % of lockers left. Pull data from floor preference and locker number
- Comparatively, the preferences of locker height (e.g. 40% of locker preferences are middle, 40% top, 20% bottom).
- This is tricky to implement, since there is both the "locker number" and "height" preference. I suggest we look only at "height" preference, unless there is a very easy algorithmic way to see what height each locker number is.
At the end, we want to have a list of the following:
- List of all username and names who bought
- A timestamp, either related to when they bought or submited the form.
- Locker Preference
The system needs (script and all) to be ready for the first or second week of term, when lockers go on sale. This script must check with ICU online shop to see if the member has purchased a locker. Only when the product has gone on sale on the ICU shop, does this need to function.