Overview
People and Memberships are the core of this application. A person is stored as a record in apeople
table in the database. A person must have a unique email address to sign up or
otherwise manage their own memberships and information. Every time a person makes a payment to
begin or renew their membership, we log the information about their payment and the term of the
membership. This allows us to accrue the full history of a person’s memberships and payments,
and to ensure uninterrupted membership. Note that we can record information about important
people who are not members, like key contacts with our partners. These people can easily be
distinguished from members and other people through their roles and membership information.
Each person will use their email address
and a password to sign in. Existing members will not have a password, but can use their email
address to receive a password reset email, and then sign in with the password of their choice. This
allows people to manage all of their information that they choose to share with us, view the
status of their membership, and renew their memberships. Having this information properly associated
to each person reduces the need for members to re-enter all of their contact information whenever they
renew, and makes for a smoother overall membership experience. Some people may not wish to manage
another password, and we will provide convenient and secure ways to renew memberships without needing
to sign in. More on that in the following sections.
Person Dashboard
When a person logs in to the application, they will be presented with a page that displays the information that they’ve previously submitted to us. This includes contact information, interests, and a host of other optional information. A person has the option to edit any of this information at any time, and our records will remain in sync. A person can also see the status of their membership, and are presented with the option to renew if their membership has expired.Roles
Roles are brief descriptors that can be assigned to people. A person can have many different roles. Each role can be used to denote any number of different things. For example, every person who paid for a membership at some point in time can have the Member role. Whether they are active or not depends on their payments, but the term “Member” is useful to describe how they are related to the club. Likewise, we can identify officers and position holders with roles. We could also choose to identify membership in our Google Groups as a role assigned to each person. Each role comes with a description and an email address, for cases where a role represents some larger group that we have an email address for (i.e. imagers Google Group).Signup Flow
Renewal Flow
Database Representation
People have the following attributes and relations: A person has…- One
first_name
and onelast_name
- An internal
id
- Optional extra information, like…
- Associated astrobin data (username, latest image id)
- A
discord_id
- One or more contact objects that contain:
- An address
- An email
- A phone number
- An indicator if this is primary contact information or not
- Zero or more interests (such as: “solar system,” “astrophotography,” etc)
- Zero or one referral (i.e. website, search, school, other)
- Zero or more donations each containing one or more items (or cash)