Skip to content

Membership

Josh edited this page Jul 2, 2024 · 10 revisions

image Members are both the users of the system and the meta data about them in the organization.

erDiagram
    members {
        longtext additional_info 
        date background_check_expires_on 
        int birth_month 
        int birth_year 
        int branch_id FK 
        varchar city 
        datetime created 
        int created_by 
        datetime deleted 
        varchar email_address UK 
        int failed_login_attempts 
        varchar first_name 
        int id PK 
        datetime last_failed_login 
        datetime last_login 
        varchar last_name 
        varchar membership_card_path 
        date membership_expires_on 
        varchar membership_number 
        varchar middle_name 
        varchar mobile_card_token 
        datetime modified 
        int modified_by 
        int parent_id 
        varchar password 
        varchar password_token 
        datetime password_token_expires_on 
        varchar phone_number 
        varchar sca_name 
        varchar state 
        varchar status 
        varchar street_address 
        int verified_by 
        datetime verified_date 
        varchar zip 
    }
    member_roles }o--|| members : "approver_id"
    member_roles }o--|| members : "member_id"
    members }o--|| branches : "branch_id"
    officers_officers }o--|| members : "member_id"
Loading

Member core data consists of:

  • SCA Name: The SCA name they go by
  • Legal First, Middle and Last names
  • Branch: The branch they are associated to
  • Membership Number: Their membership number is confirmed and added to the account by a verification process
  • Member Expiration: When their membership expires, not editable by the user.
  • Address, City, State, Zip: Address info (not required)
  • Phone Number: not required
  • Birth Month & Year: Used to calculate age and manage youth access
  • Parent: Association to a parent for youth accounts. Like Membership this is managed by a separate process
  • Status: their current state in the system
    • active: Member CAN log in but their membership information is not available or has not been verified
    • verified: Member CAN log in and their membership has been verified
    • unverified minor: Member CAN NOT log in until a parent account has been associated to them
    • < 18 member verified: Member CAN NOT log in until a parent account has been associated but their membership information has been verified
    • < 18 parent veriified: Member CAN log in but their membership has not been verified
    • verified < 18: Member CAN log in because their parent has been associated and their membership has been verified.
    • deactivated: Member is locked out of the system until they are placed back in a valid status.
  • List of Roles: The roles (current, upcoming, and previous) that a user has been granted
  • Notes: Public and private notes associated with the Member.
  • Additional Information: Extendable data configurable through App Settings
  • Activities: The activity authorization information (see Activities)
  • Offices: The officer information (see Officers)

Member Verification

When a member registers their is a workflow to manage verifying required information to be fully enabled.

graph TD;
    new[New Registration]-->age[Are they 18 or older?]
    age-- yes --> adult[Verify Membership Information]
    adult -- Good Info --> goodA[Status upated to 'verified']
    age -- no --> youth[Asssociate Parent Record]
    age -- no --> youth2[Verify Membership Information]
    youth -- yes --> youthGood1[Status changed to '< 18 parent verified']
    youth2 -- yes --> youthGood2[Status changed to '< 18 member verified']
    youthGood1 -- Has Good Membership Info --> youthfinal[Status changed to 'verified < 18']
    youthGood2 -- Has Parent Associated --> youthfinal
Loading

Member Cards

There are two types of Member cards that can be rendered.

Member cards consist of some basic information about the member and then plugin's can inject additional data. Currently the Activity plugin injects what activities a member can authorize and what authorizations a member has.

Web Member card

image

These are accessible from the UI for the Member under their name by clicking on "My Auth Card"

Mobile Card

image

The Mobile card is a progressive web app that can be installed on members homescreens. This is done by sending a link to their email that they then answer on their phone. Once installed the card will have a cache of its last read from the system and when on line updates every 5 minutes. There is also a refresh button on the card for more immidate updates when online.

Mobile cards do not require login, the link sent to the member has a mobile token that is a 16 byte random code to allow that token to view exactly that 1 card.

Once added as a app to their home page the card will have an icon and name on their phone and be easy to access.

What about Apple or Android Wallets? An Apple Wallet or Android wallet pass could be developed but they require developer agreements (which should be done at the Corporate level) also Apple requires a nominal fee of $99/year to maintain that developer agreemement.

Clone this wiki locally