Skip to content

Fun-o-Matic

Sections
Personal tools
You are here: Home » Detailed Design Documents » Customer DB Requirements

Customer DB Requirements

Requirements for the Customer Database Module.

Use Cases

  • Customer check-in (for both regular and anonymous customers)
    • Customer identifies self (name or nickname) or presents barcoded ID card
    • Attendant enters ID info into system; list of possible matches displayed, along with account status and balances. This "search" feature allows wildcards
    • Attendant selects the name/account they want and presses "Select" -or- enters new name/account info and presses "Create"
    • Attendant adds money to account if needed
    • Attendant selects desk assignment
  • Customer check-out
    • Attendant selects desk assigned to customer, selects "Check Out"
    • System displays time remaining on customer's account
  • Customer check-in or check-out override (for NCI or NCO)
  • Customer change desk
    • Attendant selects desk assigned to customer, drags over new desk
  • Customer checked-in makes payment
  • Customer not checked-in makes payment
    • Attendant goes through select process, but instead of clicking "Check In", clicks "Add Time" instead
  • Display customer history
    • Attendant goes through select process, clicks on "Show History"
  • Create new customer record
  • Reserve a game station (or cancel a reservation)

Hog/ShowGames Integration

  • Hog/ShowGames integration is optional--the database should be useful (although not fully functional) even if Hog and ShowGames are not deployed
  • A background process (or cron process) can watch ShowGames v2 idle status of each machine;
  • if it appears that a machine with a customer assigned is idle for more than a set amount of time, flag the attendant
  • if it appears a machine with no customer assigned is NOT idle, flag the attendant
  • Which games the customer is playing should be recorded; either by ShowGames2 itself (by looking at Customer Database data as it does its scan) or by the background process, which uses ShowGames2's data.
  • Maybe cause desktop to be locked out somehow until customer is assigned to that computer?

Other notes

  • Customers must be able to view their account balance and history on web
  • Be able to correlate against cash register: track amounts paid during the day, and what promotional prices were used
  • Customer database is shared with PHP-Nuke user database
  • Customers accessing via web authenticate with PHP-Nuke
  • Customers who haven't signed up on web must still be in database, but in a way that won't interfere with PHP-Nuke operation
  • Database must allow us to track
    • revenue by game
    • revenue by customer
    • customer behavior
  • Database must be able to hold geographical data on each customer for feeding to GIS applications
  • Must be able to handle a variety of different types of promotion:
    • Customer free time
    • Staff free time
    • Discount coupons
    • Club membership
    • Frequent-player
    • Quantity discount
    • Group discount
    • All excess time banked versus members only versus none
  • Must be able to handle common styles of operation:
    • Prepay
    • Postpay
    • Membership
    • Ticket-based
    • Account holds time versus account holds money
    • Vary pricing by time of day, day of week, whether day is in table (holiday)
  • Adaptable to different national currencies
  • Customers must be able to share accounts if they want--several names on a single account--but if they do, the database should track which specific individual on the account uses time on any given occasion
  • Customers should be able to make reservations charged to time in their account from the web interface
  • Compatible with managing multiple stores with single set of roll-up reports
  • Since Cust. Database is tracking how much time people have and what seat they are in, it can provide warnings/reminders to the attendant, and, if enabled, can play audio reminders for customers, too.

Database structure

  • PHP-Nuke has nickname, password, reg date: we don't add any fields to Nuke, only use what's there. Also, we do NOT use the name field in Nuke (because we want to keep first/last name separate). If a deployment isn't using PHP-Nuke, they can just create their own DB here to substitute.
  • user_id
  • name
  • username
  • user_email
  • user_regdate
  • user_password
  • Users:
    • Customer ID
    • Last Name
    • First Name
    • Account ID
    • Photo ID
    • Grade Time Balance
  • Accounts:
    • Account ID
    • Time Balance
    • Account Notes
  • Transactions:
    • Transaction ID
    • Date/Time
    • User ID
    • Account ID
    • Transaction Type (Buy, Use, Transfer, etc.)
  • Groups (for tracking customer affiliation groups):
    • Group ID
    • Group Name
  • Photos:
    • Photo ID (because we might want to use generic photos for multiple customers)
    • Photo
Created by woody
Last modified 2005-02-10 09:50 PM
 

Powered by Plone

This site conforms to the following standards: