Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add quest presets #1654

Closed
Helium314 opened this issue Nov 18, 2019 · 48 comments
Closed

Add quest presets #1654

Helium314 opened this issue Nov 18, 2019 · 48 comments
Assignees

Comments

@Helium314
Copy link
Collaborator

In issue #1301 @westnordost suggested to open a new issue regarding quest profiles, i.e. different quest selections and priorities to select depending on the current situation.
Sorry if this issue is already somewhere around and I just didn't find it.

These profiles can be useful for switching between e.g. a "normal" and a "train" profile, where the train profile has no quests like road name or opening hours you can't solve from a train anyway. Another example would be "day" and "night" profiles, where the "is ... lit?" quest is disabled or low priority in the day profile and high priority at night.

In a comment to #1301 @westnordost asked for UI proposals of this feature.
So my idea is that profile selection could be in a menu that is invoked from an (to be added) point in the "..." menu. Or simply in the settings, either below quest selection, or part of it (profile selection dropdown on top, including a "new profile" point).

@westnordost
Copy link
Member

I think the current profile should always be visible for traceability, especially if the profile is selected automatically somehow.

@Helium314
Copy link
Collaborator Author

I didn't mean the profile should be selected automatically. Using "day" and "night" was probably a bad example...

If the current profile should always be visible, I see no way around adding an additional line below the star and upload counts. In that case it should perhaps be possible to disable profiles to have the UI as it is now.

@Helium314
Copy link
Collaborator Author

Some thoughts on how this could look:
(I keep calling this "profile", but in the end it should maybe have a different name to avoid confusion with the OSM profile)

In settings -> quest selection there is possibility to add a new profile. Either in the "..." menu or some extra button.
Adding new profiles asks which profile to copy from (or create a new one, which is like after resetting quests), and allows to enter a name (some "profile <number>" could be default)
Renaming and deleting profiles should be possible in the menu.

Where to put profile selection:

  • add in "3 lines" menu, there is enough space
    • con: not always visible
  • add extra button somewhere, containing some profile number or first letter
    • con: one more always displayed button (but it can be hidden if there is only 1 profile)
  • add in (quest) settings
    • con: not always visible, switching is slow
      When tapping the profile selection element a menu with all available profile opens and the user chooses one. Maybe a link to quest selection of the selected profile by long pressing a profile could be done.

@waldyrious
Copy link
Contributor

(I keep calling this "profile", but in the end it should maybe have a different name to avoid confusion with the OSM profile)

FWIW, "preset" is a common term for this sort of thing.

@rugk
Copy link
Contributor

rugk commented Jun 29, 2020

…and maybe the title of this issue should be changed to that as it is currently not that descriptive…

@westnordost
Copy link
Member

westnordost commented Dec 9, 2020

I'm still unsure what would be the best UI for this. Some input, mockups with suggestions etc. are welcome!

So what problem are we trying to solve?

  • User is overwhelmed by the number of quests. Demotivated because he's not ever going to solve them all.
  • User is demotivated because he does not see the forest for the trees

Possible Solutions

  1. By default, all are enabled as they are now, but after first download (if quest count passes a certain threshold?), a notification is shown which informs user about that he can disable quests in the settings. Per convenience, the dialog could directly lead him there and/or even let him choose quest groups directly in that dialog.
  2. By default, only show the most important quests, all others are disabled first. That leaves ~75% of all quests to the "completionists" / "power users" among StreetComplete users. Maybe show a notification after download to inform the user that there are more quests if the quest count is below a certain threshold?
  3. By default, only show the X most important quest dynamically calculated by the quest density passing a certain threshold.
  4. Other...?

Comments on the possible solutions

  1. A little downside(?) is that this way (point 1), not showing all the quests will be a deliberate choice of the user, thus it will always be in the back of his head that he is not solving "all the things". This knowledge in itself might be demotivating
  2. On the other hand, the other solution (point 2: not showing all quests by default) might come across as patronization of the user. Also, I already see a lot of bug reports being opened up here in the issue tracker about that certain quest types do not show up anymore, because people, in general, don't read.
  3. The dynamic "smart" solution (point 3) has even more potential for confused users.

Current Idea

The solution I have currently in mind is thus the following:

Info Dialog

