diff --git a/data/index.json b/data/index.json new file mode 100644 index 0000000000000000000000000000000000000000..f1c77402100a50e2ae5574473e9b8ce146808be0 --- /dev/null +++ b/data/index.json @@ -0,0 +1,242 @@ +{ + "jobs": [ + { + "name": "C++工程师", + "level_name": "入门", + "router": "cpp_01" + }, + { + "name": "C++工程师", + "level_name": "进阶", + "router": "cpp_02" + }, + { + "name": "Java后端工程师", + "level_name": "入门", + "router": "javabf_01" + }, + { + "name": "Java后端工程师", + "level_name": "进阶", + "router": "javabf_02" + }, + { + "name": "Android工程师", + "level_name": "入门", + "router": "android_01" + }, + { + "name": "Android工程师", + "level_name": "进阶", + "router": "android_02" + }, + { + "name": "运维工程师", + "level_name": "入门", + "router": "devops_01" + }, + { + "name": "运维工程师", + "level_name": "进阶", + "router": "devops_02" + }, + { + "name": "搜索工程师", + "level_name": "入门", + "router": "search_01" + }, + { + "name": "搜索工程师", + "level_name": "进阶", + "router": "search_02" + }, + { + "name": "爬虫工程师", + "level_name": "入门", + "router": "crawler_01" + }, + { + "name": "爬虫工程师", + "level_name": "进阶", + "router": "crawler_02" + }, + { + "name": "Go后端工程师", + "level_name": "入门", + "router": "go_01" + }, + { + "name": "Go后端工程师", + "level_name": "进阶", + "router": "go_02" + }, + { + "name": "机器视觉工程师", + "level_name": "入门", + "router": "machinevision_01" + }, + { + "name": "机器视觉工程师", + "level_name": "进阶", + "router": "machinevision_02" + }, + { + "name": "测试工程师", + "level_name": "入门", + "router": "test_01" + }, + { + "name": "测试工程师", + "level_name": "进阶", + "router": "test_02" + }, + { + "name": "BI 工程师", + "level_name": "入门", + "router": "bi_01" + }, + { + "name": "BI 工程师", + "level_name": "进阶", + "router": "bi_02" + }, + { + "name": "PHP工程师", + "level_name": "入门", + "router": "php_01" + }, + { + "name": "PHP工程师", + "level_name": "进阶", + "router": "php_02" + }, + { + "name": "前端工程师", + "level_name": "入门", + "router": "web_01" + }, + { + "name": "前端工程师", + "level_name": "进阶", + "router": "web_02" + }, + { + "name": "iOS工程师", + "level_name": "入门", + "router": "ios_01" + }, + { + "name": "iOS工程师", + "level_name": "进阶", + "router": "ios_02" + }, + { + "name": "后端构架师", + "level_name": "入门", + "router": "archit_01" + }, + { + "name": "后端构架师", + "level_name": "进阶", + "router": "archit_02" + }, + { + "name": "产品", + "level_name": "入门", + "router": "product_01" + }, + { + "name": "产品", + "level_name": "进阶", + "router": "product_02" + }, + { + "name": "大数据工程师", + "level_name": "入门", + "router": "bigdata_01" + }, + { + "name": "大数据工程师", + "level_name": "进阶", + "router": "bigdata_02" + }, + { + "name": "自然语言处理工程师", + "level_name": "入门", + "router": "nlp_01" + }, + { + "name": "自然语言处理工程师", + "level_name": "进阶", + "router": "nlp_02" + }, + { + "name": "运营", + "level_name": "入门", + "router": "operations_01" + }, + { + "name": "运营", + "level_name": "进阶", + "router": "operations_02" + }, + { + "name": "算法工程师", + "level_name": "入门", + "router": "algo_01" + }, + { + "name": "算法工程师", + "level_name": "进阶", + "router": "algo_02" + } + ], + "trees": [ + "ai", + "algorithm", + "algorithm02", + "android", + "c", + "cassandra", + "cloud_native", + "cpp", + "devops", + "distrubute", + "flutter", + "gml", + "go", + "goplus", + "hadoop", + "java", + "k8s", + "kafka", + "mongodb", + "mq", + "mysql", + "neo4j", + "network", + "nginx", + "nlp", + "opencv", + "operation", + "operations", + "pg", + "php", + "product", + "python", + "python02", + "react", + "redis", + "rust", + "scala", + "search", + "spark", + "springboot", + "springcloud", + "swift", + "test", + "vue", + "web", + "weixin" + ] +} \ No newline at end of file diff --git a/data/package/job/algo.json b/data/package/job/algo.json index add9075cbe8010143e31fc0dfbca924cd5b64967..b254cf6a19ba37f72c34626e5f53743a8d9c3f7f 100644 --- a/data/package/job/algo.json +++ b/data/package/job/algo.json @@ -10,10 +10,17 @@ "level_id": "pkg-algo-level-1b8296e8c947421981ca1f4ea920878a", "skill_trees": [ "gml", + "c", "algorithm", - "c" + "python", + "mysql" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "c", + "algorithm", + "python" + ] }, { "level": "02", @@ -23,7 +30,10 @@ "python02", "ai" ], - "recommend_skill_trees": [], + "recommend_skill_trees": [ + "algorithm02", + "python02" + ], "level_id": "pkg-algo-level-0e0f4c2d372c4be6a4954c1e8e29a3bc" } ] diff --git a/data/package/job/android.json b/data/package/job/android.json index f8cee11d96f137ec01a63e43e47ac9eec36bad91..82234009b4de35afe3b20877c7e69f4868530392 100644 --- a/data/package/job/android.json +++ b/data/package/job/android.json @@ -11,7 +11,8 @@ "skill_trees": [ "gml", "java", - "android" + "android", + "web" ], "recommend_skill_trees": [] }, @@ -19,7 +20,7 @@ "level": "02", "level_name": "进阶", "skill_trees": [ - "react", + "vue", "weixin", "flutter" ], diff --git a/data/package/job/architecture.json b/data/package/job/architecture.json index badc2b1f5af66c2147af4263e288dc88926ebaff..185723043e411f803e03cb7d8ebbc218fd48665e 100644 --- a/data/package/job/architecture.json +++ b/data/package/job/architecture.json @@ -10,28 +10,36 @@ "level_id": "pkg-archit-level-634117d27ab1492db3d6e973e122f8c3", "skill_trees": [ "gml", - "algorithm", "network", - "java", + "devops", + "springboot", "nginx", - "devops" + "mysql", + "redis", + "mq" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "network", + "pg", + "cloud_native" + ] }, { "level": "02", "level_name": "进阶", "skill_trees": [ - "springboot", "springcloud", - "mysql", "pg", "mongodb", + "distrubute", "go", - "node.js", "cloud_native" ], - "recommend_skill_trees": [], + "recommend_skill_trees": [ + "pg", + "cloud_native" + ], "level_id": "pkg-archit-level-ce6121fa7a9c4a58aa9852da2bac850f" } ] diff --git a/data/package/job/bi.json b/data/package/job/bi.json index 673224e61d4fb2658b2178c1827751388a1f8c0c..ab70cc3ca527c96028f497b7c7a200c7fe6fe01d 100644 --- a/data/package/job/bi.json +++ b/data/package/job/bi.json @@ -1,39 +1,38 @@ { - "type": "job", - "package": "bi", - "package_name": "BI 工程师", - "package_id": "pkg-bi-9a7a46b309f34c9bb6265a38201107fb", - "levels": [ - { - "level": "01", - "level_name": "入门", - "level_id": "pkg-bi-level-76c708906e844631a0083e4d8b8749ae", - "skill_trees": [ - "gml", - "python", - "algorithm", - "mysql" - ], - "recommend_skill_trees": [ - "python02", - "algorithm02", - "pg" - ] - }, - { - "level": "02", - "level_name": "进阶", - "skill_trees": [ - "gml", - "python", - "algorithm" - ], - "recommend_skill_trees": [ - "python02", - "algorithm02", - "pg" - ], - "level_id": "pkg-bi-level-0046fafee14640c7b5aa29cc97b17a8a" - } - ] + "type": "job", + "package": "bi", + "package_name": "BI 工程师", + "package_id": "pkg-bi-9a7a46b309f34c9bb6265a38201107fb", + "levels": [ + { + "level": "01", + "level_name": "入门", + "level_id": "pkg-bi-level-76c708906e844631a0083e4d8b8749ae", + "skill_trees": [ + "gml", + "python", + "mysql" + ], + "recommend_skill_trees": [ + "gml", + "python", + "pg" + ] + }, + { + "level": "02", + "level_name": "进阶", + "skill_trees": [ + "redis", + "pg", + "mongodb", + "hadoop", + "scala" + ], + "recommend_skill_trees": [ + "pg" + ], + "level_id": "pkg-bi-level-0046fafee14640c7b5aa29cc97b17a8a" + } + ] } \ No newline at end of file diff --git a/data/package/job/big_data.json b/data/package/job/big_data.json index c297a07a9ece8e30f934ed9b29b7e36fae26adfe..01bb0a97506e45b6f880446b52f4ea1d727238e6 100644 --- a/data/package/job/big_data.json +++ b/data/package/job/big_data.json @@ -10,16 +10,30 @@ "level_id": "pkg-bigdata-level-c208cec9d183455588265813fcdf56bd", "skill_trees": [ "gml", - "algorithm", - "java" + "python", + "mysql", + "redis", + "java", + "hadoop" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "python", + "java" + ] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], - "recommend_skill_trees": [], + "skill_trees": [ + "scala", + "spark", + "kafka", + "cassandra" + ], + "recommend_skill_trees": [ + "pg" + ], "level_id": "pkg-bigdata-level-8e2a8fb109424596a667bcc613db93c1" } ] diff --git a/data/package/job/cpp.json b/data/package/job/cpp.json index 21c060ac618bacc99885ea225e8addd8a669792e..2165370a08cdc882b20f5140308a34152b51b3b9 100644 --- a/data/package/job/cpp.json +++ b/data/package/job/cpp.json @@ -10,16 +10,29 @@ "level_id": "pkg-cpp-level-6205ebd891544d8cadab543433b3b951", "skill_trees": [ "gml", + "c", "algorithm", + "network", + "cpp" + ], + "recommend_skill_trees": [ + "gml", "c", + "algorithm", "network" - ], - "recommend_skill_trees": [] + ] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], + "skill_trees": [ + "rust", + "go", + "devops", + "mysql", + "pg", + "redis" + ], "recommend_skill_trees": [], "level_id": "pkg-cpp-level-0aef5db1bcca497789fbc1ab8863bd7d" } diff --git a/data/package/job/crawler.json b/data/package/job/crawler.json index 832d0838df7bd6a5687a79d4aa82fb82784d8f04..bba476e94401e41926198801d7c5a30d25f41103 100644 --- a/data/package/job/crawler.json +++ b/data/package/job/crawler.json @@ -10,12 +10,18 @@ "level_id": "pkg-crawler-level-2d99f3f4e3e3416092f46f8b901efae1", "skill_trees": [ "gml", - "python", "algorithm", + "python", "mysql", - "network" + "network", + "web" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "algorithm", + "python", + "network" + ] }, { "level": "02", @@ -23,10 +29,13 @@ "skill_trees": [ "python02", "algorithm02", - "web", + "mysql" + ], + "recommend_skill_trees": [ + "python02", + "algorithm02", "pg" ], - "recommend_skill_trees": [], "level_id": "pkg-crawler-level-6035cb39f6d14637810beaeb8fecb168" } ] diff --git a/data/package/job/devops.json b/data/package/job/devops.json index de28fb84e6f73b45df8858518c75fdc8945461fb..29e02357ba1abf9d8d9444efdb4ccd4ae3482896 100644 --- a/data/package/job/devops.json +++ b/data/package/job/devops.json @@ -11,21 +11,28 @@ "skill_trees": [ "gml", "python", - "mysql" + "network", + "mysql", + "devops" ], "recommend_skill_trees": [ - "devops", - "cloud_native", - "pg" + "gml", + "network" ] }, { "level": "02", "level_name": "进阶", "skill_trees": [ - "network02" + "pg", + "cloud_native", + "k8s" + ], + "recommend_skill_trees": [ + "cloud_native", + "pg", + "k8s" ], - "recommend_skill_trees": [], "level_id": "pkg-devops-level-5c902f5daeb44c96811e791e3bf1a90a" } ] diff --git a/data/package/job/go_backend.json b/data/package/job/go_backend.json index 6300e09b3b3c1709f24f420ebff0df4a712caccb..d63684e2ed3b05e530f756327b8840e4da7eb9d6 100644 --- a/data/package/job/go_backend.json +++ b/data/package/job/go_backend.json @@ -11,15 +11,28 @@ "skill_trees": [ "gml", "algorithm", - "network" + "network", + "go" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "algorithm", + "network" + ] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], - "recommend_skill_trees": [], + "skill_trees": [ + "c", + "goplus", + "rust", + "cloud_native" + ], + "recommend_skill_trees": [ + "c", + "cloud_native" + ], "level_id": "pkg-go-level-d2faef92de2042e79f0cb16d3016c10c" } ] diff --git a/data/package/job/ios.json b/data/package/job/ios.json index b99906e3a2aec890a2b400eb5830e475ad9b5def..e1eea2d90c0b5ee00384a7ffc219eca2d8561c6f 100644 --- a/data/package/job/ios.json +++ b/data/package/job/ios.json @@ -8,14 +8,25 @@ "level": "01", "level_name": "入门", "level_id": "pkg-ios-level-dd40b98b3ede4f738ac67b72b985b8b5", - "skill_trees": [], - "recommend_skill_trees": [] + "skill_trees": [ + "web", + "swift" + ], + "recommend_skill_trees": [ + "java" + ] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], - "recommend_skill_trees": [], + "skill_trees": [ + "vue", + "weixin", + "flutter" + ], + "recommend_skill_trees": [ + "web" + ], "level_id": "pkg-ios-level-17042027e678450f95732320c7ed023d" } ] diff --git a/data/package/job/java_backend.json b/data/package/job/java_backend.json index c2168c7a72782f9498aaf4ea5f231a9565119207..b4e6d39c9e4a87f32734412d81b70ab99d933062 100644 --- a/data/package/job/java_backend.json +++ b/data/package/job/java_backend.json @@ -18,8 +18,7 @@ "recommend_skill_trees": [ "gml", "algorithm", - "java", - "springboot" + "java" ] }, { @@ -27,17 +26,13 @@ "level_name": "进阶", "level_id": "pkg-javabf-level-91f3e6a6f5624acfb422f3951177cb6e", "skill_trees": [ - "gml", - "algorithm", - "java", - "springboot", - "mysql" + "springcloud", + "pg" ], "recommend_skill_trees": [ "gml", "algorithm", - "java", - "springboot" + "java" ] } ] diff --git a/data/package/job/machine_vision.json b/data/package/job/machine_vision.json index 43d767453b7ba179b9ebab2b1b01b6968f399cf2..3d3833ece2e0cb8d1faba2ca92b7b918851586d8 100644 --- a/data/package/job/machine_vision.json +++ b/data/package/job/machine_vision.json @@ -11,15 +11,30 @@ "skill_trees": [ "gml", "algorithm", - "c" + "c", + "python", + "opencv" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "algorithm", + "c", + "python", + "opencv" + ] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], - "recommend_skill_trees": [], + "skill_trees": [ + "python02", + "nlp", + "neo4j" + ], + "recommend_skill_trees": [ + "python02", + "neo4j" + ], "level_id": "pkg-machinevision-level-bbcc2444f218474aa445df6ca08c5cfb" } ] diff --git a/data/package/job/nlp.json b/data/package/job/nlp.json index 7ca51fc858ad3c28911544ccdc98a4ede040a79e..1acda2d57bb86efe21b719fbb3a1e9fc40bcacef 100644 --- a/data/package/job/nlp.json +++ b/data/package/job/nlp.json @@ -10,15 +10,29 @@ "level_id": "pkg-nlp-level-5317f0fbf4414d87b6d028e421d16396", "skill_trees": [ "gml", - "algorithm" + "algorithm", + "python", + "python02" ], "recommend_skill_trees": [] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], - "recommend_skill_trees": [], + "skill_trees": [ + "nlp", + "opencv", + "neo4j", + "spark", + "mysql", + "redis", + "pg" + ], + "recommend_skill_trees": [ + "opencv", + "neo4j", + "pg" + ], "level_id": "pkg-nlp-level-4f5c84c95f26440393a69a4181d03a65" } ] diff --git a/data/package/job/php.json b/data/package/job/php.json index e46b36ec0278130f4b7661d9f3b09e0ff1f835aa..8a4193d2341e17dbfd4478af63ef2a0086714657 100644 --- a/data/package/job/php.json +++ b/data/package/job/php.json @@ -8,14 +8,31 @@ "level": "01", "level_name": "入门", "level_id": "pkg-php-level-c8c35ceafdc447198f15f628a745699f", - "skill_trees": [], - "recommend_skill_trees": [] + "skill_trees": [ + "gml", + "web", + "php", + "mysql" + ], + "recommend_skill_trees": [ + "gml", + "pg" + ] }, { "level": "02", "level_name": "进阶", - "skill_trees": [], - "recommend_skill_trees": [], + "skill_trees": [ + "go", + "java", + "springboot", + "pg", + "mongodb" + ], + "recommend_skill_trees": [ + "java", + "pg" + ], "level_id": "pkg-php-level-3a99b53332c9429b8f32669e74ab9f35" } ] diff --git a/data/package/job/product.json b/data/package/job/product.json index 62c6234719cf69d043be6b01c5c8d0d8ab17d39c..2469a1583f3486d0e231c7a2514246313f62cb75 100644 --- a/data/package/job/product.json +++ b/data/package/job/product.json @@ -11,15 +11,19 @@ "skill_trees": [ "product" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "se" + ] }, { "level": "02", "level_name": "进阶", "skill_trees": [ - "se" + "operation" + ], + "recommend_skill_trees": [ + "se02" ], - "recommend_skill_trees": [], "level_id": "pkg-product-level-995424592df44bc99c88233f341bde94" } ] diff --git a/data/package/job/search.json b/data/package/job/search.json index 1cf86f490d2ead341ab3c81b5ee6d20132c7a75e..0d22fcfe67de5d02313883e8e15f56c1460eb8b9 100644 --- a/data/package/job/search.json +++ b/data/package/job/search.json @@ -12,17 +12,30 @@ "gml", "algorithm", "java", - "search" + "search", + "python", + "mysql" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "algorithm", + "java", + "python" + ] }, { "level": "02", "level_name": "进阶", "skill_trees": [ - "elastic" + "python02", + "nlp", + "pg", + "redis" + ], + "recommend_skill_trees": [ + "python02", + "pg" ], - "recommend_skill_trees": [], "level_id": "pkg-search-level-e3ddce54bc304fc290a76a437fd4791c" } ] diff --git a/data/package/job/test.json b/data/package/job/test.json index 2401aa406cba58dc0c4073b11f2ddc2ff7f764c5..fcd17bab1475440d5924441a97122ccb44d9d50f 100644 --- a/data/package/job/test.json +++ b/data/package/job/test.json @@ -10,20 +10,24 @@ "level_id": "pkg-test-level-8207808da42c4869b7235e0df8e88a72", "skill_trees": [ "gml", - "web", "python", - "gml" + "test" ], - "recommend_skill_trees": [] + "recommend_skill_trees": [ + "gml", + "python" + ] }, { "level": "02", "level_name": "进阶", "skill_trees": [ - "java" + "web", + "mysql", + "devops" ], "recommend_skill_trees": [ - "network02" + "pg" ], "level_id": "pkg-test-level-85e8c4269c4f4e23b6012ebc8d31e05f" } diff --git a/data/package/job/web.json b/data/package/job/web.json index 3546c46d1a623308bbf122582dcea11ab0dc6c75..d4034c3b2a76a81ca7d0383e8ae11ec839502fe0 100644 --- a/data/package/job/web.json +++ b/data/package/job/web.json @@ -19,8 +19,9 @@ "level": "02", "level_name": "进阶", "skill_trees": [ + "weixin", "react", - "weixin" + "flutter" ], "recommend_skill_trees": [], "level_id": "pkg-web-level-7d906e7132dd43438cd70216f697999e" diff --git a/main.py b/main.py index 9b1957c25f2454666ac917512c8b510836b9e71c..93992d9d5859fb47c535a8f09ba0cc5222f9ec8c 100644 --- a/main.py +++ b/main.py @@ -2,4 +2,5 @@ from src.main.package import Package if __name__ == '__main__': p = Package('data/package/') - p.walk() + # p.walk() + p.list() diff --git a/src/main/package.py b/src/main/package.py index 394122af94b6e1ae0465a9e9e07663c307d15ba7..e223ab804444949dc900c0eba0962226e9c59612 100644 --- a/src/main/package.py +++ b/src/main/package.py @@ -28,3 +28,40 @@ class Package: if level.get('level_id') is None or level.get('level_id') == '': level['level_id'] = f'pkg-{pacakge}-level-'+uuid.uuid4().hex dump_json(file_full_name, pkg, exist_ok=True, override=True) + + def list(self): + pkg_list = [] + tree_list = [] + for base, dirs, files in os.walk(self.root): + for file_name in files: + file_full_name = os.path.join(base, file_name) + _, ext = os.path.splitext(file_name) + if ext == '.json': + print(file_full_name) + pkg = load_json(file_full_name) + if pkg.get('type') == 'job': + self.list_package(file_full_name, pkg, + pkg_list, tree_list) + out = { + 'jobs': pkg_list, + 'trees': sorted(list(set(tree_list))) + } + dump_json('data/index.json', out, exist_ok=True, override=True) + + def list_package(self, file_full_name, pkg, pkg_list, tree_list): + package = pkg['package'] + package_name = pkg['package_name'] + levels = pkg['levels'] + for level in levels: + level_en = level['level'] + level_name = level['level_name'] + skill_trees = level['skill_trees'] + + package_level = f'{package}_{level_en}' + pkg_list.append({ + 'name': package_name, + 'level_name': level_name, + 'router': package_level + }) + for skill_tree in skill_trees: + tree_list.append(skill_tree)