-
Notifications
You must be signed in to change notification settings - Fork 4
Data Structure
Schema documented here: https://github.com/cubing/algdb/blob/main/schema.graphql
Brief overview:
- Algsets have both cases and subsets.
- Subsets themselves can also have cases and subsets.
- This is done so as to handle nested subsets infinitely.
- Algsets will have a unique code that identifies them.
- Subsets will also have a unique code, except it represents the subset chain.
For example:
zbll will have subset u. Subset u could have other nested subsets, those would look like u-nested1, u-nested2. These nested subsets could also have further subsets: u-nested1-deepernested1.
- Algsets/Subsets have cases.
- Algs are connected to cases.
- Algs can be connected to multiple cases.
- Cases are unique to a subsets/algset
- CMLL-AS-1 and COLL-AS-1 are both different cases connected to different subsets.
- Algs are then connected to both cases.
- This allows both cases to be rendered differently depending on their parent's subset mask
- Algs can have #tags.
- Tags are unique to an alg-user combo.
- User's can add their own tags to an alg.
- This helps categorize their saved algs.
-
Users can save algs through tagging them as #use (or something).
-
Users can also upvote algs to increase their overall score.
-
Newer votes mean more than older votes.
-
Algs posted in the last week (for example) are automatically tagged as #new.
-
Algs that are new but have high votes are trending.
-
Users can view their saved algs in their profile.
-
Users can view other users' saved algs.
-
These algs get automatically grouped based on their parent subsets / algsets.
-
Users can filter algs by their unique tags sort algs however they'd like.