From 343d49d872a74a63a7ffa5f0a27a6932413f0771 Mon Sep 17 00:00:00 2001 From: rajashreemunoli Date: Tue, 25 Mar 2025 20:11:05 +0100 Subject: [PATCH 1/4] Added automation script for mentor spreadsheet creation' --- tools/README.md | 24 +++++- .../automation_create_mentor_spreadsheets.py | 79 +++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 tools/automation_create_mentor_spreadsheets.py diff --git a/tools/README.md b/tools/README.md index 5a74577b..d088e1c8 100644 --- a/tools/README.md +++ b/tools/README.md @@ -5,6 +5,8 @@ There are two automation scripts: 2) `download_image.py`: downloads image from a specified URL and saves in `assets/images/mentors` +3) `automation_create_mentor_spreadsheets.py`: creates spreadhseets for each longterm mentor with filenames like `WCC - Long Term - MentorName.xlsx`. All the files are saved in a folder named `Long Term Mentors`. It uses the data from `Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx` sheetname `Revised Mentees`as input. + ### Dependencies python 3.11 or above @@ -52,4 +54,24 @@ sh run_meetup_import.sh cd tools ``` -3) Execute the desired script with the same steps as in **How to Execute on Mac**. \ No newline at end of file +3) Execute the desired script with the same steps as in **How to Execute on Mac**. + +#### D) `automation_create_mentor_spreadsheets.py` + +1) [Install python](https://www.python.org/downloads/windows) +2) Download ad save the `Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx` data file in the same directory as the script file +3) Execute the script `automation_create_mentor_spreadsheets.py` +4) The script creates the folder `Long Term Mentors` that will have .xlsx files for each mentor +5) Each mentor will have a separate Excel file inside this folder, named: `WCC - Long Term - {Mentor Name}.xlsx` +6) Each file will contain mentee information specific to that mentor, including their reasons for selecting them + +**Note:** +πŸ“‚ File Structure Example +Your Folder +│── automation_generate_mentor_files.py # The script +│── Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx # Input data +│── πŸ“ Mentor_Files +β”‚ │── WCC - Long Term - Nonna Shakhova.xlsx +β”‚ │── WCC - Long Term - Rajani Rao.xlsx +β”‚ │── WCC - Long Term - Gabriel Oliveira.xlsx +β”‚ └── (more mentor files...) \ No newline at end of file diff --git a/tools/automation_create_mentor_spreadsheets.py b/tools/automation_create_mentor_spreadsheets.py new file mode 100644 index 00000000..54f3f139 --- /dev/null +++ b/tools/automation_create_mentor_spreadsheets.py @@ -0,0 +1,79 @@ +import pandas as pd +import os +import re +import copy # Import copy module for deep copying + +# Load the mentee registration data +file_path = "Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx" +sheet_name = "Revised Mentees" +df = pd.read_excel(file_path, sheet_name=sheet_name) # Read the specified sheet from the Excel file + +# Define the relevant columns based on the example file +columns_to_keep = [ + "Mentee Id", "What is your full name?", "What is your email address?", + "Slack Name\nPlease note your application will be rejected if you are not in our Slack community.\nClick here to join us on Slack.", + "Where are you based? (Country and/or city)", "What is your current job title / education status?", + "Company / University name", "Your LinkedIn Profile", "How many years of experience do you have in the tech industry?", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [5]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [4]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [3]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [2]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [1]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [5]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [4]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [3]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [2]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [1]", + "Please share your goals and expectations for this mentorship programme", + "Did you participate in the previous mentorship cycle in 2024?", + "Please describe how much experience you have in the area you would like to be mentored in. \n\nIf you are studying, tell us about your accomplished courses, projects, achievements, or interests", + "How many hours per week would you be able to dedicate to mentoring? (on average)", + "Why do you believe these mentor(s) can help you achieve your goals this year?\n\nPlease include which aspects of the mentor’s profile interest you the most and how they align with the skills the mentor offers and the ones you are also interested in developing." +] + +# Ensure output directory exists +output_dir = "Long Term Mentors" +os.makedirs(output_dir, exist_ok=True) # Create folder if it does not exist + +# Process mentor selections +mentor_column = "Which is the mentor's name would you like to be matched with?\nMake sure the name of the mentor is in WCC active mentors here.\n(Note: you can indicate interest for up to five mentors) in the respective priority you would like to be matched\n1. Full Name\n2. Full Name\n3. Full Name\n4. Full Name\n5. Full Name" +mentor_dict = {} # Dictionary to store mentees grouped by mentor + +for _, row in df.iterrows(): # Iterate through each row in the DataFrame + mentee_data = row[columns_to_keep].to_dict() # Extract mentee's details as a dictionary + if pd.notna(row[mentor_column]): # Check if the mentor column is not empty + mentor_entries = re.split(r"\n|\d+[.-]\s*", str(row[mentor_column])) # Split multiple mentor entries into a list + mentors = [] + reasons = {} # Dictionary to store mentor-specific reasons + + for entry in mentor_entries: + entry = entry.strip() # Remove extra spaces + if not entry: + continue + + # Extract mentor name and reason (if any) + match = re.match(r"^([^\-\n]+)\s*-?\s*(.*)$", entry) + if match: + mentor_name = match.group(1).strip() + entry_reason = match.group(2).strip() + mentors.append(mentor_name) + reasons[mentor_name] = entry_reason if entry_reason else "" + else: + mentors.append(entry) + reasons[entry] = "" + + for mentor_name in mentors: + mentee_copy = copy.deepcopy(mentee_data) # Create a separate copy for each mentor + mentee_copy["Why do you believe these mentor(s) can help you achieve your goals this year?\n\nPlease include which aspects of the mentor’s profile interest you the most and how they align with the skills the mentor offers and the ones you are also interested in developing."] = reasons[mentor_name] + + if mentor_name not in mentor_dict: + mentor_dict[mentor_name] = [] # Create a new list for the mentor if not already present + mentor_dict[mentor_name].append(mentee_copy) # Add mentee's details to the mentor's list + +# Save each mentor's mentee list as an Excel file +for mentor, mentees in mentor_dict.items(): # Loop through each mentor + mentor_df = pd.DataFrame(mentees) # Create a DataFrame for the mentor's mentees + mentor_filename = os.path.join(output_dir, f"WCC - Long Term - {mentor}.xlsx") # Define file name + mentor_df.to_excel(mentor_filename, index=False) # Save to an Excel file + +print("Files created successfully in 'Mentor_Files' folder.") # Confirmation message \ No newline at end of file From 3f0ad504f8a028cda5660a946a817fdf105cdfde Mon Sep 17 00:00:00 2001 From: rajashreemunoli Date: Sat, 29 Mar 2025 01:36:33 +0100 Subject: [PATCH 2/4] updated automation_create_mentor_spreadsheets.py to enable running in local repo --- .../automation_create_mentor_spreadsheets.py | 146 ++++++++++-------- 1 file changed, 78 insertions(+), 68 deletions(-) diff --git a/tools/automation_create_mentor_spreadsheets.py b/tools/automation_create_mentor_spreadsheets.py index 54f3f139..898aa7d1 100644 --- a/tools/automation_create_mentor_spreadsheets.py +++ b/tools/automation_create_mentor_spreadsheets.py @@ -3,77 +3,87 @@ import re import copy # Import copy module for deep copying -# Load the mentee registration data -file_path = "Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx" -sheet_name = "Revised Mentees" -df = pd.read_excel(file_path, sheet_name=sheet_name) # Read the specified sheet from the Excel file +def process_mentees(file_path, sheet_name, output_dir): + """Processes the mentee registration data and generates Excel files for each mentor.""" + df = pd.read_excel(file_path, sheet_name=sheet_name) # Read the specified sheet from the Excel file -# Define the relevant columns based on the example file -columns_to_keep = [ - "Mentee Id", "What is your full name?", "What is your email address?", - "Slack Name\nPlease note your application will be rejected if you are not in our Slack community.\nClick here to join us on Slack.", - "Where are you based? (Country and/or city)", "What is your current job title / education status?", - "Company / University name", "Your LinkedIn Profile", "How many years of experience do you have in the tech industry?", - "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [5]", - "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [4]", - "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [3]", - "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [2]", - "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [1]", - "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [5]", - "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [4]", - "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [3]", - "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [2]", - "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [1]", - "Please share your goals and expectations for this mentorship programme", - "Did you participate in the previous mentorship cycle in 2024?", - "Please describe how much experience you have in the area you would like to be mentored in. \n\nIf you are studying, tell us about your accomplished courses, projects, achievements, or interests", - "How many hours per week would you be able to dedicate to mentoring? (on average)", - "Why do you believe these mentor(s) can help you achieve your goals this year?\n\nPlease include which aspects of the mentor’s profile interest you the most and how they align with the skills the mentor offers and the ones you are also interested in developing." -] + # Define the relevant columns based on the example file + columns_to_keep = [ + "Mentee Id", "What is your full name?", + "Slack Name\nPlease note your application will be rejected if you are not in our Slack community.\nClick here to join us on Slack.", + "Where are you based? (Country and/or city)", "What is your current job title / education status?", + "Company / University name", "Your LinkedIn Profile", "How many years of experience do you have in the tech industry?", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [5]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [4]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [3]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [2]", + "What tech skill you are most interested in? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [1]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [5]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [4]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [3]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [2]", + "What is your preferred programming language? Mark your preference from 1 to 5 (1 - lowest, 5 - highest) [1]", + "Please share your goals and expectations for this mentorship programme", + "Did you participate in the previous mentorship cycle in 2024?", + "Please describe how much experience you have in the area you would like to be mentored in. \n\nIf you are studying, tell us about your accomplished courses, projects, achievements, or interests", + "How many hours per week would you be able to dedicate to mentoring? (on average)", + "Why do you believe these mentor(s) can help you achieve your goals this year?\n\nPlease include which aspects of the mentor’s profile interest you the most and how they align with the skills the mentor offers and the ones you are also interested in developing." + ] -# Ensure output directory exists -output_dir = "Long Term Mentors" -os.makedirs(output_dir, exist_ok=True) # Create folder if it does not exist + # Ensure output directory exists + os.makedirs(output_dir, exist_ok=True) # Create folder if it does not exist -# Process mentor selections -mentor_column = "Which is the mentor's name would you like to be matched with?\nMake sure the name of the mentor is in WCC active mentors here.\n(Note: you can indicate interest for up to five mentors) in the respective priority you would like to be matched\n1. Full Name\n2. Full Name\n3. Full Name\n4. Full Name\n5. Full Name" -mentor_dict = {} # Dictionary to store mentees grouped by mentor + # Process mentor selections + mentor_column = "Which is the mentor's name would you like to be matched with?\nMake sure the name of the mentor is in WCC active mentors here.\n(Note: you can indicate interest for up to five mentors) in the respective priority you would like to be matched\n1. Full Name\n2. Full Name\n3. Full Name\n4. Full Name\n5. Full Name" + mentor_dict = {} # Dictionary to store mentees grouped by mentor -for _, row in df.iterrows(): # Iterate through each row in the DataFrame - mentee_data = row[columns_to_keep].to_dict() # Extract mentee's details as a dictionary - if pd.notna(row[mentor_column]): # Check if the mentor column is not empty - mentor_entries = re.split(r"\n|\d+[.-]\s*", str(row[mentor_column])) # Split multiple mentor entries into a list - mentors = [] - reasons = {} # Dictionary to store mentor-specific reasons - - for entry in mentor_entries: - entry = entry.strip() # Remove extra spaces - if not entry: - continue - - # Extract mentor name and reason (if any) - match = re.match(r"^([^\-\n]+)\s*-?\s*(.*)$", entry) - if match: - mentor_name = match.group(1).strip() - entry_reason = match.group(2).strip() - mentors.append(mentor_name) - reasons[mentor_name] = entry_reason if entry_reason else "" - else: - mentors.append(entry) - reasons[entry] = "" - - for mentor_name in mentors: - mentee_copy = copy.deepcopy(mentee_data) # Create a separate copy for each mentor - mentee_copy["Why do you believe these mentor(s) can help you achieve your goals this year?\n\nPlease include which aspects of the mentor’s profile interest you the most and how they align with the skills the mentor offers and the ones you are also interested in developing."] = reasons[mentor_name] - - if mentor_name not in mentor_dict: - mentor_dict[mentor_name] = [] # Create a new list for the mentor if not already present - mentor_dict[mentor_name].append(mentee_copy) # Add mentee's details to the mentor's list + for _, row in df.iterrows(): # Iterate through each row in the DataFrame + mentee_data = row[columns_to_keep].to_dict() # Extract mentee's details as a dictionary + if pd.notna(row[mentor_column]): # Check if the mentor column is not empty + mentor_entries = re.split(r"\n|\d+[.-]\s*", str(row[mentor_column])) # Split multiple mentor entries into a list + mentors = [] + reasons = {} # Dictionary to store mentor-specific reasons -# Save each mentor's mentee list as an Excel file -for mentor, mentees in mentor_dict.items(): # Loop through each mentor - mentor_df = pd.DataFrame(mentees) # Create a DataFrame for the mentor's mentees - mentor_filename = os.path.join(output_dir, f"WCC - Long Term - {mentor}.xlsx") # Define file name - mentor_df.to_excel(mentor_filename, index=False) # Save to an Excel file + for entry in mentor_entries: + entry = entry.strip() # Remove extra spaces + if not entry: + continue -print("Files created successfully in 'Mentor_Files' folder.") # Confirmation message \ No newline at end of file + # Extract mentor name and reason (if any) + match = re.match(r"^([^\-\n]+)\s*-?\s*(.*)$", entry) + if match: + mentor_name = match.group(1).strip() + entry_reason = match.group(2).strip() + # Normalize mentor names to avoid variations + mentor_name = mentor_name.lower().strip().title() # Convert to Title Case for consistency + mentors.append(mentor_name) + reasons[mentor_name] = entry_reason if entry_reason else "" + else: + mentors.append(entry) + reasons[entry] = "" + + for mentor_name in mentors: + mentee_copy = copy.deepcopy(mentee_data) # Create a separate copy for each mentor + mentee_copy["Why do you believe these mentor(s) can help you achieve your goals this year?\n\nPlease include which aspects of the mentor’s profile interest you the most and how they align with the skills the mentor offers and the ones you are also interested in developing."] = reasons[mentor_name] + + if mentor_name not in mentor_dict: + mentor_dict[mentor_name] = [] # Create a new list for the mentor if not already present + mentor_dict[mentor_name].append(mentee_copy) # Add mentee's details to the mentor's list + + # Save each mentor's mentee list as an Excel file + for mentor, mentees in mentor_dict.items(): # Loop through each mentor + mentor_df = pd.DataFrame(mentees) # Create a DataFrame for the mentor's mentees + mentor_filename = os.path.join(output_dir, f"WCC - Long Term - {mentor}.xlsx") # Define file name + mentor_df.to_excel(mentor_filename, index=False) # Save to an Excel file + + print("Files created successfully in 'Long Term Mentors' folder!") # Confirmation message + +if __name__ == "__main__": + # Set file paths + + file_path = "samples/Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx" + sheet_name = "Revised Mentees" + output_dir = "Long Term Mentors" #change this to local folder path + + # Run the mentor processing logic + process_mentees(file_path, sheet_name, output_dir) # Call your main function (assuming you structured the script properly) \ No newline at end of file From b5c31cfd69f9b0b33c0df26f33d50521dad3c0ff Mon Sep 17 00:00:00 2001 From: rajashreemunoli Date: Sat, 29 Mar 2025 08:24:48 +0100 Subject: [PATCH 3/4] updated instructions for using automation_create_mentor_spreadsheets.py --- tools/README.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/tools/README.md b/tools/README.md index d088e1c8..c4c31388 100644 --- a/tools/README.md +++ b/tools/README.md @@ -59,19 +59,17 @@ sh run_meetup_import.sh #### D) `automation_create_mentor_spreadsheets.py` 1) [Install python](https://www.python.org/downloads/windows) -2) Download ad save the `Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx` data file in the same directory as the script file -3) Execute the script `automation_create_mentor_spreadsheets.py` -4) The script creates the folder `Long Term Mentors` that will have .xlsx files for each mentor -5) Each mentor will have a separate Excel file inside this folder, named: `WCC - Long Term - {Mentor Name}.xlsx` -6) Each file will contain mentee information specific to that mentor, including their reasons for selecting them +2) Download ad save the `Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx` data file in the 'tools/samples' directory as the script file +3) Ensure sheet_name is set correctly in the script as `Revised Mentees` +4) Update `output_dir` to a `local folder path/Long Term Mentors` +5) The script creates the folder `Long Term Mentors` that will have .xlsx files for each mentor +6) Execute the script `automation_create_mentor_spreadsheets.py` +7) Each mentor will have a separate Excel file inside this folder, named: `WCC - Long Term - {Mentor Name}.xlsx` +8) Each file will contain mentee information specific to that mentor, including their reasons for selecting them **Note:** -πŸ“‚ File Structure Example -Your Folder -│── automation_generate_mentor_files.py # The script -│── Mentorship Programme long-term Registration Form for Mentees (Responses).xlsx # Input data -│── πŸ“ Mentor_Files -β”‚ │── WCC - Long Term - Nonna Shakhova.xlsx -β”‚ │── WCC - Long Term - Rajani Rao.xlsx -β”‚ │── WCC - Long Term - Gabriel Oliveira.xlsx -β”‚ └── (more mentor files...) \ No newline at end of file + +πŸ“ Long Term Mentors + │── WCC - Long Term - Nonna Shakhova.xlsx + │── WCC - Long Term - Rajani Rao.xlsx + │── WCC - Long Term - Gabriel Oliveira.xlsx └── (more mentor files...) \ No newline at end of file From f1727a6073b6974a4f07070d14f52688820487be Mon Sep 17 00:00:00 2001 From: rajashreemunoli Date: Fri, 9 May 2025 15:24:36 +0200 Subject: [PATCH 4/4] Added reveiw for mentor Rajani Rao --- _data/reviews.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_data/reviews.yml b/_data/reviews.yml index 34ad7d61..a6547090 100644 --- a/_data/reviews.yml +++ b/_data/reviews.yml @@ -114,6 +114,13 @@ - index: 2 # Rajani feedback: + - score: 5 + date: 20250509 + date-f: 09 May 2025 + feedback: | + My session with Rajani exceeded my expectations. She's calm, caring, and incredibly knowledgeable. She offered valuable guidance not only on my career but also on life in general. Rajani truly embodies a growth mindset. I highly recommend her to any mentee seeking direction delivered with both compassion and wisdom. + name: Busra + type: Long Term Mentorship - score: 5 date: 20240805 date-f: 05 August 2024