After the first download (after the update that includes this feature), the following dialog is shown

image

Basically, there should be three options:

  • Power users/completionists should select: No, continue to show all
  • Users which like control should select: Ok, show only what I selected here
  • Lazy/casual users should select: Ok, show only a curated list of important quests

This dialog is shown only once to make users aware of this.

I am not entirely sure how best to put all these choices into one dialog without it becoming too cluttered. I am also not sure about "users who like control". Maybe supplying a link "take me to the settings" is enough here.
It would be best if the "default" choice in this dialog would be the "show only the important quests" because most users will not want to have to adjust all the things but just use the app. So maybe something like this with the first option pre-selected:

image

Important quests

But which quests are important & easy to solve? It will be difficult to define and draw the line. Maybe it should rather be a negative-list, i.e. leave out certain "spammy" quests like the building types, traffic signal features etc.
After all, the user still wants a certain variance in quests because this makes using the app interesting.

Quest selection screen with categories

Here I do not have a mockup yet, but hte quest selection screen should be changed to accomodate for:

  1. people who want to control enablement of each single quest type (users who like micromanage control)
  2. people who want to select categories, such as "for road users", "for pedestrians", "for cyclists", etc. (users who like control)
  3. people who want to select all (power users)
  4. people who want to let the app (developer) decide what is shown (casual users)

@smichel17
Copy link
Member

smichel17 commented Dec 9, 2020

I don't have time to give my full thoughts, but what about something like this?

Main menu with additional Quest Display Mode option, showing 'Pedestrian (casual)' ⇒ click ⇒ List of options that would appear when clicking the item, with 'Customize' option at the bottom

The customize item would take you to the current customize screen, with an added control to change which mode you are customizing.

Then you don't need to ask up front, you can just start them in casual mode and they will see the opportunity to change modes later.

@westnordost
Copy link
Member

Hm, this takes the categories from the other direction. Not grouped by category but grouped by movement profile. @Helium314 occupied himself more with this , do you remember what was the outcome? You closed your PR.

@smichel17
Copy link
Member

There are 3 axes:

  1. Movement Profile — which quests I am able to solve
  2. Casual vs Completionist — how many quests I want to see at once
  3. Category Interest — which quests I want to see first
    • e.g. If I primarily use osm data for car navigation, I probably care more about street names, lanes, house numbers, …

1 and 2 change frequently depending on how the mapper is feeling that day. Originally I had them as separate settings in the main menu, but for some types of movement (e.g. in the passenger seat of a car) you do not have time to answer if every single quest were shown. So, they can be combined into one picker with two entries for those that need it (e.g. "Pedestrian (casual)" and "Pedestrian (completionist)"). (I am not sure "Completionist" is the best word, it's just one that I chose quickly).

3 does not change very often so it is fine to bury deeper in the settings. I do not think it should be used to determine quest display density, because it is still possible to have an overwhelming amount of quests even from a single quest type, like "building type".
Instead this is about prioritizing which quests to hide shown first when there is some other restriction (e.g. from 1 or 2). So I would suggest a ranking, like the current quest selection screen (but it will be less overwhelming with fewer options). You could remove the ability to toggle categories individually and just have a cut-off line where anything below it is not shown.

For the "Casual" modes, I think it would be good to do something like this:

  • show all quests, like we do currently, but only in a very small radius around the mapper's current location
    • if gps is turned off, use the location of the most recently solved quest instead
  • Outside that radius, first add all quests of the highest priority, then walk down the list until there are enough quests shown.
    • Like the old approach of downloading from overpass, but without the wait :).
    • Calculate "enough" based on number of quests in the radius, not how close they are to each other
      • It is okay if the quests are "too dense" in one region as long as there are not an overwhelming number total: this is more motivation to visit that area!
    • If showing one type of quest (building type) would add too many visible quests, remove those farther away from the user's current position first.

@smichel17
Copy link
Member

smichel17 commented Dec 9, 2020

I am not sure "Completionist" is the best word, it's just one that I chose quickly

Yeah, this word really does not capture the nuance well. It is really two separate things:

  1. Efficiency vs Impact — Do I prioritize solving quests as quickly as possible and not returning to the same place more than once, or solving the quests I think are most important before moving on to less important ones?

    • Also, do I care about less important ones at all? But this is more related to Category Interest — all of the "less important" ones are actually just quests in the "Map visualization" category — people mapping for its own sake as opposed to for a specific use.
  2. Casual vs Power User — aka prefers false negatives or false positives?

    • I think this is often a false dichotomy — Both types of people would prefer that the app to read their mind and show them only the quests they care about and hide everything else. Since we cannot read their mind, we are bound to mess up and either hide quests they care about or show quests they do not care about. So the difference between these two is whether they find would rather the app err on the side of missing quests or cluttering the interface.

    • As far as this goes, I think adding a setting to control how many quests are displayed at once, so the user can find a level that works for them, is basically a last resort. First we should try to just do better at hiding clutter without hiding important information. For example, when you are actually surveying, you seldom need to solve a quest that is far from your current position. But obviously it is still important to see quests that are further away for planning your route. So we could solve this by adding a "planning" function that shows all quests and allows you to select the route you intend to walk. Then, returning to mapping mode, all quests not along that route are hidden (this could also be used to prepare for offline mapping, and maybe replaces "scan for quests here").

I suppose my suggestion for "casual mode" above is actually a compromise between efficiency & impact, not optimizing for one or the other.

edit: augh, this list spacing always bothered me on gitlab; why is github doing it now, too?!

image

I don't understand why there is a smaller space between the nested item and below it, than the item it is nested under. Looks so bad and is not logically grouped :(

@westnordost
Copy link
Member

@smichel17 Hm, since you dart off in a completely different direction, maybe you can make a concrete suggestion with a mockup?

@smichel17
Copy link
Member

smichel17 commented Dec 9, 2020

The three (now 4) axes is just how I am thinking about people's different motivations that we may want to address. And then a few suggestions based on them, which are not fully thought out. I was not planning to post until I had a fully thought-out idea, but it seems like you may work on this soon, so I wanted to share before you started implementation :)

This is what I was thinking of for asking about preferences(3), in the introduction at the beginning. Although, upon reflection I think the "disabled below this" line is probably a bad idea. And on the right, where the "Customize modes" option would take you.

image image

On the right, the second bar is supposed to resemble this: image

@westnordost
Copy link
Member

This feature is not on my (official) roadmap. But then again, the whole download refactor which had such a big impact wasn't either and this problem has been addressed for quite some time now by different people, so I am thinking about implementing it. What held me off from implementing it so far was that there are so many things to address (as you point out) and I find it very difficult to find the right way to go about this.

@peternewman
Copy link
Collaborator

  1. Movement Profile — which quests I am able to solve
  2. Casual vs Completionist — how many quests I want to see at once
  3. Category Interest — which quests I want to see first

Also some people wanted day/night as mentioned above, which doesn't really fit into your three/four groups @smichel17 .

As a power user I'd like some custom presets too, which I'd suggest might make sense for the day/night people too.

For example until/unless #124 gets done, being able to easily toggle a quest off works around that, or while testing/fault finding it's nice to have a dev preset rather than breaking my normal custom order and selection of quests.

For example rather than just the two proposed walking ones, I might want wandering and commuting presets (the latter walking one just has stuff you can do at a glance, but not say house numbers, vegetarian/vegan or building types where you need to look more carefully. Whereas does X exist, tactile paving etc, can all be done with no real impact on my speed.

I think this whole suite of issues could perhaps be looked at in a few ways:

  1. I want to easily select different groups of quests at different times (e.g. for walking/in a car etc)
  2. I'm seeing too many quests
  3. I'm seeing boring/uninteresting quests - Which is similar to 2.

1 needs effectively presets (I guess it could be done by adding more properties to each quest, but that's probably more work and less flexible). Pre-loading some presets and maybe giving them easy access makes it fairly simple for novice users, without losing the flexibility for power users. You've already got a nice UI for selecting quests, so there's not much to gain by making it all hard-coded.

2 feels like it can be done in code, the quest system already has the idea of priority, as @smichel17 suggests, with a bit of an algorithm this could be used to tune how many are displayed at once.

3 is perhaps more subtle, it can either be 2 with a static or dynamic cut off, or 1 with lots of stuff disabled.

Doing a quick review of the other issues linked to this, I'd say 1 is by far the most popular request and IMHO, #2358 is fairly unique in wanting something automated for 2 and 3. It seems like most other people would be happy with the ability to customise their own presets as part of 1 so they can tune to what they want. But perhaps that's confirmation bias as it's what I want. 😄

@Helium314
Copy link
Collaborator Author

I really don't want to start another immensely long discussion...
But since I would still like to have some nice way of quickly changing quest visibilities: one more proposal for how this could be done (aims to cover a good range of the use cases from the discussion in #2457, and to be reasonably simple at the same time):

We have some lists of quests:
'important' quests, quests relevant for wheelchair users, quests solvable from outside (currently the quests enabled by default), quests solvable from car, quick to solve, quests solvable day and night (or whatever you want to call a list that excludes the lit quests), quests solvable when there is snow (excludes surface quests),...

Somewhere (quickly accessible) there is a button that opens a menu with 2 columns, both columns can contain the mentioned quests lists.

  • For lists on the left side, a quest is visible if it is on any of those lists (quest I am interested in).
  • For lists in the right side, a quest is visible if it is on all of the lists (quests I can solve).
  • Lists can be disabled, then they do nothing.
  • A quest is actually visible if it is visible according to both columns. An empty column means all quests are allowed.
  • Lists can be dragged between the columns and checked to enable/disable.
  • Team mode can be treated like a list fixed to the right column.
  • User preferences are a list on the right column (fixed or not?)

Some examples (not mentioned lists are disabled):

  • I want to answer quests that are either quick to solve or important: drag both lists to the left column.
  • I want to answer important quests that are quick to solve: with only 2 lists it doesn't really matter, just don't drag both lists to the left column
  • I am bored and want to see everything that's available: disable all lists (hmm... this is not really intuitive)

A few points at the end

  • using 2 columns was my first idea, but since phones are getting taller and taller it might be a bad idea. The arrangement is not really relevent for the concept.
  • how to communicate the way the whole thing works? Two lines of text could already be too much to read for a good portion of the users...
  • naming the lists could be tricky, as the names should be explanatory and short(!)
  • in many cases the right column is actually sufficient (that's basically the quest filters from Quest filters #2565)
  • some people would like to have customizable quest lists

@mnalis
Copy link
Member

mnalis commented Jul 7, 2021

related: looks like there is (currently somewhat buggy?) implementation of quest profiles in @Helium314 fork mentioned at #3003 (reply in thread)?

@westnordost
Copy link
Member

By the way, there have been a lot of related issues been brought up - filtering by quest name in preferences, quest filters, quest presets etc. and all of these contain some ideas how to solve some overlapping use cases. I read through all of them and decided to implement certain things that make some/all of these use cases easier or mitigate some problems with this.

Thread starting here: #2565 (comment)

I write this here too because this issue had many participants and many people upvoted this issue. This issue will likely then be closed because it is not necessary anymore / mitigated / will not fix.

@mnalis
Copy link
Member

mnalis commented Jul 8, 2021

@westnordost It is of course your absolute prerogative if you want to mark something as wontfix, but I cannot see where the claim that quest presets "are not necessary anymore" or "are mitigated" comes from? Surely not from different ordering implemented in quests-order branch?

I absolutely agree with you in #2565 (comment) that map looks more diverse and less boring for newcomers in that quests-order branch (and thus is improvement!), but that was never the issue that quests presets/filters #1654 were aiming to solve!

Their purpose (at least as I understand it as one of proponents) were defined by this premises:

  • same people have different needs/wants in different circumstances (see Use cases for Quest Presets #2457)
  • it is very time consuming drudgery to change on/off status and ordering of quests
  • drudgery is unwanted by users, and we want happy users, as they are productive and engaged users

and the conclusion coming from those premises is:

  • we need some way to allow users to easily change application settings (lists of enabled quests) to match their new circumstances.

and not:

  • we need to try to make better fixed (ie. not easily changeable) default list of quests (again: better defaults are quite useful in their own right, but that has nothing to do with quest presets)

To make an analogy: sometime people wear rain boots, sometimes they wear sandals, and sometime they wear formal shoes, and sometimes they wear sneakers. The goal of quest presets was thus to:

  • allow the people to easily choose which of those they want to wear today (and which tomorrow), and not
  • invent an one new type of footwear which would be best compromise for all of the activities that people engage in, and make it extremely inconvenient for them (eg. manually click and move over hundred of quests around) when they want today to wear something else than they did yesterday.

@westnordost
Copy link
Member

westnordost commented Jul 8, 2021

What makes it difficult is that all these tickets that are related were trying to solve a couple of different use cases. What the stuff on the quest order branch solves is:

  • newcomers being overwhelmed, newcomers becoming bored
  • to a large degree: the necessity to have any mode-of-transportation-based quest filters, because things that are easy and quick to fix from a distance are always shown first. Of the presented alternatives, I find this solution actually the best one because it avoids the difficult decision (by the developer(s), which would be disputed in various change requests) what quests exactly would still be solvable from bike/bus/train/... altogether plus avoids having any UI for that

The remaining use cases for quest presets mentioned in #1654 are really fringe, IMO, like "don't show quests that require to see the surface" aka "there is new snow" - how often would that preset be used really? Also, even a quest preset like that is partly solved by the new quest order because the surface quests etc come much later now.

What presets would be most important to you, i.e. which one would you regularly use?

@mnalis
Copy link
Member

mnalis commented Jul 8, 2021

@westnordost asked:

What presets would be most important to you, i.e. which one would you regularly use?

You mean, which two I would regularly use? Because, if it was just one, I'd set it up, call it a day, and never change it 😄
Whole idea of presets makes sense only if there are at least two (or preferably more) of them.

So, if I had to limit myself to just two presets, those would be:

  • almost everything (ie. everything without just few quests I deem mostly useless but abundant: like roof types / building types / building levels or very hard to answer: like speed limit quest) - used in situations when I'm bored / have time / on foot.
  • just stuff I deem most important for my favourite activity (which is bicycle navigation and cyclotouring specifically, mostly rural), which I'd use in most other situations. And quests I deem most important for this purpose are (from most important to less important):
    • open notes (only first because I can't move it)
    • is the water potable here (because dehydration is life-threatening thing)
    • is this way completed
    • is this an one-way street
    • what are the opening hours of this place (for drink/food, very important in rural areas where it is rare. Also, bike shops. In the middle of the cities, I'd just ignore it / would not be using SC anyway in this reduced-quest-mode)
    • what surface does this piece of road have
    • what surface does this path have here
    • what's the surface of the cycleway here
    • what's the surface of the footway here
    • is there a cycleway here? (all the surface / cycle stuff above and below is very important for comfort and safety, which also limits what you can reach and in which time, and how good you are to continue tomorrow)
    • what is the surface firmness of this track (see above - sure you can do 100km on good asphalt in reasonable time, but on soft dirt/mud track not really)
    • does this street have a sidewalk
    • what type of barrier is this, (ie. can I and how easily get over it with my bicycle loaded with panniers and tons of stuff)
    • is this stretch of way lit (because, cycling in dark is not fun nor safe)
    • are pedestrians forbidden to walk on this road here
    • do those steps have a ramp
    • what type of bicycle parking is this
    • is this bicycle parking covered
    • what type of tourist information is this

(also, although not seen in list of quests, but is very important, is opening tons of new notes by long pressing on the map (for missing shops/cafes/drinking_water and other important things for bicyclists the SC didn't ask about)

If I could pick three presets, then I'd add the new default from quest-order branch to the two presets above, as a good mid-way compromise.

If I could pick four or more presets, I'd add some housenumber/streetname quests which I deem very important, and some of #2457 that I created/commented on, and well as "really everything" preset.

So, sometimes people will want to solve anything useful (or really anything, it they are that bored) just out of goodness of their hearts. But sometimes, people have specific agenda that they care about the most (in my case, usually bicycle related stuff; but it could address mapping often too) and are willing to endure extra hardships to achieve it (ie. their cycling tour taking 15 hours instead of just 12, due to frequent stopping and getting off the bike to map stuff important to cyclists)

@peternewman
Copy link
Collaborator

What makes it difficult is that all these tickets that are related were trying to solve a couple of different use cases. What the stuff on the quest order branch solves is:

I'd agree the new quest order solves the things you mentioned, people could also order like that themselves already, but having this as the default may well be better for newcomers. Variety is probably good for all of us too to keep us interested and engaged.

It does feel to me that the main thing that's being consistently missed in proposed suggestions is the ability to change prioritisation. SC used to prioritise the most worthy/important quests first, with the quest order branch, it now starts with the easy/simple ones first. What this now means is that anyone with time to kill will spend most of it burning through the easy quests, although they may be low value and others could easily pick them up while wandering past, when ideally they would start with the ones that other people aren't likely to pick up most of the time (names of things, opening hours etc).

If you were going to only implement two presets, then having one default to the current order (or something similar to it) and one defaulting to the new quest-order branch, would seem a good place to start (although personally I'd probably favour more and more flexibility).

The naive approach of just reversing the priority order may be a possible starting point, but that would for example put step count at the top, whereas opening hours is probably similarly fiddly but more useful in the real world (I also feel ramp status is more useful than step count whether I'm going for quick or slow/worthy). It would possibly also push some valuable but quick quests too far down the list (tactile paving, parking payment etc).

@mnalis
Copy link
Member

mnalis commented Jul 9, 2021

@peternewman I agree, SC is not (just) a game where you need to collect as many quests (the easier the better) to gain better score (which quest-order branch promotes, and which might be a good way to attract/engage new users) but should IMHO longer-term be primarily a way to collect more useful/important data.

The problem with that approach is that while we can easily agree which quests are easier/quicker to solve (what quest-order branch prioritizes), it is when we try to reach consensus about which quests are more important that the problems arise; for example:

  • for me (as a cyclist and pedestrian), drinking water, house address and surface type quests are among most important
  • for someone actively supporting blind persons community (myself included), it is usually sound signals and other infrastructure at crossings, house address / street name as well as bus stop names/references
  • for disabled persons, it is probably ramp, curb and surface quests as well as wheelchair-accessible quests
  • for someone driving a car, it is maybe one-way streets, charging stations, surface, ferry routes and parking fee
  • for someone driving a truck, it is height/weight limits they care about
  • for activists and whistle-blowers it might be security cameras that are priority
  • for young women and amateur astronomers, it might be lit quest (for completely opposite purposes, though!)
  • for some postoffice enthusiast, it is the royal cipher that makes their world go around
  • for religious person, type of religion practiced might be the thing they care about
  • ... and many more (which is why I think we should enable users to choose which group of quests and their order are important to them - I do not think we can reasonably think of all the different interest groups and cater to their interests)

But even when those are priorities for them, it does not mean they won't (at some times, but not always) be willing and interested to solve some other quests - unless it involves huge administrative drudgery as it does currently, which is huge turn-off. Users need an easy way to try some more quests outside of their priority zone, and even easier way to get back to their preferred setup when they've had enough.

Manually going through list of 100+ quests is not easy, so users won't be doing that, and would likely either staying with the default (which as @peternewman notes is somewhat problematic as it demotes some very useful quests to promote easy to solve quests) or will set it up once so only the few most important quests for them are shown and never change it again (which is again problematic, as when they clear the area, SC will be showing blank maps without quests so after few blank maps they will likely stop using SC altogether and forget about it)

(Also note that even for quests that vast majority of users might agree that are useless of low utility for most data consumers, like roof types, bulding levels, pole material, royal cipher, house type or bridge structure; they will be some who will vehemently oppose those opinions and claim that those are important quests - maybe even with arguments to back it up).

@rugk
Copy link
Contributor

rugk commented Jul 9, 2021

cyclotouring specifically, mostly rural

@mnalis Your use case sounds common, but the quests you select are quite interesting, "potable water" etc. Because you do not seem to care how easy is is to solve the quests "on the go" with your bike, but how useful they are for you and others.

What I mainly want to say is: I doubt another user would have the same quest preset.
As such Was there a discussion already, about using quest profiles instead, i.e. no given presets by StreetComplete, but just profiles the user can add and remove as they wish? Something like Firefox about:profiles or such a thing (just an an explanation, of course it should be less complex here), so where you can add and configure your own profiles?

Each profile should then just be an alternative "quests enabled + order" part, where you switch between these profiles and you can configure it as you wish.
We could always anyway talk about adding default profiles there then…

Edit: Ah this is #3034 apparently…

@westnordost
Copy link
Member

Solved (differently) in #3210 / #3034

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants