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 a "capacity to take on new mentees" indicator on the mentors cards #122

Closed
zacbraddy opened this issue Mar 20, 2019 · 29 comments
Closed
Assignees
Labels
waiting for fix Waiting for fix a PR

Comments

@zacbraddy
Copy link
Contributor

zacbraddy commented Mar 20, 2019

Is your feature request related to a problem? Please describe.
It would be good both more mentors and mentee's if, when searching for a mentor, a mentee could determine what capacity the mentor has for taking on new mentees. The mentor might be in a situation where they have too many mentees to allow them to be effective for all of them in the time the mentor has available to help. In this situation a mentor would have to turn down a mentee which feels bad for everyone.

Describe the solution you'd like
I'd like to suggest that we include some sort of indication of the capacity the mentor has on the cards for the mentors on the find a mentor website. This could follow some sort of traffic light system where by Red would mean unavailable to take new mentees, Amber would mean that the mentor might be available for quick questions but doesn't have the space to take on new mentees full time and Green would mean available.

Solution

Designs coming

@crysfel
Copy link
Member

crysfel commented Mar 21, 2019

This looks like something we definitely need to add. We could add a new property to the mentor schema to set the maximum number of mentees a mentor can have, and another field to set how many mentees the mentor has.

Based on that we can calculate the colors or display something like 1/3 Mentees or some other useful information.

@moshfeu
Copy link
Member

moshfeu commented Mar 21, 2019

It can be simpler. Just prop for how available the mentor is?

  • Most - for getting new mentees.
  • Medium - available only for quick questions.
  • Not at all.
    Because mentor can be busy regardless his mentees.

The thing is that this kind if changes will happened often so we (on Slack) tried to think how to handle this.

Ideas:

  1. Split mentors.json into file for each mentor and move those files and all the relevant files to a different repo. This way we can grant more people permission to merge PRs but keep the main repo "safe".
    Pros: mentors list could be filtered by availability.
    Cons: a lot of PRS.

  2. Add field in schema for status image url (we will supply the images) so each mentor could store it in his fork and update it as much as they want.

Pros and Cons - the opposite of prev approach.

@zacbraddy
Copy link
Contributor Author

Probably also worth mentioning the third thing we spoke about on slack which was to make it so that the mentors, rather than checking in the JSON into mentors.json would just check in a URL to the raw version of a gist that would have the JSON object about them. Then in the website we could make an Ajax request to each of the URLs for the JSON for each mentor, do a little client side validation and then load it up for display. This has the downside of probably increasing the load times slightly but the upside that every mentor would be in control of their own profile without needing PRs to the main repo and they could change it as frequently as they liked. I know this wasn't your favourite solution @moshfeu but worth us writing down here whilst we're brain storming. If it's only the load times you're worried about with that then there are definitely clever things we can do to make reduce the amount of load time we surface to the user.

@moshfeu
Copy link
Member

moshfeu commented Mar 21, 2019

It's not just this. If a mentor has wrong schema he will not know it until someone will notice.
Sometime we change the schema (just did this couple of days ago) so it's harder to maintenance.

@zacbraddy
Copy link
Contributor Author

Well I mean you could version the schemas and that would solve that problem. But at this point I kind of feel like you're pretty staunchly against this idea so I'm willing to concede to implementing something different.

@moshfeu
Copy link
Member

moshfeu commented Mar 21, 2019

Not at all! Sorry you feel this way!
I'm challenging the ideas to make sure we cover all the edge cases and maybe to improve them. That's what I'm doing with my ideas too.
I'm not sure what do you mean by you could version the schemas.

@zacbraddy
Copy link
Contributor Author

Let me make a fork and do a PoC for what I'm talking about so I can show you what I have in mind that way we can talk in more concrete ideas rather than hypotheticals 😉 give me a week or two to pull it together and then I'll put a link to my fork up here.

