### Set up the Frontend Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/README.md Installs the required Node.js dependencies for the React frontend. ```bash cd ../frontend npm install ``` -------------------------------- ### Distutils Setup Keywords Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/setuptools-65.5.0.dist-info/entry_points.txt Configuration keywords for setuptools' distribution setup. ```APIDOC ## Distutils Setup Keywords This section outlines the keywords recognized by setuptools for configuring package distribution. ### Keywords and their Validation Functions - **dependency_links**: `setuptools.dist:assert_string_list` - **eager_resources**: `setuptools.dist:assert_string_list` - **entry_points**: `setuptools.dist:check_entry_points` - **exclude_package_data**: `setuptools.dist:check_package_data` - **extras_require**: `setuptools.dist:check_extras` - **include_package_data**: `setuptools.dist:assert_bool` - **install_requires**: `setuptools.dist:check_requirements` - **namespace_packages**: `setuptools.dist:check_nsp` - **package_data**: `setuptools.dist:check_package_data` - **packages**: `setuptools.dist:check_packages` - **python_requires**: `setuptools.dist:check_specifier` - **setup_requires**: `setuptools.dist:check_requirements` - **test_loader**: `setuptools.dist:check_importable` - **test_runner**: `setuptools.dist:check_importable` - **test_suite**: `setuptools.dist:check_test_suite` - **tests_require**: `setuptools.dist:check_requirements` - **use_2to3**: `setuptools.dist:invalid_unless_false` - **zip_safe**: `setuptools.dist:assert_bool` ``` -------------------------------- ### Set up the Backend Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/README.md Configures the Python virtual environment and installs necessary dependencies for the Flask backend. ```bash cd backend python -m venv venv source venv/bin/activate # On Windows use: `venv\Scripts\activate` pip install -r requirements.txt ``` -------------------------------- ### Run the Backend Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/README.md Starts the Flask development server after activating the virtual environment. ```bash cd backend source venv/bin/activate # Or Windows equivalent python app.py # or flask run ``` -------------------------------- ### Run the Frontend Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/README.md Starts the Vite development server for the React frontend. ```bash cd frontend npm run dev ``` -------------------------------- ### Frontend API Client Usage Examples Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Examples demonstrating how to use the provided frontend API client (Axios-based) for various backend operations. ```APIDOC ## Frontend API Client Usage ### Description This section provides examples of how to use the frontend API client, which is built using Axios and handles session management automatically. ### Upload Resume and Extract Skills ```javascript import { api } from './services/api'; const handleResumeUpload = async (file) => { const formData = new FormData(); formData.append('file', file); try { const response = await api.uploadResume(formData); const { skills, education, experience, global_context } = response.data.parsed; console.log('Extracted skills:', skills); console.log('Experience level:', global_context); } catch (error) { console.error('Resume upload failed:', error.message); } }; ``` ### Analyze Skill Gaps ```javascript const analyzeGaps = async (skills, targetRole) => { const response = await api.analyzeRoleGaps(skills, targetRole); const { missing_skills, match_score, alternative_roles } = response.data; console.log(`Match score: ${match_score}%, Missing: ${missing_skills.join(', ')}`); }; ``` ### Generate Personalized Learning Path ```javascript const generatePath = async () => { const response = await api.generateLearningPath({ target_role: 'Full Stack Developer', selected_skills: ['Node.js', 'TypeScript', 'Docker'], learning_pace: 'Balanced', time_commitment: '1 hour', duration: '1 month', project_type: 'portfolio', include_youtube: true }); const { learning_path, matching_score } = response.data; console.log('Generated path:', learning_path.summary); }; ``` ### Analyze GitHub Profile ```javascript const analyzeGitHub = async (username) => { const response = await api.analyzeGitHub(username); if (response.data.available) { console.log('Languages:', Object.keys(response.data.languages)); console.log('Total repos:', response.data.total_repos); } }; ``` ### Interactive AI Chat ```javascript const sendChatMessage = async (role, messages) => { const response = await api.roleChat(role, messages, 'groq'); return response.data.response; }; ``` ``` -------------------------------- ### Perform Division on Masked Arrays Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/numpy/ma/README.rst Examples demonstrating different approaches to performing division on masked arrays, including filling strategies and direct operations. ```python import numpy import maskedarray as ma x = ma.array([1,2,3,4],mask=[1,0,0,0], dtype=numpy.float_) y = ma.array([-1,0,1,2], mask=[0,0,0,1], dtype=numpy.float_) ``` ```python d1 = x.filled(0) # d1 = array([0., 2., 3., 4.]) d2 = y.filled(1) # array([-1., 0., 1., 1.]) m = ma.mask_or(ma.getmask(x), ma.getmask(y)) # m = array([True,False,False,True]) dm = ma.divide.domain(d1,d2) # array([False, True, False, False]) result = (d1/d2).view(MaskedArray) # masked_array([-0. inf, 3., 4.]) result._mask = logical_or(m, dm) ``` ```python d1 = x._data.copy() # d1 = array([1., 2., 3., 4.]) d2 = y._data.copy() # d2 = array([-1., 0., 1., 2.]) dm = ma.divide.domain(d1,d2) # array([False, True, False, False]) numpy.putmask(d2, dm, 1) # d2 = array([-1., 1., 1., 2.]) m = ma.mask_or(ma.getmask(x), ma.getmask(y)) # m = array([True,False,False,True]) result = (d1/d2).view(MaskedArray) # masked_array([-1. 0., 3., 2.]) result._mask = logical_or(m, dm) ``` ```python d1 = x._data # d1 = array([1., 2., 3., 4.]) d2 = y._data # d2 = array([-1., 0., 1., 2.]) dm = ma.divide.domain(d1,d2) # array([False, True, False, False]) m = ma.mask_or(ma.getmask(x), ma.getmask(y)) # m = array([True,False,False,True]) result = (d1/d2).view(MaskedArray) # masked_array([-1. inf, 3., 2.]) result._mask = logical_or(m, dm) ``` -------------------------------- ### Setuptools Finalize Distribution Options Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/setuptools-65.5.0.dist-info/entry_points.txt Options for finalizing distribution settings in setuptools. ```APIDOC ## Setuptools Finalize Distribution Options This section describes the options related to finalizing distribution settings within setuptools. ### Finalization Options - **keywords**: `setuptools.dist:Distribution._finalize_setup_keywords` - **parent_finalize**: `setuptools.dist:_Distribution.finalize_options` ``` -------------------------------- ### Clone the repository Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/README.md Initial step to download the project source code to your local machine. ```bash git clone https://github.com/your-username/ai-skill-gap-generator.git cd ai-skill-gap-generator ``` -------------------------------- ### Distutils Commands Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/setuptools-65.5.0.dist-info/entry_points.txt Mappings for distutils commands to their setuptools equivalents. ```APIDOC ## Distutils Commands This section details the mapping of standard distutils commands to their implementations within setuptools. ### Command Mappings - **alias**: `setuptools.command.alias:alias` - **bdist_egg**: `setuptools.command.bdist_egg:bdist_egg` - **bdist_rpm**: `setuptools.command.bdist_rpm:bdist_rpm` - **build**: `setuptools.command.build:build` - **build_clib**: `setuptools.command.build_clib:build_clib` - **build_ext**: `setuptools.command.build_ext:build_ext` - **build_py**: `setuptools.command.build_py:build_py` - **develop**: `setuptools.command.develop:develop` - **dist_info**: `setuptools.command.dist_info:dist_info` - **easy_install**: `setuptools.command.easy_install:easy_install` - **editable_wheel**: `setuptools.command.editable_wheel:editable_wheel` - **egg_info**: `setuptools.command.egg_info:egg_info` - **install**: `setuptools.command.install:install` - **install_egg_info**: `setuptools.command.install_egg_info:install_egg_info` - **install_lib**: `setuptools.command.install_lib:install_lib` - **install_scripts**: `setuptools.command.install_scripts:install_scripts` - **rotate**: `setuptools.command.rotate:rotate` - **saveopts**: `setuptools.command.saveopts:saveopts` - **sdist**: `setuptools.command.sdist:sdist` - **setopt**: `setuptools.command.setopt:setopt` - **test**: `setuptools.command.test:test` - **upload_docs**: `setuptools.command.upload_docs:upload_docs` ``` -------------------------------- ### Generate Personalized Learning Path Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Generates a tailored learning plan based on your target role, selected skills, learning pace, and time commitment. Optionally includes YouTube video recommendations for each learning step. ```bash curl -X POST http://localhost:8080/api/generate_learning_path \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "target_role": "Full Stack Developer", "selected_skills": ["Node.js", "TypeScript", "Docker"], "learning_pace": "Balanced", "time_commitment": "1 hour", "duration": "1 month", "project_type": "portfolio", "include_youtube": true }' ``` -------------------------------- ### Configure Backend Environment Variables Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/DEPLOYMENT.md Required environment variables for the Render backend deployment. ```bash JWT_SECRET_KEY=your-super-secret-key-123 SUPABASE_URL=https://kquhgkomsqlbqjigxmiz.supabase.co SUPABASE_KEY=eyJhbGci... CORS_ALLOWED_ORIGINS=https://ai-skill-gap-generator.vercel.app PYTHON_VERSION=3.11.0 ``` -------------------------------- ### Upload Resume for Parsing Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Use this endpoint to upload a PDF resume for AI-powered deep extraction of skills, education, and experience. The API returns structured data including detected skills, experience level, and contact URLs. ```bash curl -X POST http://localhost:8080/api/upload_resume \ -H "X-Session-ID: user-session-123" \ -F "file=@resume.pdf" ``` ```json { "status": "ok", "parsed": { "skills": ["Python", "React", "AWS", "Docker", "PostgreSQL"], "education": [ { "degree": "B.Tech Computer Science", "institution": "MIT", "graduation_year": 2024, "gpa": "8.5/10" } ], "experience": [ { "company": "Google", "title": "Software Engineer", "start_year": 2022, "end_year": 2024, "is_current": false } ], "certifications": ["AWS Solutions Architect"], "languages": ["English", "Hindi"], "total_experience_years": 2, "global_context": "experienced", "has_projects": true, "github_url": "https://github.com/username", "linkedin_url": "https://linkedin.com/in/username", "location": {"city": "Bangalore", "state": "Karnataka", "country": "India"}, "filled_boxes": 6, "total_boxes": 7, "filled_percentage": 86 } } ``` -------------------------------- ### Save Entire Learning Path Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Saves a user's selected skills and a defined learning path for a target role. Requires a session ID. ```bash # Save entire learning path curl -X POST http://localhost:8080/api/save_learning_path \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "target_role": "Full Stack Developer", "selected_skills": ["Node.js", "TypeScript", "Docker"], "learning_path": { "summary": "30-day learning plan", "skills": {} } }' ``` ```json # Response: {"status": "ok", "message": "Learning path saved to database"} ``` -------------------------------- ### Configure Frontend Environment Variables Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/DEPLOYMENT.md Required environment variables for the Vercel frontend deployment. ```bash VITE_API_URL=https://ai-skill-gap-generator.onrender.com VITE_SUPABASE_URL=https://kquhgkomsqlbqjigxmiz.supabase.co VITE_SUPABASE_KEY=eyJhbGci... ``` -------------------------------- ### Frontend API Client: Generate Learning Path Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Generates a personalized learning path based on role, skills, and learning preferences. Uses the `api.generateLearningPath` method. ```javascript // Generate personalized learning path const generatePath = async () => { const response = await api.generateLearningPath({ target_role: 'Full Stack Developer', selected_skills: ['Node.js', 'TypeScript', 'Docker'], learning_pace: 'Balanced', time_commitment: '1 hour', duration: '1 month', project_type: 'portfolio', include_youtube: true }); const { learning_path, matching_score } = response.data; console.log('Generated path:', learning_path.summary); }; ``` -------------------------------- ### Find Job Matches with Skills and Role Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Use this endpoint to find job postings that match a user's skills and a target role. It requires a session ID and returns job listings with match statistics. ```bash # Get job matches based on skills and role curl -X POST http://localhost:8080/api/job_matches \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "skills": ["Python", "React", "AWS"], "role": "Full Stack Developer", "experience_level": "neutral", "location": {"country": "India", "city": "Bangalore"} }' ``` ```json # Response: { "jobs": [ { "title": "Full Stack Developer", "company": "Tech Corp", "location": "Bangalore, India", "url": "https://remotive.com/job/123", "salary_range": "$60k-$80k", "skills_match": 75 } ], "total_found": 25, "sources": ["remotive", "adzuna"], "experience_filter": "neutral", "user_location": {"country": "India", "city": "Bangalore"}, "stats": { "avg_match": 68, "top_match": 85 } } ``` -------------------------------- ### Generate Learning Path API Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Generate a comprehensive AI-powered learning plan for selected skills, including step-by-step paths, project suggestions, and optional YouTube video recommendations. ```APIDOC ## POST /api/generate_learning_path ### Description Generate a comprehensive AI-powered learning plan for selected skills. Includes step-by-step learning paths, project suggestions, and optional YouTube video recommendations for each skill. ### Method POST ### Endpoint /api/generate_learning_path ### Parameters #### Header Parameters - **Content-Type** (string) - Required - Should be 'application/json'. - **X-Session-ID** (string) - Required - User session identifier. #### Request Body - **target_role** (string) - Required - The desired job role. - **selected_skills** (array of strings) - Required - Skills to focus on for the learning path. - **learning_pace** (string) - Optional - Desired learning pace (e.g., 'Balanced', 'Fast', 'Slow'). - **time_commitment** (string) - Optional - Daily time commitment for learning (e.g., '1 hour', '2 hours'). - **duration** (string) - Optional - Total duration for the learning plan (e.g., '1 month', '3 months'). - **project_type** (string) - Optional - Type of projects to include (e.g., 'portfolio', 'challenge'). - **include_youtube** (boolean) - Optional - Whether to include YouTube video recommendations. ### Request Example ```bash curl -X POST http://localhost:8080/api/generate_learning_path \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d { "target_role": "Full Stack Developer", "selected_skills": ["Node.js", "TypeScript", "Docker"], "learning_pace": "Balanced", "time_commitment": "1 hour", "duration": "1 month", "project_type": "portfolio", "include_youtube": true } ``` ### Response #### Success Response (200) (Response structure for this endpoint is not detailed in the provided text. Typically, it would include a structured learning plan with steps, resources, and project ideas.) #### Response Example (No example provided in the source text.) ``` -------------------------------- ### Fuse Skill Data from Multiple Sources Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Fuse skill data from manual input, GitHub analysis, and resume to calculate comprehensive proficiency scores. This uses a weighted triangulation algorithm. Requires skill data, GitHub username, and resume details. ```bash # Fuse profile data from multiple sources curl -X POST http://localhost:8080/api/fuse-profile \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "skills": [ {"name": "Python", "manual_score": 70}, {"name": "React", "manual_score": 60} ], "github_username": "octocat", "resume_data": { "skills": [{"skill": "Python", "context": "experienced", "has_projects": true}], "global_context": "experienced", "has_projects": true, "estimated_years": 3 } }' ``` -------------------------------- ### Frontend API Client: Upload Resume Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Handles uploading a resume file to the backend and extracting skills, education, and experience. Uses the `api.uploadResume` method from the frontend client. ```javascript import { api } from './services/api'; // Upload resume and extract skills const handleResumeUpload = async (file) => { const formData = new FormData(); formData.append('file', file); try { const response = await api.uploadResume(formData); const { skills, education, experience, global_context } = response.data.parsed; console.log('Extracted skills:', skills); console.log('Experience level:', global_context); } catch (error) { console.error('Resume upload failed:', error.message); } }; ``` -------------------------------- ### Retrieve Saved Learning Path Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Retrieves a previously saved learning path for a user. Requires a session ID. ```bash # Retrieve saved learning path curl -X GET http://localhost:8080/api/get_saved_learning_path \ -H "X-Session-ID: user-session-123" ``` ```json # Response: { "status": "ok", "has_saved_path": true, "data": { "target_role": "Full Stack Developer", "selected_skills": ["Node.js", "TypeScript", "Docker"], "learning_path": {...}, "updated_at": "2024-01-15T10:30:00Z" } } ``` -------------------------------- ### Save Learning Step Progress Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Saves the progress of a specific learning step for a given skill. Requires a session ID and indicates completion status. ```bash # Save learning step progress curl -X POST http://localhost:8080/api/save_learning_progress \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "skill_name": "Node.js", "step_index": 2, "completed": true }' ``` ```json # Response: {"status": "ok", "message": "Progress saved to database"} ``` -------------------------------- ### Resume Upload and Parsing API Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Upload a PDF resume to extract structured data including skills, education, experience, and contact information using AI-powered deep extraction. ```APIDOC ## POST /api/upload_resume ### Description Upload a PDF resume for deep AI-powered parsing. The API parses the resume and returns structured data including detected skills, experience level, GitHub/LinkedIn URLs, and location. ### Method POST ### Endpoint /api/upload_resume ### Parameters #### Header Parameters - **X-Session-ID** (string) - Required - User session identifier. #### Form Data - **file** (file) - Required - The PDF resume file to upload. ### Request Example ```bash curl -X POST http://localhost:8080/api/upload_resume \ -H "X-Session-ID: user-session-123" \ -F "file=@resume.pdf" ``` ### Response #### Success Response (200) - **status** (string) - Indicates the status of the operation ('ok'). - **parsed** (object) - Contains the structured data extracted from the resume. - **skills** (array of strings) - List of detected skills. - **education** (array of objects) - List of educational qualifications. - **degree** (string) - Degree obtained. - **institution** (string) - Name of the institution. - **graduation_year** (integer) - Year of graduation. - **gpa** (string) - Grade Point Average. - **experience** (array of objects) - List of work experiences. - **company** (string) - Name of the company. - **title** (string) - Job title. - **start_year** (integer) - Year employment started. - **end_year** (integer) - Year employment ended. - **is_current** (boolean) - True if the position is current. - **certifications** (array of strings) - List of certifications. - **languages** (array of strings) - List of spoken languages. - **total_experience_years** (integer) - Total years of professional experience. - **global_context** (string) - Overall experience level. - **has_projects** (boolean) - Indicates if projects are mentioned. - **github_url** (string) - URL to the GitHub profile. - **linkedin_url** (string) - URL to the LinkedIn profile. - **location** (object) - User's location. - **city** (string) - City name. - **state** (string) - State name. - **country** (string) - Country name. - **filled_boxes** (integer) - Number of filled sections in the resume. - **total_boxes** (integer) - Total number of sections in the resume. - **filled_percentage** (integer) - Percentage of filled sections. #### Response Example ```json { "status": "ok", "parsed": { "skills": ["Python", "React", "AWS", "Docker", "PostgreSQL"], "education": [ { "degree": "B.Tech Computer Science", "institution": "MIT", "graduation_year": 2024, "gpa": "8.5/10" } ], "experience": [ { "company": "Google", "title": "Software Engineer", "start_year": 2022, "end_year": 2024, "is_current": false } ], "certifications": ["AWS Solutions Architect"], "languages": ["English", "Hindi"], "total_experience_years": 2, "global_context": "experienced", "has_projects": true, "github_url": "https://github.com/username", "linkedin_url": "https://linkedin.com/in/username", "location": {"city": "Bangalore", "state": "Karnataka", "country": "India"}, "filled_boxes": 6, "total_boxes": 7, "filled_percentage": 86 } } ``` ``` -------------------------------- ### Frontend API Client: Analyze Skill Gaps Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Analyzes skill gaps for a target role based on provided skills. Uses the `api.analyzeRoleGaps` method and returns match score and missing skills. ```javascript // Analyze skill gaps for a target role const analyzeGaps = async (skills, targetRole) => { const response = await api.analyzeRoleGaps(skills, targetRole); const { missing_skills, match_score, alternative_roles } = response.data; console.log(`Match score: ${match_score}%, Missing: ${missing_skills.join(', ')}`); }; ``` -------------------------------- ### Analyze GitHub Profile for Skill Signals Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Use this endpoint to analyze a GitHub profile and calculate skill proficiency scores based on repository count, code quality, and language diversity. Requires a GitHub username and a session ID. ```bash # Analyze GitHub profile for skill signals curl -X POST http://localhost:8080/api/analyze-github \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{"github_username": "octocat"}' ``` -------------------------------- ### List Target Names for 20 Newsgroups Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst After fetching the 20 Newsgroups dataset, you can inspect the available category names using the target_names attribute. ```python from pprint import pprint pprint(list(newsgroups_train.target_names)) ``` -------------------------------- ### Analyze Skill Gaps for Target Role Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt This endpoint analyzes the discrepancy between your current skills and the requirements of a target role. It returns a list of missing skills, required skills, a match score, and suggestions for alternative roles. ```bash curl -X POST http://localhost:8080/api/analyze_role_gaps \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "role": "Full Stack Developer", "skills": ["Python", "React", "SQL"] }' ``` ```json { "status": "ok", "missing_skills": ["Node.js", "TypeScript", "Docker", "AWS", "MongoDB", "Redis", "GraphQL"], "required_skills": ["Python", "React", "SQL", "Node.js", "TypeScript", "Docker", "AWS", "MongoDB", "Redis", "GraphQL"], "match_score": 30, "user_skills_count": 3, "required_skills_count": 10, "matched_jobs_count": 45, "alternative_roles": [ {"role": "Python Developer", "match_score": 65}, {"role": "React Developer", "match_score": 55} ], "source": "csv_optimized" } ``` -------------------------------- ### Learning Progress API Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Save and retrieve user's learning progress including completed steps, learning paths, and task completion status for gamification features. ```APIDOC ## POST /api/save_learning_progress ### Description Save the progress of a specific learning step for a user. ### Method POST ### Endpoint /api/save_learning_progress ### Parameters #### Request Body - **skill_name** (string) - Required - The name of the skill. - **step_index** (integer) - Required - The index of the learning step. - **completed** (boolean) - Required - Whether the step is completed. ### Response #### Success Response (200) - **status** (string) - Indicates success ('ok'). - **message** (string) - Confirmation message. #### Response Example ```json {"status": "ok", "message": "Progress saved to database"} ``` ## POST /api/save_learning_path ### Description Save an entire learning path for a user, including selected skills and path details. ### Method POST ### Endpoint /api/save_learning_path ### Parameters #### Request Body - **target_role** (string) - Required - The target job role for the learning path. - **selected_skills** (array of strings) - Required - List of skills included in the path. - **learning_path** (object) - Required - Details of the learning path. - **summary** (string) - A summary of the learning plan. - **skills** (object) - Object containing skill details (structure not specified). ### Response #### Success Response (200) - **status** (string) - Indicates success ('ok'). - **message** (string) - Confirmation message. #### Response Example ```json {"status": "ok", "message": "Learning path saved to database"} ``` ## GET /api/get_saved_learning_path ### Description Retrieve a user's previously saved learning path. ### Method GET ### Endpoint /api/get_saved_learning_path ### Parameters #### Headers - **X-Session-ID** (string) - Required - User's session identifier. ### Response #### Success Response (200) - **status** (string) - Indicates success ('ok'). - **has_saved_path** (boolean) - True if a saved path exists, false otherwise. - **data** (object) - Contains the saved learning path details if `has_saved_path` is true. - **target_role** (string) - The target job role. - **selected_skills** (array of strings) - List of selected skills. - **learning_path** (object) - The learning path details (structure not fully specified). - **updated_at** (string) - Timestamp of the last update. #### Response Example ```json { "status": "ok", "has_saved_path": true, "data": { "target_role": "Full Stack Developer", "selected_skills": ["Node.js", "TypeScript", "Docker"], "learning_path": {...}, "updated_at": "2024-01-15T10:30:00Z" } } ``` ``` -------------------------------- ### Verify Loaded Categories and Shapes Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst After loading a subset of categories, verify the loaded target names and the shapes of the filenames and target arrays. ```python list(newsgroups_train.target_names) newsgroups_train.filenames.shape newsgroups_train.target.shape newsgroups_train.target[:10] ``` -------------------------------- ### Access RCV1 sample IDs Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/rcv1.rst Retrieve the first three sample identifiers. ```python >>> rcv1.sample_id[:3] array([2286, 2287, 2288], dtype=uint32) ``` -------------------------------- ### Compare Old and New Masked Array Implementations Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/numpy/ma/README.rst Demonstrates the behavioral differences between the legacy numpy.core.ma and the updated maskedarray package when creating and comparing masked arrays. ```python >>> import numpy.core.ma as old_ma >>> import maskedarray as new_ma >>> x = old_ma.array([1,2,3,4,5], mask=[0,0,1,0,0]) >>> x array(data = [ 1 2 999999 4 5], mask = [False False True False False], fill_value=999999) >>> y = new_ma.array([1,2,3,4,5], mask=[0,0,1,0,0]) >>> y array(data = [1 2 -- 4 5], mask = [False False True False False], fill_value=999999) >>> x==y array(data = [True True True True True], mask = [False False True False False], fill_value=?) >>> old_ma.getmask(x) == new_ma.getmask(x) array([True, True, True, True, True]) >>> old_ma.getmask(y) == new_ma.getmask(y) array([True, True, False, True, True]) >>> old_ma.getmask(y) False ``` -------------------------------- ### Fetch Specific Categories from 20 Newsgroups Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Load a subset of the 20 Newsgroups dataset by specifying desired categories. This is useful for focusing on particular topics. ```python cats = ['alt.atheism', 'sci.space'] newsgroups_train = fetch_20newsgroups(subset='train', categories=cats) ``` -------------------------------- ### AI-Powered Career Coaching Conversation Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Engage in an AI-powered career coaching conversation. The AI acts as an expert career coach, asking focused questions to understand the user's background for their target role. Requires the target role, conversation history, and a provider. ```bash # Have an AI-powered career coaching conversation curl -X POST http://localhost:8080/api/role-chat \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d '{ "role": "Full Stack Developer", "messages": [ {"role": "user", "content": "I want to become a full stack developer"}, {"role": "assistant", "content": "Great choice! What programming languages do you currently know?"}, {"role": "user", "content": "I know Python and some basic JavaScript"} ], "provider": "groq" }' ``` -------------------------------- ### Fetch the RCV1 dataset Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/rcv1.rst Load the RCV1-v2 dataset using the scikit-learn fetch_rcv1 function. ```python >>> from sklearn.datasets import fetch_rcv1 >>> rcv1 = fetch_rcv1() ``` -------------------------------- ### Fetch 20 Newsgroups Dataset Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Use fetch_20newsgroups to load the training subset of the 20 Newsgroups dataset. This function downloads and caches the data, returning raw text data and target names. ```python from sklearn.datasets import fetch_20newsgroups newsgroups_train = fetch_20newsgroups(subset='train') ``` -------------------------------- ### Frontend API Client: Analyze GitHub Profile Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Analyzes a GitHub profile to extract information about programming languages used and total repositories. Uses the `api.analyzeGitHub` method. ```javascript // Analyze GitHub profile const analyzeGitHub = async (username) => { const response = await api.analyzeGitHub(username); if (response.data.available) { console.log('Languages:', Object.keys(response.data.languages)); console.log('Total repos:', response.data.total_repos); } }; ``` -------------------------------- ### Fetch LFW Pairs with Color Channels Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/lfw.rst To include RGB color channels when fetching LFW pairs, pass the 'color=True' argument. This will add an extra dimension to the shape of the returned data. ```python from sklearn.datasets import fetch_lfw_pairs lfw_pairs_train = fetch_lfw_pairs(subset='train', color=True) lfw_pairs_train.pairs.shape ``` -------------------------------- ### Fetch LFW Pairs for Face Verification Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/lfw.rst Use this loader for face verification tasks, where each sample is a pair of images to determine if they belong to the same person. It supports training, testing, and 10-fold cross-validation subsets. ```python from sklearn.datasets import fetch_lfw_pairs lfw_pairs_train = fetch_lfw_pairs(subset='train') ``` ```python list(lfw_pairs_train.target_names) ``` ```python lfw_pairs_train.pairs.shape ``` ```python lfw_pairs_train.data.shape ``` ```python lfw_pairs_train.target.shape ``` -------------------------------- ### Fetch and Train Data with Metadata Removed Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Fetches the training subset of the 20 Newsgroups dataset with metadata removed, fits a vectorizer, and then trains a Multinomial Naive Bayes classifier. This prepares the model for evaluation on cleaned test data. ```python newsgroups_train = fetch_20newsgroups(subset='train', remove=('headers', 'footers', 'quotes'), categories=categories) vectors = vectorizer.fit_transform(newsgroups_train.data) clf = MultinomialNB(alpha=.01) clf.fit(vectors, newsgroups_train.target) ``` -------------------------------- ### Display Top 10 Informative Features Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Defines and calls a helper function to display the top 10 most informative features for each category, based on the classifier's coefficients. This helps in understanding what the model learned. ```python import numpy as np def show_top10(classifier, vectorizer, categories): feature_names = vectorizer.get_feature_names_out() for i, category in enumerate(categories): top10 = np.argsort(classifier.coef_[i])[-10:] print("%s: %s" % (category, " ".join(feature_names[top10]))) show_top10(clf, vectorizer, newsgroups_train.target_names) ``` -------------------------------- ### Job Matches API Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Find matching job postings based on user skills and target role. Returns real job listings with match statistics from job APIs (Remotive, Jooble, Adzuna). ```APIDOC ## POST /api/job_matches ### Description Find matching job postings based on user skills and target role. Returns real job listings with match statistics from job APIs (Remotive, Jooble, Adzuna). ### Method POST ### Endpoint /api/job_matches ### Parameters #### Request Body - **skills** (array of strings) - Required - List of user skills. - **role** (string) - Required - The target job role. - **experience_level** (string) - Optional - Desired experience level (e.g., "neutral"). - **location** (object) - Optional - User's location. - **country** (string) - Required - Country name. - **city** (string) - Required - City name. ### Request Example ```json { "skills": ["Python", "React", "AWS"], "role": "Full Stack Developer", "experience_level": "neutral", "location": {"country": "India", "city": "Bangalore"} } ``` ### Response #### Success Response (200) - **jobs** (array of objects) - List of matching job postings. - **title** (string) - Job title. - **company** (string) - Company name. - **location** (string) - Job location. - **url** (string) - URL to the job posting. - **salary_range** (string) - Salary range for the job. - **skills_match** (integer) - Percentage of skills matched. - **total_found** (integer) - Total number of jobs found. - **sources** (array of strings) - APIs used for fetching jobs. - **experience_filter** (string) - The experience level filter applied. - **user_location** (object) - The user's specified location. - **country** (string) - Country name. - **city** (string) - City name. - **stats** (object) - Statistics about the job matches. - **avg_match** (integer) - Average skill match percentage. - **top_match** (integer) - Highest skill match percentage. #### Response Example ```json { "jobs": [ { "title": "Full Stack Developer", "company": "Tech Corp", "location": "Bangalore, India", "url": "https://remotive.com/job/123", "salary_range": "$60k-$80k", "skills_match": 75 } ], "total_found": 25, "sources": ["remotive", "adzuna"], "experience_filter": "neutral", "user_location": {"country": "India", "city": "Bangalore"}, "stats": { "avg_match": 68, "top_match": 85 } } ``` ``` -------------------------------- ### POST /api/role-chat Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Interactive AI chat endpoint for career guidance conversations. ```APIDOC ## POST /api/role-chat ### Description Interactive AI chat endpoint for career guidance conversations. The AI acts as an expert career coach, asking focused questions to understand the user's background for their target role. ### Method POST ### Endpoint /api/role-chat ### Parameters #### Request Body - **role** (string) - Required - The target career role. - **messages** (array) - Required - Chat history. - **provider** (string) - Required - AI provider (e.g., "groq"). ### Request Example { "role": "Full Stack Developer", "messages": [{"role": "user", "content": "I want to become a full stack developer"}], "provider": "groq" } ### Response #### Success Response (200) - **response** (string) - The AI's response text. - **status** (string) - Status of the request. #### Response Example { "response": "That is a solid foundation!", "status": "ok" } ``` -------------------------------- ### Inspect 20 Newsgroups Dataset Attributes Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Examine the shape of the filenames and target arrays for the fetched 20 Newsgroups training data. The target attribute contains integer indices for each category. ```python newsgroups_train.filenames.shape newsgroups_train.target.shape newsgroups_train.target[:10] ``` -------------------------------- ### Skill Gap Analysis API Source: https://context7.com/dhansuhkumar/ai-skill-gap-generator/llms.txt Analyze the gap between your current skills and target role requirements using web-search-based analysis. Returns required skills, missing skills, and alternative role suggestions. ```APIDOC ## POST /api/analyze_role_gaps ### Description Analyze the gap between your current skills and target role requirements using web-search-based analysis. Returns required skills for the role, missing skills you need to learn, and alternative role suggestions. ### Method POST ### Endpoint /api/analyze_role_gaps ### Parameters #### Header Parameters - **Content-Type** (string) - Required - Should be 'application/json'. - **X-Session-ID** (string) - Required - User session identifier. #### Request Body - **role** (string) - Required - The target job role to analyze. - **skills** (array of strings) - Required - A list of the user's current skills. ### Request Example ```bash curl -X POST http://localhost:8080/api/analyze_role_gaps \ -H "Content-Type: application/json" \ -H "X-Session-ID: user-session-123" \ -d { "role": "Full Stack Developer", "skills": ["Python", "React", "SQL"] } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the status of the operation ('ok'). - **missing_skills** (array of strings) - Skills the user needs to acquire for the target role. - **required_skills** (array of strings) - All skills required for the target role. - **match_score** (integer) - A score indicating how well the user's skills match the role requirements (0-100). - **user_skills_count** (integer) - The number of skills the user possesses that are relevant to the role. - **required_skills_count** (integer) - The total number of skills required for the role. - **matched_jobs_count** (integer) - The number of job postings found matching the role and user's skills. - **alternative_roles** (array of objects) - Suggestions for alternative roles with their match scores. - **role** (string) - Name of the alternative role. - **match_score** (integer) - Match score for the alternative role. - **source** (string) - The data source used for the analysis (e.g., 'csv_optimized'). #### Response Example ```json { "status": "ok", "missing_skills": ["Node.js", "TypeScript", "Docker", "AWS", "MongoDB", "Redis", "GraphQL"], "required_skills": ["Python", "React", "SQL", "Node.js", "TypeScript", "Docker", "AWS", "MongoDB", "Redis", "GraphQL"], "match_score": 30, "user_skills_count": 3, "required_skills_count": 10, "matched_jobs_count": 45, "alternative_roles": [ {"role": "Python Developer", "match_score": 65}, {"role": "React Developer", "match_score": 55} ], "source": "csv_optimized" } ``` ``` -------------------------------- ### Fetch and Vectorize 20 Newsgroups Test Data Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Fetches the test subset of the 20 Newsgroups dataset and transforms its data into vectors using a pre-fitted vectorizer. This is a common step before making predictions. ```python newsgroups_test = fetch_20newsgroups(subset='test', categories=categories) vectors_test = vectorizer.transform(newsgroups_test.data) ``` -------------------------------- ### Egg Info Writers Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/setuptools-65.5.0.dist-info/entry_points.txt Writers for generating egg-info metadata files. ```APIDOC ## Egg Info Writers This section lists the writers used by setuptools for generating metadata files within the egg-info directory. ### Metadata Writers - **PKG-INFO**: `setuptools.command.egg_info:write_pkg_info` - **dependency_links.txt**: `setuptools.command.egg_info:overwrite_arg` - **depends.txt**: `setuptools.command.egg_info:warn_depends_obsolete` - **eager_resources.txt**: `setuptools.command.egg_info:overwrite_arg` - **entry_points.txt**: `setuptools.command.egg_info:write_entries` - **namespace_packages.txt**: `setuptools.command.egg_info:overwrite_arg` - **requires.txt**: `setuptools.command.egg_info:write_requirements` - **top_level.txt**: `setuptools.command.egg_info:write_toplevel_names` ``` -------------------------------- ### Fetch Test Data with Metadata Removed Source: https://github.com/dhansuhkumar/ai-skill-gap-generator/blob/main/venv/Lib/site-packages/sklearn/datasets/descr/twenty_newsgroups.rst Fetches the test subset of the 20 Newsgroups dataset, specifically removing headers, footers, and quotes. This is done to evaluate the classifier's performance without the influence of metadata. ```python newsgroups_test = fetch_20newsgroups(subset='test', remove=('headers', 'footers', 'quotes'), categories=categories) vectors_test = vectorizer.transform(newsgroups_test.data) pred = clf.predict(vectors_test) metrics.f1_score(pred, newsgroups_test.target, average='macro') ```