This repository contains Klynge Næringsforening's Sanity Studio. In this tool, we manage all memberships, including personal data such as name, address, privacy options, membership status and organizations associated with Klynge.
graph TD;
Membership---Person
Person
Person-- "(many to many)" ---Organization
Organization
Membership
Membership---MembershipYear
MembershipYear
Note: When the relationship is not annotated, they are one-to-one relationships.
The graph above shows the relationships between the data. Person
can have
multiple organizations connected to it to describe which organization the person
works for.
A Membership
describes if a Member
has membership within a MembershipYear
,
and which entity to invoice for the membership. Where MembershipYear
describes
a year of membership.
To promote standardization and normalization we build our schemas based on Schema.org. We are not fully implementing the schemas, but picking the fields we need and in some cases adding new fields. One example is storing information about privacy close to the data it concerns.
We are trying to closely comply with Schema.org schemas, we also benefit of using these schemas when using structured data in web applications and the like. There's also a higher level of descriptions of our data.
Person
is derived from schema.org/PersonOrganization
is derived from schema.org/OrganizationAddress
is derived from schema.org/PostalAddressworksFor
is derived from schema.org/worksFor
There's a video guiding through how this is managed (in Norwegian): https://youtu.be/h17l6JM3q-E
Klynge.Naeringsforening.Desk.-.25.February.2023.mp4
Prerequisite: You'll need to have access to studio, it's safe to assume someone with a board member role at Klynge to have access and be able to share that.
To add new members, click on the Person in the studio editor. Click the document and pencil icon to add a new member. In this form, you'll see the given and family name, e-mail, phone number, address and image. We only require the given and family name, email and phone number.
Note: If the address is missing, we're not able to send an invoice to this person (but it can be sent to another person or organization). If a profile image is missing and the information is made publicly available, we use Gravatar to resolve that (or default to a default image).
With a Person
created, we can add a membership to that person. To add a
membership, go to Medlemskap and click the add button where you'll refer the
member you recently created. You should leave the status field as the default
value (Venter).
There's also a video guide about how to add a new member along with some general descriptions of the different document types. The video is in Norwegian.
GraphQL is available here: https://95rc74zt.api.sanity.io/v1/graphql/production/default
Note: You will need an API token to access data.