{"id":22662794,"url":"https://github.com/extrawest/udemy_course_recommended_system","last_synced_at":"2025-06-12T14:36:36.547Z","repository":{"id":266838473,"uuid":"899498732","full_name":"extrawest/udemy_course_recommended_system","owner":"extrawest","description":"Flutter cv parse and summarize application and Udemy Courses recommendation app","archived":false,"fork":false,"pushed_at":"2024-12-06T12:15:25.000Z","size":308,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-22T08:03:10.146Z","etag":null,"topics":["bloc","dart","flutter","kaggle-dataset","langgraph","openai","openai-embeddings","pinecone","repository-pattern"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/extrawest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-06T11:47:42.000Z","updated_at":"2024-12-23T09:10:12.000Z","dependencies_parsed_at":"2024-12-06T13:53:33.454Z","dependency_job_id":null,"html_url":"https://github.com/extrawest/udemy_course_recommended_system","commit_stats":null,"previous_names":["extrawest/udemy_course_recommended_system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Fudemy_course_recommended_system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Fudemy_course_recommended_system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Fudemy_course_recommended_system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrawest%2Fudemy_course_recommended_system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/extrawest","download_url":"https://codeload.github.com/extrawest/udemy_course_recommended_system/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246162155,"owners_count":20733357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bloc","dart","flutter","kaggle-dataset","langgraph","openai","openai-embeddings","pinecone","repository-pattern"],"created_at":"2024-12-09T12:15:32.695Z","updated_at":"2025-03-29T09:13:23.608Z","avatar_url":"https://github.com/extrawest.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CV parse and Udemy video recommendation\n\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)]()\n[![Maintaner](https://img.shields.io/static/v1?label=Oleksandr%20Samoilenko\u0026message=Maintainer\u0026color=red)](mailto:oleksandr.samoilenko@extrawest.com)\n[![Ask Me Anything !](https://img.shields.io/badge/Ask%20me-anything-1abc9c.svg)]()\n![GitHub license](https://img.shields.io/github/license/Naereen/StrapDown.js.svg)\n![GitHub release](https://img.shields.io/badge/release-v1.0.0-blue)\n\n## PROJECT INFO\n\n- **Flutter app designed to parse CVs show candidate skillset and recommend Udemy courses**\n- **The app allows you to upload .pdf, .docx and .csv CV and gives brief summary of Seniority level,\n  Developer role and skillset. Udemy dataset is used to allow you to search for Udemy courses to\n  level up your knowledge or help you learn another technology**\n\n## Features\n\n- OpenAI client for GPT-3.5 and GPT-4\n- OpenAI embeddings for GPT-3.5 and GPT-4\n- Pinecone vector database\n- Langgraph multiagent\n- Kaggle Udemy dataset https://www.kaggle.com/datasets/yusufdelikkaya/udemy-online-education-courses\n\n## Preview\n\n1. Upload and Summarize CV\n\n\nhttps://github.com/user-attachments/assets/a1dc2abb-0f20-4ff4-9ad4-28279d9ef13e\n\n\n2. Courses Recommendation\n\n\nhttps://github.com/user-attachments/assets/23203225-cfca-4818-bc2e-53122b715c98\n\n\n## Installing:\n\n**1. Clone this repo to your folder:**\n\n```\ngit clone https://gitlab.extrawest.com/i-training/flutter/udemy-course-recommended-system\n```\n\n**2. Change current directory to the cloned folder:**\n\n```\ncd udemy-course-recommended-system/mobile\n```\n\n**3. Get packages**\n\n```\nflutter pub get\n```\n\n## Setup Server\n\n**1. Open server folder:**\n\n```\ncd udemy-course-recommended-system/server\n```\n\n**2. In the root of server file create .env file and add the following variables:**\n\n```\nOPENAI_API_KEY = \"YOUR_OPENAI_API_KEY\"\nPINECONE_API_KEY = 'YOUR_PINECONE_API_KEY'\nPINECONE_INDEX_NAME = \"YOUR_PINECONE_INDEX_NAME\" // for cv vector store\nPINECONE_DATASOURCE_INDEX_NAME = \"YOUR_DATASOURCE_INDEX_NAME\"  // for udemy vector store\n```\n\n**3. Upload Udemy dataset to Pinecone:**\nGo to `tools` folder, open `datasource_upload_tool.js` file, change csvFilePath to your Udemy dataset path, you also can use one from the project. In the root folder you can find `udemy_online_education_courses_dataset.csv` file. \nTo upload the dataset run `node datasource_upload_tool.js`. It can take a while.\n\n**4. Run server:**\nTo start server, just run `npx tsx server.ts`.\n\n**2. Change server path in flutter project:**\nGo to app/lib/services/api_service.dart and change the baseUrl to your server path\n\nNow you can use the app\n\nCreated by Oleksandr Samoilenko\n\n[Extrawest.com](https://www.extrawest.com), 2024\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextrawest%2Fudemy_course_recommended_system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fextrawest%2Fudemy_course_recommended_system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextrawest%2Fudemy_course_recommended_system/lists"}