Appearance
Mentor module overview
IxDF members may receive mentorship from mentors, who are professionals actively working on UX projects and in UX industries. Mentorship is provided through 1:1 mentoring sessions. The Mentorship system encapsulates all functionality that enables communication between members and mentors, booking of mentoring sessions, performing payouts, etc.
Relationships
The context_type / context_id fields allow associating a mentoring session with a particular context. In the case of Bootcamps, the context is a BootcampEnrollment.
Mentors
Mentors are industry experts who dedicate their time to offer coaching and support to IxDF members.
Authentication
Mentors use the platform in a different way from regular members, so their user records are stored separately in the mentor__mentors table.
Unlike Members, Mentors are authenticated using the mentor guard:
php
Auth::guard('mentor')->check();Mentor's Dashboard
Mentors are redirected to the Mentor's Dashboard (/mentors/dashboard) right after logging in. Here they can see their profile, including a short bio, location, timezone, availability and a link to their LinkedIn profile.
The Mentor's Dashboard also allows mentors to see their current students and mentoring sessions, as well as a link to their PayPal account, so that they can receive payouts.
Mentor's Email
There are two database fields that hold the mentor's email: auth_email and contact_email. One is used for authentication, the other for communication with members. The two email addresses might be the same, but aren't necessarily so.
Mentor's Approval
Before a mentor starts the journey of mentoring others, he/she needs to go through the approval process.
The mentor's approval status can be one of:
- candidate - the mentor is a candidate
- approved - the mentor is approved to provide mentoring sessions
- suspended - the mentor is suspended and cannot provide mentoring sessions
- rejected - the mentor's candidacy was rejected
Mentor's Availability
There are a few conditions that need to be met for the mentor to be selectable to give mentoring sessions:
- The mentor needs to be approved (the 'Approval State' must be
approved) - The mentor's 'Availability Status' must be
available - The number of mentor's active students cannot be over the value of 'Max Number of Students'
'Active' students are those who have confirmed upcoming mentoring sessions with the mentor.
Payouts
Mentors do not do their work pro bono. Every mentor provides a payout rate for a mentoring session (in USD) that is stored in the database. It's important to note each mentoring session has a rate at which the payout will be calculated. For the correct amount to be paid out, the mentoring sessions need to have the correct rates.
The payouts for finished sessions can be initiated in Nova (/admin/nova/resources/bootcamp-mentors) by selecting a mentor and triggering the "Initiate Session Payout" action.
Mentoring Sessions
Mentoring sessions are created on request from members and contain a start_at and finish_at timestamps. The exact date and time of a mentoring session is subject to negotiation between the member and mentor. Mentors can confirm the date and time immediately or request to change it and propose a different date and time to the member. Once both sides agree on the date and time the session is confirmed.
In the case of Bootcamps, the default length of a mentoring session is one hour. Every member who has joined a Bootcamp is entitled to two mentoring sessions per Bootcamp enrollment.
Session Status
Each mentoring session has a status:
- open - the member created a session, the mentor's confirmation is pending
- requested - the mentor requested the date and/or time to be changed, the member's confirmation is pending
- negotiated - both sides agreed on the date and time
- completed - the session is finished and is confirmed to have taken place
Payment status
Mentoring sessions also have a payment status:
- open - the payout wasn't initiated yet
- pending - the payout was initiated, but the transaction is still in a pending state
- paid - the payout was successful
Context
Since there can be differences between how mentoring sessions are carried out in different contexts, all models that act as context for mentoring sessions need to implement the MentoringSessionContext interface.
In case of Bootcamps, the BootcampEnrollment model implements the MentoringSessionContext interface and defines the mentoring session limit that should be applied.
Ratings
After the mentoring session is completed, the member is requested to rate it and leave an optional comment. The ratings are on a number scale from 1 to 5.
In the case of Bootcamps, rating a mentoring session is required before the member is allowed to book another mentoring session from the pool of two mentoring sessions that are available to Bootcamp students.
Notifications
Notifications are triggered every time the session status changes in a meaningful way:
- When a mentoring session is created for the first time by the member - the mentor is notified
- When a mentor requests to change the date/time of a session - the member is notified
- When a member confirms a session - the mentor is notified
- When a mentor confirms a session - the member is notified
- When a session is canceled - both the member and mentor are notified
To see the details of the logic that triggers notifications see MentoringSessionObserver.