Do not bid over $220. Do NOT apply if you have <80% completion rate or <3.75/5 rating.
You will build the simple MySQL/PHP/AJAX/PAYPAL backend and frontend ticket system for this:
Simple:
0. The system displays upcoming shows, the comedians on the shows, and the logo and credit of their top credit. (as shown here: [login to view URL] )
1. The user clicks "reserve on a show". They are asked for:
- Number of tickets (Maximum is 4 per email per show)
- First Name,
- Last Name,
- Email (required to email ticket),
- Home City (use FREEBASE: [login to view URL] )
- Cellphone (Display this if they select a city in the USA. And write: "Required: We text guests a reminder of the show that day. We hate spam."),
- Text: by reserving you accept: <show terms>
- BUTTON: "RESERVE TICKETS" or if there is a cost per ticket "PAY $<total> TO RESERVE"
2. The information is validated with JQUERY and if it is incorrect a red box above the form asks them to correct or complete the items:
3. They are shown the PayPal form to pay (on the paypal site).
4. They are taken back upon payment AND the system emails them their tickets:
"Dear <b><first name> <last name></b>,
Here are your tickets to <b><Show Title></b>:
Date: <b>Thursday, May 2, 2014</b>.
Time: <b>7:30pm</b>
<include show terms>
<include site terms>
This is an automatic email. Do not reply. Email: <site_support_email> with questions.
"
____________
The backend:
1. Admin Login
2. Create Show: Datetime_start, title, +add comedian (Autocomplete), +Create & Add Comedian, tix price, etc...
3. Edit Show
3b. View/Edit Show Ticket Sales (ALL THESE FIELDS SHOULD BE EDITABLE INLINE VIA AJAX: mark paid/unpaid, edit qty of tickets, add_discount, make_comped (free), edit name, edit email, edit phone, check-in/uncheck-in)
5. Add/Edit Comedian (upload photo; photo should be cropped square 216x216, 108x108, and 54x54); this should be AJAX so admin can do this while creating/editing show or creating/editing comedian)
5. Add Credit (upload photo; photo should be cropped square 216x216, 108x108, and 54x54); this should be AJAX so admin can do this while creating/editing show or creating/editing comedian)
TABLE shows
COLUMNS (id, datetime_start, datetime_end (defaults to 90minutes after datetime_start), price_per_ticket (default is $10), price_description ("$7, includes your first drink."), max_tickets (after this number of tickets are sold, the system will only take waitlist reservations), max_waitlist (after this number of tickets are put on waitlist the system won't take more waitlists), active_yn (if 0, don't display on frontend), show_terms (text ex: "2 item minimum. lineup subject to change. no recording. 21+ to enter"), show_special_offer (text: "Special Offer: Come early at 6pm and save 20% on dinner. Requires ticket.").
TABLE comedians (id, first_name, last_name, email, cell_phone, gender, birthdate (yyyy-mm-dd), bio, main_credit_id (links to TABLE credits))
TABLE credits (id, title, active_yn, score (a number, by which we sort the display of the credits))
TABLE link_comedians_to_shows (links comedians to shows via "[login to view URL]" and "[login to view URL]"): COLUMNS: comedian_id, show_id, hide_YN (if 1, then hide the comedian from the frontend), internal_note (text the producers can see).
TABLE link_credits_to_comedians (links credits to comedians via id) UNIQUE to avoid duplicates.
TABLE tickets (id, show_id, datetime_created, paid_yn, attended_yn, total_paid, qty_tix, first_name, last_name, email, cellphone, home_city [FREEBASE], local_NYC_resident_YN, referall_source (text), referal_comedian_id (if a comedian referred to show, we pass $ref_cid, where ID is the ID of the comedian )
TABLE site_variable (id, title, subtitle, domain, universal_terms (text ex "No refunds or exchanges. Lineups subject to change. No recording of any kind."), default_show_terms (text), support_email, paypal_email)