diff --git a/apps/nestjs-api/src/assets/email/templates/complete-mentorship-for-mentee.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/complete-mentorship-for-mentee.copenhagen.mjml
new file mode 100644
index 000000000..f97638d11
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/complete-mentorship-for-mentee.copenhagen.mjml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+ All good things come to an end...
+
+
+ Hi ${menteeFirstName},
+ Congrats on completing your mentorship journey with
+ ${mentorFirstName}!
+
+ We hope it was a great experience for both of you and that you
+ reached all the goals that you may have set.
+ If you have logged two or more mentoring sessions,
+ both you and your mentor will receive a
+ Certificate of Completion via email within the next
+ few days.
+
+ We'd highly appreciate your feedback regarding the mentorship to
+ continuously improve, help forge better matches and make it the best
+ experience possible for everyone. Please complete this
+
+ feedback survey. It only takes about 5-10 minutes of your time.
+
+ If you benefited from the ReDI mentorship program, please spread
+ the word among your ReDI classmates. We'd love to support more ReDI
+ students and alumni on their career journey!
+ Thank you for being an active member of the ReDI
+ community!
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/complete-mentorship-for-mentor.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/complete-mentorship-for-mentor.copenhagen.mjml
new file mode 100644
index 000000000..a65ff7242
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/complete-mentorship-for-mentor.copenhagen.mjml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ All good things come to an end...
+
+
+ Hi ${mentorFirstName},
+ Congrats on completing your mentorship journey with
+ ${menteeFirstName}!
+
+ We hope it was a great experience for both of you and that you
+ reached all the goals that you may have set.
+ If you have logged two or more mentoring sessions,
+ both you and your mentee will receive a
+ Certificate of Completion via email within the next
+ few days.
+
+ We'd highly appreciate your feedback regarding the mentorship to
+ continuously improve, help forge better matches and make it the best
+ experience possible for everyone. Please complete this
+ feedback survey. It only takes about 5-10 minutes of your time.
+
+ ${mentorFirstName}, thank you for your time and commitment to the
+ ReDI community!
+ We see you and appreciate you very much!
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/expired-notification-application.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/expired-notification-application.copenhagen.mjml
new file mode 100644
index 000000000..af48f7561
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/expired-notification-application.copenhagen.mjml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+ ${menteeName}’s mentee application to you has expired!
+
+
+ Hi ${mentorName},
+ ${menteeName}, who applied to become your mentee has also applied
+ to another mentor. This other mentor has just accepted their
+ application.
+ The application to you from ${menteeName} has therefore expired and
+ you won’t see it any longer in ReDI Connect.
+
+ But don’t worry: we’re sure you will receive another application
+ from a mentee soon. Just make sure to review and accept their
+ application as soon as possible, so that next time it will be you
+ who becomes their mentor :)
+ If you have any questions, always feel free to reach out to us on
+ connectdk@redi-school.org
+ or message us on Slack.
+ Please also feel free to post in the mentors Slack channel, if you
+ would like to connect with other mentors or exchange experiences or
+ helpful tips.
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/footer.copenhagen.team.mjml b/apps/nestjs-api/src/assets/email/templates/footer.copenhagen.team.mjml
new file mode 100644
index 000000000..ab80f6909
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/footer.copenhagen.team.mjml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+ |
+
+ ReDI Copenhagen Team
+ |
+
+
+
+ |
+ General Coaching Program:
+ connectdk@redi-school.org
+ |
+
+
+ |
+ Coaching Program Manager:
+ basak@redi-school.dk
+ |
+
+
+
+ ReDI School of Digital Integration Copenhagen
+ Bådehavnsgade 42P, 2450 København SV, Denmark
+
+ www.redi-school.org/redi-school-denmark
+ |
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/mentoring-session-logged-email.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/mentoring-session-logged-email.copenhagen.mjml
new file mode 100644
index 000000000..5a0fe9b86
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/mentoring-session-logged-email.copenhagen.mjml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ Thank you for logging your session(s) with
+ ${menteeFirstName}!
+
+
+ Hi ${mentorName},
+ Thank you for logging the session(s) you had with
+ ${menteeFirstName}!
+ This is super helpful because it's currently the only way for us to
+ track the progress of your mentorship.
+
+ Please keep logging your sessions!
+
+ Log Next Session
+
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/mentorship-acceptance-email.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/mentorship-acceptance-email.copenhagen.mjml
new file mode 100644
index 000000000..befc4466b
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/mentorship-acceptance-email.copenhagen.mjml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+ Congratulations! Mentor ${mentorFullName} has accepted your
+ application, ${menteeName}!
+
+
+ Hi ${menteeName},
+
+ Great news! Your application has been accepted by your new mentor,
+ ${mentorFullName}. Here is a message from them:
+
+ ${mentorReplyMessageOnAccept}
+
+ Please make sure to respond to your mentor's message as soon as
+ possible so that you can begin your mentorship journey
+ together.
+ For your reference, ${mentorFirstName}'s email address is listed as
+ a recipient of this email. So, feel free to hit the
+ 'Reply to all'
+ button. You can also reach them directly at
+ ${mentorEmail}.
+ If you have any questions, you can always email us at
+ connectdk@redi-school.org
+ or message us on Slack.
+ We wish you a successful and enjoyable mentorship with
+ ${mentorFirstName}!
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/mentorship-cancelation-email-mentee.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/mentorship-cancelation-email-mentee.copenhagen.mjml
new file mode 100644
index 000000000..2d0e0aa88
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/mentorship-cancelation-email-mentee.copenhagen.mjml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+ Important Update: ReDI Mentorship Cancellation
+
+ Dear ${firstName},
+ We hope this message finds you well. We regret to inform you that
+ your mentor has had to cancel your mentorship. Please understand
+ that this decision is not personal and can stem from various
+ reasons.
+ Your progress and support remain our top priority. You now have the
+ opportunity to find a new mentor on our platform. If you have any
+ questions or need assistance in this process, please feel free to
+ contact us via email.
+ Thank you for your understanding and cooperation.
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/mentorship-cancelation-email-mentor.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/mentorship-cancelation-email-mentor.copenhagen.mjml
new file mode 100644
index 000000000..63d1c89f4
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/mentorship-cancelation-email-mentor.copenhagen.mjml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+ Important Update: ReDI Mentorship Cancellation
+
+ Dear ${mentorFirstName},
+ we have processed your request to cancel your mentorship with
+ ${menteeFullName}, and we've notified the mentee accordingly. This
+ opens up an opportunity for other mentees to apply for the available
+ spot.
+
+ We value your feedback and would appreciate it if you could share
+ the reason behind your decision to cancel the mentorship. Your input
+ will help us enhance the mentorship program for the future. Please
+ feel free to reach out to us via email.
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/mentorship-decline-email.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/mentorship-decline-email.copenhagen.mjml
new file mode 100644
index 000000000..523582f84
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/mentorship-decline-email.copenhagen.mjml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+ This time it wasn't a match
+
+
+ Dear ${menteeName},
+
+ Unfortunately ${mentorName} cannot accept your mentorship
+ application at this time.
+ They provided the following reason and message for you:
+
+ ${reasonForDecline}
+ ${optionalMessageToMentee}
+
+ Even if this match did not work out, we still have many amazing
+ mentors waiting for your application. So please have a look and
+ apply to another mentor who might be an even better match for
+ you.
+
+ If you need any support in the process, please reach out to us at
+ connectdk@redi-school.org.
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/mentorship-request-email.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/mentorship-request-email.copenhagen.mjml
new file mode 100644
index 000000000..dc297ee39
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/mentorship-request-email.copenhagen.mjml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+ You have received an application from ${menteeFullName}!
+
+
+ Hi ${mentorName},
+ You have received a mentee application from
+ ${menteeFullName} from
+ ReDI ${locationNameFormatted}! Here is a message
+ from them:
+
+ ${menteeApplicationText}
+ Please log into ReDI Connect to review this application and visit
+ the profile of the mentee at your earliest convenience:
+
+ Review Application
+
+ After reviewing the application:
+
+
+ -
+ If you would like to become their mentor, please
+ accept the application and suggest a date and
+ time for your first meeting, either online or in person. You may
+ also share your preferred contact methods (email, links, etc.).
+
+ -
+ If you realize that you cannot support them in the way they need
+ or are currently too busy to take on new mentees, please
+ decline the application and add a brief message
+ explaining why.
+
+
+
+ Additionally, remember that you can set your mentee count capacity
+ to '0' in your profile. This will make your profile invisible to
+ mentees until you change it back when you are ready to accept
+ applications again.
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/pending-review-declined-email.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/pending-review-declined-email.copenhagen.mjml
new file mode 100644
index 000000000..eddfbb8ef
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/pending-review-declined-email.copenhagen.mjml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ ReDI Connect: your user registration was declined
+
+ Dear ${firstName},
+ Unfortunately, your profile has not been approved. Most likely,
+ this has been discussed with you during your conversation with one
+ of our ReDI Talent Success team members.
+
+ If you need further clarification, please reach out to us at
+ connectdk@redi-school.org
+ so that we can get in touch with you.
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/signup-complete-mentee.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/signup-complete-mentee.copenhagen.mjml
new file mode 100644
index 000000000..9ce96b672
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/signup-complete-mentee.copenhagen.mjml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+ Sign-up complete!
+
+
+ Hi ${firstName},
+ Thank you for signing up!
+ Your next step is to watch a short
+ onboarding tutorial to get a good overview of the
+ mentorship program and how our matching platform ReDI Connect
+ works.
+
+ You will use the platform to find your mentor and connect with them
+ there.
+
+ Please make sure to fully watch the onboarding
+ tutorial because it contains all the
+ information you need to be able to successfully
+ navigate the platform and get a good understanding of what
+ mentorship means in the ReDI context.
+
+
+
+ If the button above doesn't work,
+ watch the video
+ using this link.
+
+ After watching the video, please
+ log into your account
+ and complete all the steps from the stepper at the top of your
+ profile page. After sending your profile for review, you will need
+ to wait a bit until our Mentorship Program Manager approves it. Once
+ approved, you will be able to find a mentor and start your
+ mentorship journey immediately.
+ We’re looking forward to getting to know you soon!
+
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/signup-complete-mentor-partnership.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/signup-complete-mentor-partnership.copenhagen.mjml
new file mode 100644
index 000000000..a1676b0a3
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/signup-complete-mentor-partnership.copenhagen.mjml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+ Sign-up complete!
+
+
+ Hi ${firstName},
+ Great news - you're officially signed up!
+ Please take a moment to
+ log into your account
+ and fill out your profile information. This step is
+ super important because it helps students get to know you better and
+ understand how you can support them.
+ You will receive an application from your assigned student before
+ the mentorship kick off event, make sure you
+ accept the application to continue your sessions
+ online.
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/signup-complete-mentor.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/signup-complete-mentor.copenhagen.mjml
new file mode 100644
index 000000000..8e663be46
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/signup-complete-mentor.copenhagen.mjml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+ Sign-up complete!
+
+
+ Hi ${firstName},
+ Great news - you're officially signed up!
+ Your next step is to fill out your profile. Please
+ log into your account
+ and complete all the steps from the stepper at the top of your
+ profile page.
+
+
+ After submitting your profile for review, please
+ contact the ReDI Copenhagen team
+ to arrange a quick onboarding session. This is the last step before
+ your profile will become visible to mentees.
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/welcome-to-redi-mentee.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/welcome-to-redi-mentee.copenhagen.mjml
new file mode 100644
index 000000000..6cda7f17c
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/welcome-to-redi-mentee.copenhagen.mjml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+ Welcome to ReDI Connect!
+
+
+ Hi ${firstName},
+ We are happy to now officially welcome you as a mentee to ReDI
+ Connect!
+ Thank you again for filling out all the required information on
+ ReDI Connect. Your profile is now officially approved, which means
+ that you are now ready to find a mentor. If you have questions,
+ please check our
+ FAQ
+ or
+
+ contact us
+ to speak with the ReDI Copenhagen team.
+
+ Log In to Your Profile
+
+ We wish you a wonderful mentorship experience!
+ If you have any questions or feedback at any point, please reach
+ out!
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/assets/email/templates/welcome-to-redi-mentor.copenhagen.mjml b/apps/nestjs-api/src/assets/email/templates/welcome-to-redi-mentor.copenhagen.mjml
new file mode 100644
index 000000000..7a106e91b
--- /dev/null
+++ b/apps/nestjs-api/src/assets/email/templates/welcome-to-redi-mentor.copenhagen.mjml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+ Welcome to ReDI Connect!
+
+
+ Hi ${firstName},
+ We are happy to now officially welcome you as a mentor to ReDI
+ Connect!
+ Thank you again for filling out all the required information on
+ ReDI Connect and having made time to meet for our onboarding
+ session.
+
+
+ Your profile has been approved. Students can now apply to be your
+ mentee. You're all set to make a difference as a mentor! Make sure
+ you keep your profile up to date.
+
+
+ Log In to Your Profile
+
+ While you're waiting for an application from a mentee, the ReDI
+ Copenhagen team will send you details about mentor updates, events,
+ and ways to connect with other ReDI mentors.
+ If you have any questions or feedback at any point, feel free to
+ reach out.
+ We wish you a wonderful mentorship experience!
+
+ All the best,
+ ReDI Copenhagen Team
+
+
+
+
+
+
+
diff --git a/apps/nestjs-api/src/con-profiles/con-profiles.service.ts b/apps/nestjs-api/src/con-profiles/con-profiles.service.ts
index 5d073acfc..8fd886576 100644
--- a/apps/nestjs-api/src/con-profiles/con-profiles.service.ts
+++ b/apps/nestjs-api/src/con-profiles/con-profiles.service.ts
@@ -3,9 +3,9 @@ import {
ConProfileEntity,
ConProfileMapper,
ConnectProfileStatus,
- RediLocation,
UserType,
} from '@talent-connect/common-types'
+import { getRediLocationMatchingPool } from '@talent-connect/shared-config'
import { deleteUndefinedProperties } from '@talent-connect/shared-utils'
import { groupBy } from 'lodash'
import { CurrentUserInfo } from '../auth/current-user.interface'
@@ -92,49 +92,30 @@ export class ConProfilesService {
if (_filter.filter.languages?.length > 0)
filter.Languages__c = { $includes: _filter.filter.languages }
- // Business requirement added in February 2024: we isolate Sweden and Germany,
- // meaning mentees in Sweden can only see mentors in Sweden and mentees in
- // Germany can only see mentors in Germany
- const swedenLocations = [RediLocation.MALMO]
- const germanyLocations = [
- RediLocation.BERLIN,
- RediLocation.CYBERSPACE,
- RediLocation.HAMBURG,
- RediLocation.MUNICH,
- RediLocation.NRW,
- ]
- const currentUserBelongsToRediSweden = swedenLocations.includes(
+ const matchingPool = getRediLocationMatchingPool(
currentUserConProfile.props.rediLocation
)
- const currentUserBelongsToRediGermany = germanyLocations.includes(
- currentUserConProfile.props.rediLocation
- )
- if (_filter.filter.locations?.length > 0) {
- filter.ReDI_Location__c = { $in: _filter.filter.locations }
- } else {
- if (currentUserBelongsToRediSweden) {
- filter.ReDI_Location__c = { $in: swedenLocations }
- } else if (currentUserBelongsToRediGermany) {
- filter.ReDI_Location__c = { $in: germanyLocations }
- }
- }
-
- if (currentUserBelongsToRediSweden) {
- filter.ReDI_Location__c.$in = filter.ReDI_Location__c.$in.filter(
- (location) => swedenLocations.includes(location)
- )
- } else if (currentUserBelongsToRediGermany) {
- filter.ReDI_Location__c.$in = filter.ReDI_Location__c.$in.filter(
- (location) => germanyLocations.includes(location)
- )
- } else {
+ if (!matchingPool) {
throw new Error(
'ConProfilesService:findAllAvailableMentors(): ' +
"Couldn't categorize current user's Connect " +
- ' Profile as belonging to either Sweden or Germany.'
+ 'profile into a ReDI location matching pool.'
)
}
+ const requestedLocations =
+ _filter.filter.locations?.length > 0
+ ? _filter.filter.locations
+ : matchingPool
+ const allowedLocations = requestedLocations.filter((location) =>
+ (matchingPool as readonly string[]).includes(location)
+ )
+ if (allowedLocations.length === 0) return []
+
+ filter.ReDI_Location__c = {
+ $in: allowedLocations,
+ }
+
return this.findAll(filter)
}
diff --git a/apps/nestjs-api/src/email/lib/email/email.js b/apps/nestjs-api/src/email/lib/email/email.js
index 6aeb1e221..82ee43fb5 100644
--- a/apps/nestjs-api/src/email/lib/email/email.js
+++ b/apps/nestjs-api/src/email/lib/email/email.js
@@ -1,5 +1,6 @@
'use strict'
+import { getRediConnectLocationDetails } from '@talent-connect/shared-config'
import { buildFrontendUrl } from '../build-frontend-url'
const Rx = require('rxjs')
@@ -25,15 +26,9 @@ export const sendMjmlEmail = Rx.bindNodeCallback(
transporter.sendMail.bind(transporter)
)
-// TODO: I'm a duplicate of getSenderDetails in apps/api/lib/email/email.js, keep me in sync
-const getSenderDetails = (rediLocation) => {
- const isMalmoLocation = rediLocation === 'MALMO'
- const senderName = isMalmoLocation
- ? 'ReDI Malmö Team'
- : 'ReDI Talent Success Team'
- const senderEmail = isMalmoLocation
- ? 'career@redi-school.org' // TODO: set back to career-sweden when we send email via Azure
- : 'career@redi-school.org'
+export const getSenderDetails = (rediLocation) => {
+ const { senderName, senderEmail } =
+ getRediConnectLocationDetails(rediLocation)
return { senderName, senderEmail }
}
@@ -67,7 +62,7 @@ function buildSubjectLine(subject, env) {
}
}
-const convertTemplateToHtml = (rediLocation, templateString) => {
+export const convertTemplateToHtml = (rediLocation, templateString) => {
if (rediLocation) rediLocation = rediLocation.toLowerCase()
const defaultTemplateFileName = `${templateString}.mjml`
const locationSpecificTemplateFileName = `${templateString}.${rediLocation}.mjml`
@@ -504,6 +499,7 @@ export const sendMentorshipDeclinedEmail = ({
const formatLocationName = (locationIdentifier) => {
return {
BERLIN: 'Berlin',
+ COPENHAGEN: 'Copenhagen',
HAMBURG: 'Hamburg',
MALMO: 'Malmö',
MUNICH: 'Munich',
diff --git a/apps/redi-connect/src/assets/locales/en/translation.json b/apps/redi-connect/src/assets/locales/en/translation.json
index b820578fe..50a9e363c 100644
--- a/apps/redi-connect/src/assets/locales/en/translation.json
+++ b/apps/redi-connect/src/assets/locales/en/translation.json
@@ -46,7 +46,7 @@
},
"preFooter": {
"headline": "Want to get in touch?",
- "content": "If you have questions or just want to say hello, feel free to contact a member of our ReDI Talent Success Team at career@redi-school.org (for ReDI Schools in Germany) or career.sweden@redi-school.org (for ReDI School in Sweden)."
+ "content": "If you have questions or just want to say hello, contact our ReDI Talent Success Team at career@redi-school.org (Germany), career.sweden@redi-school.org (Sweden), or connectdk@redi-school.org (Denmark)."
},
"faq": {
"headline": "Frequently asked questions",
@@ -80,11 +80,11 @@
},
{
"question": "If I have any questions, whom should I contact?",
- "answer": "If you are from ReDI School Germany, then please reach out to career@redi-school.org.If you are from ReDI School Malmö, then please use the following email addresses:General: malmo@redi-school.orgGeneral career: career.sweden@redi-school.orgMentorship Program Manager: gloria@redi-school.org"
+ "answer": "If you are from ReDI School Germany, please reach out to career@redi-school.org.If you are from ReDI School Malmö, please use the following email addresses:General: malmo@redi-school.orgGeneral career: career.sweden@redi-school.orgMentorship Program Manager: gloria@redi-school.org.If you are from ReDI School Copenhagen, please reach out to the ReDI Denmark team at connectdk@redi-school.org."
},
{
"question": "Is the mentorship service at ReDI School free of charge?",
- "answer": "Yes, mentorship at ReDI School is completely free of charge! Our mentors are wonderful volunteers who generously dedicate their time and passion to support our learners on their journey. Their commitment helps make the mentoring experience impactful and accessible for everyone. Important: If at any point a mentor suggests or refers you to a paid service where they are a direct beneficiary, please report this to us immediately at career@redi-school.org (for ReDI Schools in Germany) and at career.sweden@redi-school.org (for ReDI School in Sweden). We want to ensure that all mentorship remains free and aligned with ReDI's values of volunteer-driven support."
+ "answer": "Yes, mentorship at ReDI School is completely free of charge! Our mentors are wonderful volunteers who generously dedicate their time and passion to support our learners on their journey. Their commitment helps make the mentoring experience impactful and accessible for everyone. Important: If at any point a mentor suggests or refers you to a paid service where they are a direct beneficiary, please report this to us immediately at career@redi-school.org (Germany), career.sweden@redi-school.org (Sweden), or connectdk@redi-school.org (Denmark). We want to ensure that all mentorship remains free and aligned with ReDI's values of volunteer-driven support."
},
{
"question": "Will ReDI School check in with me to see how my long-term mentorship is going?",
@@ -97,7 +97,7 @@
"qAndAs": [
{
"question": "Who can become a mentor?",
- "answer": "To best serve our students' needs, we can only accept mentors who have working experience in Germany or Sweden. Our volunteer mentors come from various fields, including programming, engineering, design, HR, entrepreneurship, marketing, data science, and management."
+ "answer": "To best serve our students' needs, we can only accept mentors who have working experience in Germany, Sweden, or Denmark. Our volunteer mentors come from various fields, including programming, engineering, design, HR, entrepreneurship, marketing, data science, and management."
},
{
"question": "Am I ReDI to become a mentor?",
@@ -121,11 +121,11 @@
},
{
"question": "What to do if my mentee comes to me with issues I am not qualified to answer?",
- "answer": "If your mentee approaches you with any significant issues beyond the scope of your mentorship, kindly reach out to us at career@redi-school.org (for ReDI Schools in Germany) and at career.sweden@redi-school.org (for ReDI School in Sweden). You can also reach out to the mentorship community on slack. Please refrain from attempting to address psychological or financial matters independently. We maintain a connection with Ipso, an organization providing online psychosocial counseling, and can facilitate their support for your mentee when needed."
+ "answer": "If your mentee approaches you with any significant issues beyond the scope of your mentorship, kindly reach out to us at career@redi-school.org (Germany), career.sweden@redi-school.org (Sweden), or connectdk@redi-school.org (Denmark). You can also reach out to the mentorship community on Slack. Please refrain from attempting to address psychological or financial matters independently. We maintain a connection with Ipso, an organization providing online psychosocial counseling, and can facilitate their support for your mentee when needed."
},
{
"question": "Is there a way to meet the ReDI Connect Community?",
- "answer": "Yes, you can meet the ReDI Connect Community in several ways. Before each new semester, we typically organize info sessions for prospective ReDI volunteers. Once you become a mentor, you will be informed about upcoming events and workshops through our dedicated mentor Slack channel. Additionally, the ReDI Sweden team arranges various events for volunteers and students, and you'll receive invitations to those gatherings."
+ "answer": "Yes, you can meet the ReDI Connect Community in several ways. Before each new semester, we typically organize info sessions for prospective ReDI volunteers. Once you become a mentor, you will be informed about upcoming events and workshops through our dedicated mentor Slack channel. The local ReDI teams in Sweden and Denmark also arrange events for volunteers and students, and you'll receive invitations to those gatherings."
}
]
},
@@ -138,11 +138,11 @@
},
{
"question": "Am I ready to get a mentor?",
- "answer": "If you're unsure whether it's the right time to get a mentor, you can sign up and schedule a meeting with our Mentorship Community Manager. They will help you explore the best options for your current stage and assist you in setting your professional goals. This will help you identify the areas where you would benefit most from support during your mentoring sessions."
+ "answer": "If you're unsure whether it's the right time to get a mentor, you can sign up and schedule a meeting with our Mentorship Community Manager. Copenhagen users can instead contact the ReDI Denmark team at connectdk@redi-school.org. They will help you explore the best options for your current stage and assist you in setting your professional goals. This will help you identify the areas where you would benefit most from support during your mentoring sessions."
},
{
"question": "How do I find the right mentor?",
- "answer": "Make sure your profile reflects your needs and explains what you would like to get out of the mentorship. When looking for mentor profiles, use the filters to see the most relevant profiles. If you’re uncertain about which mentor to approach, feel free to contact a member of our ReDI Talent Success Team at career@redi-school.org (for ReDI Schools in Germany) or career.sweden@redi-school.org (for ReDI School in Sweden). Together, we can explore potential mentorship matches."
+ "answer": "Make sure your profile reflects your needs and explains what you would like to get out of the mentorship. When looking for mentor profiles, use the filters to see the most relevant profiles. If you’re uncertain about which mentor to approach, contact career@redi-school.org (Germany), career.sweden@redi-school.org (Sweden), or connectdk@redi-school.org (Denmark). Together, we can explore potential mentorship matches."
},
{
"question": "What happens after I've sent an application?",
@@ -191,7 +191,7 @@
},
{
"question": "What to do if the mentorship match doesn't feel right?",
- "answer": "If the mentorship match doesn’t feel right or if you believe it should not continue, that’s completely okay. You can contact a member of our ReDI Talent Success Team
at career@redi-school.org (for ReDI Schools in Germany) or
career.sweden@redi-school.org (for ReDI School in Sweden).
We will assist you in finding a solution or arranging a new match. It's better to address these concerns rather than staying in a mentorship relationship that isn’t fulfilling or has reached its end."
+ "answer": "If the mentorship match doesn’t feel right or if you believe it should not continue, that’s completely okay. Contact our ReDI Talent Success Team at career@redi-school.org (Germany), career.sweden@redi-school.org (Sweden), or connectdk@redi-school.org (Denmark). We will assist you in finding a solution or arranging a new match. It's better to address these concerns rather than staying in a mentorship relationship that isn’t fulfilling or has reached its end."
}
]
}
@@ -308,7 +308,7 @@
"title": "the mentor checklist",
"headline": "Are you ready to become a mentor?",
"items": [
- "I have working experience in Germany or Sweden",
+ "I have working experience in Germany, Sweden, or Denmark",
"I work as a trained professional.",
"I can support people in their career development in the digital industry.",
"I am willing to share knowledge and experiences with others.",
diff --git a/apps/redi-connect/src/pages/app/find-a-mentor/FindAMentor.tsx b/apps/redi-connect/src/pages/app/find-a-mentor/FindAMentor.tsx
index 54e1b22cd..9a249831e 100644
--- a/apps/redi-connect/src/pages/app/find-a-mentor/FindAMentor.tsx
+++ b/apps/redi-connect/src/pages/app/find-a-mentor/FindAMentor.tsx
@@ -20,10 +20,10 @@ import {
} from '@talent-connect/shared-atomic-design-components'
import {
CATEGORIES,
+ getRediLocationMatchingPool,
LANGUAGES,
REDI_LOCATION_NAMES,
} from '@talent-connect/shared-config'
-import { objectKeys } from '@talent-connect/typescript-utilities'
import { useEffect, useState } from 'react'
import { Columns, Content, Tag } from 'react-bulma-components'
import { useQueryClient } from 'react-query'
@@ -169,31 +169,13 @@ const FindAMentor = () => {
resetPaginationPageNumber()
}
- const isMalmoLocation = profile?.rediLocation === RediLocation.Malmo
-
- const filterRediLocations = objectKeys(REDI_LOCATION_NAMES)
- .filter((location) => {
- if (!profile) return false
- const currentUserWithRediSweden = [RediLocation.Malmo].includes(
- profile?.rediLocation
- )
- const currentUserWithRediGermany = [
- RediLocation.Berlin,
- RediLocation.Cyberspace,
- RediLocation.Hamburg,
- RediLocation.Munich,
- RediLocation.Nrw,
- ].includes(profile?.rediLocation)
- if (location === RediLocation.Malmo && currentUserWithRediSweden)
- return true
- if (location !== RediLocation.Malmo && currentUserWithRediGermany)
- return true
- return false
- })
- .map((location) => ({
- value: location,
- label: REDI_LOCATION_NAMES[location as RediLocation] as string,
- }))
+ const matchingPool = profile
+ ? getRediLocationMatchingPool(profile.rediLocation)
+ : undefined
+ const filterRediLocations = (matchingPool ?? []).map((location) => ({
+ value: location,
+ label: REDI_LOCATION_NAMES[location as RediLocation] as string,
+ }))
if (profile && profile?.profileStatus !== ConnectProfileStatus.Approved)
return
@@ -273,7 +255,7 @@ const FindAMentor = () => {
onChange={(item) => toggleFilters(languages, 'languages', item)}
/>
- {!isMalmoLocation && (
+ {filterRediLocations.length > 1 && (
),
- mentor: (rediLocation?: RediLocation) => (
- <>
-
Thanks for sending us your profile! We're reviewing
- it and will email you once it's done. While you're waiting, pick a
- time for your{' '}
-
- onboarding call
-
- . After the call and profile approval, students can apply to be your
- mentee!
- >
- ),
+ mentor: (rediLocation?: RediLocation) => {
+ const locationDetails = getRediConnectLocationDetails(rediLocation)
+ return (
+ <>
+
Thanks for sending us your profile! We're reviewing
+ it and will email you once it's done. While you're waiting,{' '}
+ {locationDetails.mentorOnboardingCalendarUrl ? (
+ <>
+ pick a time for your{' '}
+
+ onboarding call
+
+ >
+ ) : (
+ <>
+ contact us at{' '}
+
+ {locationDetails.contactEmail}
+ {' '}
+ to arrange your onboarding call
+ >
+ )}
+ . After the call and profile approval, students can apply to be your
+ mentee!
+ >
+ )
+ },
corporateMentor: (
<>
Thanks for sending us your profile! We are reviewing
@@ -84,42 +96,47 @@ export const ONBOARDING_STEPS = [
{
name: `You're all set!`,
message: {
- mentee: (rediLocation: RediLocation) => (
- <>
-
Congratulations! Your profile has been approved. You
- are now ready to{' '}
-
- find a mentor
-
- . If you have questions, please check our{' '}
-
- FAQ
-
- ,{' '}
-
- contact us
- {' '}
- or{' '}
-
- book a call
- {' '}
- with our Mentorship Program Manager.
- >
- ),
+ mentee: (rediLocation: RediLocation) => {
+ const locationDetails = getRediConnectLocationDetails(rediLocation)
+ return (
+ <>
+
Congratulations! Your profile has been approved.
+ You are now ready to{' '}
+
+ find a mentor
+
+ . If you have questions, please check our{' '}
+
+ FAQ
+
+ {locationDetails.menteeSupportCalendarUrl ? (
+ <>
+ ,{' '}
+
+ contact us
+ {' '}
+ or{' '}
+
+ book a call
+ {' '}
+ with our Mentorship Program Manager.
+ >
+ ) : (
+ <>
+ , or contact our Mentorship Program Manager at{' '}
+
+ {locationDetails.contactEmail}
+
+ .
+ >
+ )}
+ >
+ )
+ },
mentor: (rediLocation?: RediLocation) => (
<>
Congratulations! Your profile has been approved.
diff --git a/apps/redi-connect/src/pages/front/signup/SignUpComplete.tsx b/apps/redi-connect/src/pages/front/signup/SignUpComplete.tsx
index 371939dce..6a9e3bd34 100644
--- a/apps/redi-connect/src/pages/front/signup/SignUpComplete.tsx
+++ b/apps/redi-connect/src/pages/front/signup/SignUpComplete.tsx
@@ -1,11 +1,9 @@
-import {
- RediLocation,
- useLoadMyProfileQuery,
-} from '@talent-connect/data-access'
+import { useLoadMyProfileQuery } from '@talent-connect/data-access'
import {
Button,
Heading,
} from '@talent-connect/shared-atomic-design-components'
+import { getRediConnectLocationDetails } from '@talent-connect/shared-config'
import { Columns, Content, Form } from 'react-bulma-components'
import { useHistory, useParams } from 'react-router-dom'
import { Teaser } from '../../../components/molecules'
@@ -20,8 +18,9 @@ export default function SignUpComplete() {
const loopbackUserId = getAccessTokenFromLocalStorage().userId
const myProfileQuery = useLoadMyProfileQuery({ loopbackUserId })
- const isMalmoLocation =
- myProfileQuery.data?.conProfile.rediLocation === RediLocation.Malmo
+ const locationDetails = getRediConnectLocationDetails(
+ myProfileQuery.data?.conProfile.rediLocation
+ )
const isPartnershipMentor =
myProfileQuery.data?.conProfile.mentor_isPartnershipMentor === true
@@ -106,24 +105,9 @@ export default function SignUpComplete() {
Do you have questions? Feel free to contact us{' '}
-
- here
- {' '}
- or visit our{' '}
-
+ here or visit
+ our{' '}
+
ReDI school website
{' '}
for more information.
diff --git a/libs/common-types/src/lib/common-objects/enums/redi-location.enum.ts b/libs/common-types/src/lib/common-objects/enums/redi-location.enum.ts
index 5e0487b4f..e2d6e4c5b 100644
--- a/libs/common-types/src/lib/common-objects/enums/redi-location.enum.ts
+++ b/libs/common-types/src/lib/common-objects/enums/redi-location.enum.ts
@@ -2,6 +2,7 @@ import { registerEnumType } from '@nestjs/graphql'
export enum RediLocation {
BERLIN = 'BERLIN',
+ COPENHAGEN = 'COPENHAGEN',
HAMBURG = 'HAMBURG',
MALMO = 'MALMO',
MUNICH = 'MUNICH',
diff --git a/libs/data-access/src/lib/types/types.ts b/libs/data-access/src/lib/types/types.ts
index 4617e33b2..ca8913ad7 100644
--- a/libs/data-access/src/lib/types/types.ts
+++ b/libs/data-access/src/lib/types/types.ts
@@ -927,6 +927,7 @@ export type QueryTpJobseekerProfileArgs = {
export enum RediLocation {
Berlin = 'BERLIN',
+ Copenhagen = 'COPENHAGEN',
Cyberspace = 'CYBERSPACE',
Hamburg = 'HAMBURG',
Malmo = 'MALMO',
diff --git a/libs/shared-config/src/lib/config.ts b/libs/shared-config/src/lib/config.ts
index 8be894d43..32a62cca2 100644
--- a/libs/shared-config/src/lib/config.ts
+++ b/libs/shared-config/src/lib/config.ts
@@ -1,5 +1,6 @@
export const REDI_LOCATION_NAMES = {
BERLIN: 'ReDI Berlin',
+ COPENHAGEN: 'ReDI Copenhagen',
HAMBURG: 'ReDI Hamburg',
MALMO: 'ReDI Malmö',
MUNICH: 'ReDI Munich',
@@ -7,6 +8,75 @@ export const REDI_LOCATION_NAMES = {
CYBERSPACE: 'ReDI Online in Germany',
} as const
+export type RediLocationId = keyof typeof REDI_LOCATION_NAMES
+
+export const REDI_LOCATION_MATCHING_POOLS = {
+ germany: ['BERLIN', 'HAMBURG', 'MUNICH', 'NRW', 'CYBERSPACE'],
+ malmo: ['MALMO'],
+ copenhagen: ['COPENHAGEN'],
+} as const
+
+export function getRediLocationMatchingPool(
+ location: string
+): readonly RediLocationId[] | undefined {
+ return Object.values(REDI_LOCATION_MATCHING_POOLS).find((pool) =>
+ (pool as readonly string[]).includes(location)
+ )
+}
+
+export interface RediConnectLocationDetails {
+ senderName: string
+ senderEmail: string
+ contactEmail: string
+ websiteUrl: string
+ mentorOnboardingCalendarUrl?: string
+ menteeSupportCalendarUrl?: string
+}
+
+const GERMANY_CONNECT_LOCATION_DETAILS: RediConnectLocationDetails = {
+ senderName: 'ReDI Talent Success Team',
+ senderEmail: 'career@redi-school.org',
+ contactEmail: 'career@redi-school.org',
+ websiteUrl: 'https://www.redi-school.org/',
+ mentorOnboardingCalendarUrl: 'https://calendar.app.google/9rdEH1MKqz3VqGoj6',
+ menteeSupportCalendarUrl: 'https://calendar.app.google/Q4sYTuqioz6t6ZXHA',
+}
+
+export const REDI_CONNECT_LOCATION_DETAILS: Record<
+ RediLocationId,
+ RediConnectLocationDetails
+> = {
+ BERLIN: GERMANY_CONNECT_LOCATION_DETAILS,
+ COPENHAGEN: {
+ senderName: 'ReDI Copenhagen Team',
+ senderEmail: 'connectdk@redi-school.org',
+ contactEmail: 'connectdk@redi-school.org',
+ websiteUrl: 'https://www.redi-school.org/redi-school-denmark',
+ },
+ HAMBURG: GERMANY_CONNECT_LOCATION_DETAILS,
+ MALMO: {
+ senderName: 'ReDI Malmö Team',
+ senderEmail: 'career@redi-school.org',
+ contactEmail: 'career.sweden@redi-school.org',
+ websiteUrl: 'https://www.redi-school.org/redi-school-malmo',
+ mentorOnboardingCalendarUrl:
+ 'https://calendar.app.google/u7EEPxtDVqif32Gz7',
+ menteeSupportCalendarUrl: 'https://calendar.app.google/u7EEPxtDVqif32Gz7',
+ },
+ MUNICH: GERMANY_CONNECT_LOCATION_DETAILS,
+ NRW: GERMANY_CONNECT_LOCATION_DETAILS,
+ CYBERSPACE: GERMANY_CONNECT_LOCATION_DETAILS,
+}
+
+export function getRediConnectLocationDetails(
+ location?: string
+): RediConnectLocationDetails {
+ return (
+ REDI_CONNECT_LOCATION_DETAILS[location as RediLocationId] ||
+ GERMANY_CONNECT_LOCATION_DETAILS
+ )
+}
+
export const CATEGORY_GROUPS = {
softwareEngineering: 'Software Engineering',
design: 'Design',
diff --git a/libs/shared-types/src/lib/RediLocation.ts b/libs/shared-types/src/lib/RediLocation.ts
index 0ec7f82b8..15a689426 100644
--- a/libs/shared-types/src/lib/RediLocation.ts
+++ b/libs/shared-types/src/lib/RediLocation.ts
@@ -1,5 +1,6 @@
export type RediLocation =
| 'BERLIN'
+ | 'COPENHAGEN'
| 'HAMBURG'
| 'MALMO'
| 'MUNICH'
diff --git a/schema.graphql b/schema.graphql
index ab361293b..abdb9567a 100644
--- a/schema.graphql
+++ b/schema.graphql
@@ -605,6 +605,7 @@ type Query {
enum RediLocation {
BERLIN
+ COPENHAGEN
CYBERSPACE
HAMBURG
MALMO
@@ -1524,4 +1525,4 @@ input UserContactPatchInput {
enum UserType {
MENTEE
MENTOR
-}
\ No newline at end of file
+}