(Also don't worry, I'm not upset or anything just debating the issue, we're cool 👍 )

@moshfeu
Copy link
Member

moshfeu commented Mar 21, 2019

Happy to hear 😃.

Maybe we will start with a field in the schema and when a better solution will be ready, we will replace it.

@emmawedekind Can you create a design for this?

@moshfeu
Copy link
Member

moshfeu commented Mar 21, 2019

When I think about it. We can combined both of the approaches. Take the statit details from the schema and the dynamics (such as the availability and maybe more) from an ajax call.
This way, we get a fast reponse for the main details and also let the mentors the ability to update their status.

@zacbraddy
Copy link
Contributor Author

Started a PoC on the weekend for grabbing the raw Json from gists. I got it working but want to test it with more calls to separate JSON's I'll try get that done this week and then you can have a look and see what you think. I also wrote down some load times taken from the chrome dev tools to check what impact it has.

@devictoribero
Copy link
Contributor

sounds good!

@emmabostian
Copy link

I didn't see the design comment, sorry! Do you still need something? Or if you have something I can just take a look?

@emmabostian
Copy link

What about a little progress bar at the bottom border of the card? 1/3, 2/3, 3/3? A capacity indicator that looks like a bottom border? Thoughts?

@moshfeu
Copy link
Member

moshfeu commented Mar 26, 2019

This is the design we need :) Progress bar is good, even so no progress here :) maybe clock icons? Or sand clock icons maybe.

@emmabostian
Copy link

I'll put something together today :)

@devictoribero
Copy link
Contributor

devictoribero commented Mar 26, 2019

@moshfeu @emmawedekind ⏳ , 👥 or 👨‍🏫 could fit the purpose!
I would not add a watch/timer since maybe in the future we want to add an schedule and it could be confusing

@emmabostian
Copy link

@zacbraddy I have updated the issue with the solution :) Please let me know if you have any questions!

@zacbraddy
Copy link
Contributor Author

Fantastic, looks great, well done!

@emmabostian
Copy link

Thanks! Looking forward to seeing your solution :)

@moshfeu
Copy link
Member

moshfeu commented Mar 26, 2019

@zacbraddy will you take this too or are you working on the separation approach?

@emmabostian
Copy link

Oh shoot... haha sorry I thought he was assigned! @zacbraddy would you like this one? If not I can find someone else!

@emmabostian emmabostian removed their assignment Mar 26, 2019
@zacbraddy
Copy link
Contributor Author

zacbraddy commented Mar 26, 2019

No that's fine @emmawedekind I couldn't design anything to save my life and you've done a great job you put in your changes. @moshfeu yeah I'm going to take on the update piece that we spoke about I'll raise an issue for that possibly tonight. To @emmawedekind 's point about me not being assigned to the issue it's worth pointing out I can't actually assign myself to issues on this repo. Not sure if there are some settings on the repo that need to be fiddled with or something but yeah.

[EDIT]: Oh unless what you're saying is that you've mocked up the design and you're wanting me to implement that design, in which case yeah that's fine assign me the issue and I'll get it done. Which ever you'd prefer 😉

@emmabostian
Copy link

Yeah sadly I think I'm the only one who can assign... I don't understand but whatever hehe. Anyway I can assign you for the dev work! @zacbraddy

@zacbraddy
Copy link
Contributor Author

Yep cool, I'm flying back to Australia for a holiday at the end of the week for 3 weeks but I'll take a laptop with me so I can work on it then, might be a bit slower than usual but I can definitely get it done. I got this!

@emmabostian
Copy link

No problem! Have fun!!

@moshfeu moshfeu added the wip Work in progress label Mar 28, 2019
@emmabostian
Copy link

Hey @zacbraddy if you've started working on this, hold off. We have a new card re-design and I'm exploring new alternatives. Thanks!

@emmabostian emmabostian added the waiting for fix Waiting for fix a PR label Apr 10, 2019
@moshfeu
Copy link
Member

moshfeu commented Apr 10, 2019

Also we (especially @crysfel ) are working on integrating the website to the db so the indications will come from the server. Maybe it should be better to wait for this too.
Related to Coding-Coach/coding-coach-api#42

@zacbraddy
Copy link
Contributor Author

Ah, in slack I originally suggested that we use a free tier DB for all this stuff but it was suggested the project wasn't ready for it yet. Glad to hear that some movement has started on that front. I'll go and watch that issue and when it's done I'll pick up work on this as I expect there will be a pretty significant different in the way we need to handle this.

@emmabostian
Copy link

I'm gonna close this issue for now and we'll re-open it when we're ready :)

@moshfeu moshfeu removed the wip Work in progress label Apr 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waiting for fix Waiting for fix a PR
Projects
None yet
Development

No branches or pull requests

5 participants