đŸ„‡ Creating Private Leaderboards

From your user profile sheet, do a multiple relation > rollup of the groups sheet to get a count of how many groups the user has created (assuming you have a group creator column in the second sheet). This becomes a user profile field. Hide “create group” button if count is >= 2

2 Likes

This is great - thank you for posting. @Robert_Petitto

How does the send invite code button work? Do you have the user open up the email client or do you accomplish it another way?

he uses share action

1 Like

Hi @Robert_Petitto,

Just wanted to leave a note to say thank you for this great tutorial.
My requirements for a private leaderboard were somewhat different, but I was able to take the techniques you demonstrate here and adapt them for my purposes. Definitely saved me several hours of head scratching. Thanks again!

3 Likes

Awesome!

1 Like

It just dawned on me that Trebuchet is absolutely perfect for Private Leaderboards.
So I need to go back and redo mine, and you need to make a new tutorial :stuck_out_tongue: :rofl:

How so? Have you been able to crack the code with assigning two values in the trebuchet (leaderboard email and leaderboard point_value in the single array)?

No, but do you actually need that for a Private Leaderboard?

I mean, once you have the list of users, then you can use that to create a relation to the main scoreboard, and from there Bob’s your uncle, no?

Or have I not thought this through properly? :thinking:

I’ll need to have a fiddle with it


I discovered this very interesting thread thanks to @Mike_Gell (“Leaderboards” has not been in my vocabulary before).

I have some questions regarding data security:

  • @Robert_Petitto : are the email addresses (or any other personal data) in the sheet “private leaderboard” save, as (to my understanding) rows are loaded and only filtered through the relation of the invite code to itself, and no row owners are in place?
  • @Darren_Murphy : would the trebuchet method change anything about it?

In my case, I allow users to directly add other users to their leaderboards. I am using row owners, but the way I get around this is by having a “Public Users” sheet, which is a read only copy of my User Profiles sheet containing just UserID, Name and Avatar columns.

I’m quite certain that I can use it to simplify what I currently have, although I haven’t gotten around to testing that theory yet. My private leaderboards are part of a “Fantasy Golf” app (it was my very first Glide app). I’m planning to rebuild it during the off season, and implementing trebuchet for my private leaderboards is a part of that plan. I’ll report back once I get around to doing that (but don’t hold your breath) :wink:

Here is a short video that shows how mine currently works:

(nb. I don’t actually show any leaderboards in the video, as they are only visible when there is an active event).

3 Likes

What @Darren_Murphy said :point_up:

As for the Trebuchet, there isn’t a great way to do this because the trebuchet only collects one data point at a time (eg, email addresses OR names). It can’t associate those values with another value in another array (eg. dates OR points). Hence, you wouldn’t be able to have a leaderboard with the Trebuchet.

Hey, @Robert_Petitto, so i want to create a private leaderboard in the company level or team level.
For eg: Suppose there are 4 companies, and within this company there should be a leader board ranking only those company members and each one can see their rank in thier org.

This is possible. Go this route. I think I talk about private leaderboards at the end of the video:
:1st_place_medal::2nd_place_medal::3rd_place_medal: Convert Number Score to Rankings in Glide!

@Robert_Petitto , i have applied this method and filter based on the company level. It looks great but the issue as you can see that the ranking is in global level, not in the team or company level. There could be no. of users with different companies.

that means this array shown above, should filter in team or company level, means this array should contains data related to user specific company only, so when then user maps the element index on that array, then he/she is ranked on the company level rather than the global level.

@Robert_Petitto , now i have formed relation to multiple relations in the same sheet, So now this relation column groups the users having similar companies.

Now, i want this % points from every user in this grouped row. if we extract this data then the problem will be solved. As you can see there are 4 users in this relation column row. i want % points from every user in this row and form a array.

You’ll need to create a relation to self in the table that contains the point balance. Then, the lookup should refer to that relation:

1 Like

Thanks a ton @Robert_Petitto , it worked. And you’ve created a recording specially for me. Thank you :sweat_smile: :clap: :clap: :clinking_glasses:

My pleasure!

1 Like