├── .idea
├── .gitignore
├── BOSS直聘数据可视化分析项目.iml
├── csv-editor.xml
├── dataSources.xml
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── jsLibraryMappings.xml
├── libraries
│ └── Django_Lib.xml
├── misc.xml
├── modules.xml
├── other.xml
├── sqldialects.xml
└── vcs.xml
├── README.md
├── __pycache__
├── manage.cpython-310.pyc
├── manage.cpython-311.pyc
├── test_salaryMonth.cpython-311-pytest-7.4.4.pyc
├── word_cloud_picture.cpython-310.pyc
└── word_cloud_picture.cpython-311.pyc
├── boss.sql
├── boss直聘数据可视化分析
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-310.pyc
│ ├── __init__.cpython-311.pyc
│ ├── __init__.cpython-38.pyc
│ ├── __init__.cpython-39.pyc
│ ├── settings.cpython-310.pyc
│ ├── settings.cpython-311.pyc
│ ├── settings.cpython-38.pyc
│ ├── settings.cpython-39.pyc
│ ├── urls.cpython-310.pyc
│ ├── urls.cpython-311.pyc
│ ├── urls.cpython-38.pyc
│ ├── urls.cpython-39.pyc
│ ├── wsgi.cpython-310.pyc
│ ├── wsgi.cpython-311.pyc
│ └── wsgi.cpython-38.pyc
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
├── db.sqlite3
├── manage.py
├── media
└── avatar
│ ├── 1.png
│ ├── L1030604.JPG
│ ├── L1030604_wIwlOJe.JPG
│ ├── L1030609.JPG
│ ├── L1030613.JPG
│ ├── L1030616.JPG
│ ├── ailun.jpg
│ ├── benren.jpg
│ ├── benren_2HzZef4.jpg
│ ├── benren_RchU3kn.jpg
│ ├── default.png
│ ├── touxiang.jpg
│ ├── touxiang_31snY9p.jpg
│ ├── touxiang_AU3sp6Y.jpg
│ ├── touxiang_dT8uIag.jpg
│ ├── touxiang_eoJqfOO.jpg
│ └── touxiang_tOkAFxt.jpg
├── middleware
├── __pycache__
│ ├── userInfoMiddleWare.cpython-310.pyc
│ ├── userInfoMiddleWare.cpython-311.pyc
│ └── userInfoMiddleWare.cpython-38.pyc
└── userInfoMiddleWare.py
├── myApp
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-310.pyc
│ ├── __init__.cpython-311.pyc
│ ├── __init__.cpython-38.pyc
│ ├── __init__.cpython-39.pyc
│ ├── admin.cpython-310.pyc
│ ├── admin.cpython-311.pyc
│ ├── admin.cpython-38.pyc
│ ├── admin.cpython-39.pyc
│ ├── apps.cpython-310.pyc
│ ├── apps.cpython-311.pyc
│ ├── error.cpython-310.pyc
│ ├── error.cpython-311.pyc
│ ├── error.cpython-38.pyc
│ ├── error.cpython-39.pyc
│ ├── models.cpython-310.pyc
│ ├── models.cpython-311.pyc
│ ├── models.cpython-38.pyc
│ ├── models.cpython-39.pyc
│ ├── urls.cpython-310.pyc
│ ├── urls.cpython-311.pyc
│ ├── urls.cpython-38.pyc
│ ├── urls.cpython-39.pyc
│ ├── views.cpython-310.pyc
│ ├── views.cpython-311.pyc
│ ├── views.cpython-38.pyc
│ └── views.cpython-39.pyc
├── admin.py
├── apps.py
├── error.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_auto_20240115_1221.py
│ ├── 0003_auto_20240115_1225.py
│ ├── 0004_jobinfo_dist.py
│ ├── __init__.py
│ └── __pycache__
│ │ ├── 0001_initial.cpython-310.pyc
│ │ ├── 0001_initial.cpython-311.pyc
│ │ ├── 0002_auto_20240115_1221.cpython-311.pyc
│ │ ├── 0003_auto_20240115_1225.cpython-311.pyc
│ │ ├── 0004_jobinfo_dist.cpython-310.pyc
│ │ ├── 0004_jobinfo_dist.cpython-311.pyc
│ │ ├── __init__.cpython-310.pyc
│ │ └── __init__.cpython-311.pyc
├── models.py
├── templates
│ ├── changePassword.html
│ ├── companyChart.html
│ ├── companyStatus.html
│ ├── companyTagsWord_cloud.html
│ ├── educationalChat.html
│ ├── extra-timeline.html
│ ├── historyTableData.html
│ ├── index.html
│ ├── salaryChart.html
│ ├── selfInfo.html
│ ├── tableData.html
│ └── yuce.html
├── urls.py
├── utils
│ ├── __pycache__
│ │ ├── getAddressCharData.cpython-311.pyc
│ │ ├── getChangePassword.cpython-311.pyc
│ │ ├── getCompanyCharData.cpython-311.pyc
│ │ ├── getCompanyStatusCharData.cpython-311.pyc
│ │ ├── getEducationalCharData.cpython-311.pyc
│ │ ├── getHistoryTableData.cpython-311.pyc
│ │ ├── getHomeData.cpython-311.pyc
│ │ ├── getSalaryCharData.cpython-311.pyc
│ │ ├── getSelfInfoData.cpython-311.pyc
│ │ ├── getTableData.cpython-311.pyc
│ │ └── publicData.cpython-311.pyc
│ ├── getAddressCharData.py
│ ├── getChangePassword.py
│ ├── getCompanyCharData.py
│ ├── getCompanyStatusCharData.py
│ ├── getEducationalCharData.py
│ ├── getHistoryTableData.py
│ ├── getHomeData.py
│ ├── getModelpredice.py
│ ├── getSalaryCharData.py
│ ├── getSelfInfoData.py
│ ├── getTableData.py
│ └── publicData.py
├── views.py
└── word_cloud_picture.py
├── spider
├── __pycache__
│ └── test_salaryMonth.cpython-311-pytest-7.4.4.pyc
├── audo_insert_sql.py
├── chromedriver.exe
├── clear.csv
├── clear.py
├── spiderMain.py
├── temp.csv
├── 删除自增id
└── 数据.txt
├── static
├── companyTags.jpg
├── companyTitle.jpg
├── css
│ ├── _all.css
│ ├── _all1.css
│ ├── _all2.css
│ ├── _all3.css
│ ├── aciTree.css
│ ├── black.css
│ ├── blue.css
│ ├── bootstrap-wysihtml5.css
│ ├── bootstrap.css
│ ├── cafe.css
│ ├── codemirror.css
│ ├── component.css
│ ├── css.css
│ ├── custom.css
│ ├── datatables.responsive.css
│ ├── daterangepicker-bs3.css
│ ├── dropzone.css
│ ├── entypo.css
│ ├── font-awesome.min.css
│ ├── futurico.css
│ ├── green.css
│ ├── jquery-jvectormap-1.2.2.css
│ ├── jquery-ui-1.10.3.custom.min.css
│ ├── jquery.Jcrop.min.css
│ ├── jquery.selectBoxIt.css
│ ├── markdownarea.css
│ ├── neon-core.css
│ ├── neon-forms.css
│ ├── neon-theme.css
│ ├── polaris.css
│ ├── purple.css
│ ├── red.css
│ ├── responsive-tables.css
│ ├── rickshaw.min.css
│ ├── select2-bootstrap.css
│ ├── select2.css
│ ├── style1.css
│ ├── style_error.css
│ ├── uikit.min.css
│ ├── white.css
│ └── yellow.css
├── font
│ ├── entypo.eot
│ ├── entypo.ttf
│ ├── entypo.woff
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ ├── o-0IIpQlx3QUlC5A4PNr4TRAW_0.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr5DRAW_0.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr5TRA.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr5jRAW_0.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr6DRAW_0.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr6TRAW_0.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr6jRAW_0.woff2
│ ├── o-0IIpQlx3QUlC5A4PNr6zRAW_0.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVYNyB1Wk.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVZ9yB1Wk.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVZNyB.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVZdyB1Wk.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVa9yB1Wk.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVaNyB1Wk.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVadyB1Wk.woff2
│ ├── o-0NIpQlx3QUlC5A4PNjXhFVatyB1Wk.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4ARBQ_m87A.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4ARCQ_k.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4ARDQ_m87A.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4ARGQ_m87A.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4ARMQ_m87A.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4ARNQ_m87A.woff2
│ ├── o-0OIpQlx3QUlC5A4PNr4AROQ_m87A.woff2
│ └── o-0OIpQlx3QUlC5A4PNr4ARPQ_m87A.woff2
├── image
│ ├── Jcrop.gif
│ ├── aero.png
│ ├── aero1.png
│ ├── aero2.png
│ ├── aero@2x.png
│ ├── aero@2x1.png
│ ├── aero@2x2.png
│ ├── alpha-horizontal.png
│ ├── alpha.png
│ ├── blue.png
│ ├── blue1.png
│ ├── blue2.png
│ ├── blue@2x.png
│ ├── blue@2x1.png
│ ├── blue@2x2.png
│ ├── boxed-pattern-3.png
│ ├── drag-drop-rtl.png
│ ├── drag-drop.png
│ ├── flat.png
│ ├── flat@2x.png
│ ├── futurico.png
│ ├── futurico@2x.png
│ ├── green.png
│ ├── green1.png
│ ├── green2.png
│ ├── green@2x.png
│ ├── green@2x1.png
│ ├── green@2x2.png
│ ├── grey.png
│ ├── grey1.png
│ ├── grey2.png
│ ├── grey@2x.png
│ ├── grey@2x1.png
│ ├── grey@2x2.png
│ ├── hue-horizontal.png
│ ├── hue.png
│ ├── line.png
│ ├── line@2x.png
│ ├── load-node.gif
│ ├── loader-1.gif
│ ├── loader-2.gif
│ ├── minimal.png
│ ├── minimal@2x.png
│ ├── minus.png
│ ├── notes-lines.png
│ ├── orange.png
│ ├── orange1.png
│ ├── orange2.png
│ ├── orange@2x.png
│ ├── orange@2x1.png
│ ├── orange@2x2.png
│ ├── pink.png
│ ├── pink1.png
│ ├── pink2.png
│ ├── pink@2x.png
│ ├── pink@2x1.png
│ ├── pink@2x2.png
│ ├── plus.png
│ ├── polaris.png
│ ├── polaris@2x.png
│ ├── purple.png
│ ├── purple1.png
│ ├── purple2.png
│ ├── purple@2x.png
│ ├── purple@2x1.png
│ ├── purple@2x2.png
│ ├── red.png
│ ├── red1.png
│ ├── red2.png
│ ├── red@2x.png
│ ├── red@2x1.png
│ ├── red@2x2.png
│ ├── saturation.png
│ ├── select2-spinner.gif
│ ├── select2.png
│ ├── select2x2.png
│ ├── spritemap.png
│ ├── spritemap@2x.png
│ ├── square.png
│ ├── square@2x.png
│ ├── tree-arrow-big-rtl.png
│ ├── tree-arrow-big.png
│ ├── tree-arrow-small-rtl.png
│ ├── tree-arrow-small.png
│ ├── tree-big-rtl.png
│ ├── tree-big.png
│ ├── tree-branch.png
│ ├── tree-check-big-rtl.png
│ ├── tree-check-big.png
│ ├── tree-check-small-rtl.png
│ ├── tree-check-small.png
│ ├── tree-small-rtl.png
│ ├── tree-small.png
│ ├── yellow.png
│ ├── yellow1.png
│ ├── yellow2.png
│ ├── yellow@2x.png
│ ├── yellow@2x1.png
│ └── yellow@2x2.png
├── js
│ ├── TableTools.min.js
│ ├── bootstrap-colorpicker.min.js
│ ├── bootstrap-datepicker.js
│ ├── bootstrap-switch.min.js
│ ├── bootstrap-tagsinput.min.js
│ ├── bootstrap-timepicker.min.js
│ ├── bootstrap-wysihtml5.js
│ ├── bootstrap.js
│ ├── china.js
│ ├── ckeditor.js
│ ├── codemirror.js
│ ├── d3.v3.js
│ ├── dataTables.bootstrap.js
│ ├── datatables.responsive.js
│ ├── daterangepicker.js
│ ├── dropzone.js
│ ├── echarts.js
│ ├── fileinput.js
│ ├── fullcalendar.min.js
│ ├── gfm.js
│ ├── html5.min.js
│ ├── html5shiv.js
│ ├── icheck.min.js
│ ├── joinable.js
│ ├── jquery-1.11.0.min.js
│ ├── jquery-jvectormap-1.2.2.min.js
│ ├── jquery-jvectormap-ar-merc-en.js
│ ├── jquery-jvectormap-at-merc-en.js
│ ├── jquery-jvectormap-au-mill-en.js
│ ├── jquery-jvectormap-be-merc-en.js
│ ├── jquery-jvectormap-ca-lcc-en.js
│ ├── jquery-jvectormap-ch-mill-en.js
│ ├── jquery-jvectormap-cn-mill-en.js
│ ├── jquery-jvectormap-de-merc-en.js
│ ├── jquery-jvectormap-dk-merc-en.js
│ ├── jquery-jvectormap-es-merc-en.js
│ ├── jquery-jvectormap-europe-merc-en.js
│ ├── jquery-jvectormap-fr-merc-en.js
│ ├── jquery-jvectormap-it-merc-en.js
│ ├── jquery-jvectormap-nl-merc-en.js
│ ├── jquery-jvectormap-uk-merc-en.js
│ ├── jquery-jvectormap-us-aea-en.js
│ ├── jquery-jvectormap-us-ny-newyork-mill-en.js
│ ├── jquery-jvectormap-world-mill-en.js
│ ├── jquery-ui-1.10.3.minimal.min.js
│ ├── jquery.Jcrop.min.js
│ ├── jquery.aciPlugin.min.js
│ ├── jquery.aciTree.min.js
│ ├── jquery.bootstrap.wizard.min.js
│ ├── jquery.dataTables.columnFilter.js
│ ├── jquery.dataTables.min.js
│ ├── jquery.inputmask.bundle.min.js
│ ├── jquery.js
│ ├── jquery.knob.js
│ ├── jquery.min.js
│ ├── jquery.multi-select.js
│ ├── jquery.nestable.js
│ ├── jquery.peity.min.js
│ ├── jquery.selectBoxIt.min.js
│ ├── jquery.sparkline.min.js
│ ├── jquery.tocify.min.js
│ ├── jquery.validate.min.js
│ ├── lodash.min.js
│ ├── main-gsap.js
│ ├── markdown.js
│ ├── markdownarea.min.js
│ ├── marked.js
│ ├── moment.min.js
│ ├── morris.min.js
│ ├── neon-api.js
│ ├── neon-calendar.js
│ ├── neon-charts.js
│ ├── neon-chat.js
│ ├── neon-custom.js
│ ├── neon-demo.js
│ ├── neon-forgotpassword.js
│ ├── neon-login.js
│ ├── neon-mail.js
│ ├── neon-notes.js
│ ├── neon-register.js
│ ├── overlay.js
│ ├── parallax.min.js
│ ├── raphael-min.js
│ ├── resizeable.js
│ ├── respond.min.js
│ ├── responsive-tables.js
│ ├── rickshaw.min.js
│ ├── script.js
│ ├── script1.js
│ ├── select2.min.js
│ ├── toastr.js
│ ├── typeahead.min.js
│ ├── uikit.min.js
│ ├── wysihtml5-0.4.0pre.min.js
│ └── xml.js
├── picture
│ ├── 200x150.jpg
│ ├── 320x160.jpg
│ ├── album-image.jpg
│ ├── album-thumb.jpg
│ ├── attach-1.png
│ ├── attach-2.png
│ ├── burjkhalifa.jpg
│ ├── crop-1.jpg
│ ├── crop-2.jpg
│ ├── crop-3.jpg
│ ├── crop-4.jpg
│ ├── flag-al.png
│ ├── flag-de.png
│ ├── flag-es.png
│ ├── flag-fr.png
│ ├── flag-uk.png
│ ├── highlights-1-skins.png
│ ├── highlights-2-0-bootstrap.png
│ ├── highlights-2-1-icheck.png
│ ├── highlights-2-10-rtl-support.png
│ ├── highlights-2-2-new-editor.png
│ ├── highlights-2-3-language-switcher.png
│ ├── highlights-2-4-register-form.png
│ ├── highlights-2-5-right-menu.png
│ ├── highlights-2-6-login-form.png
│ ├── highlights-2-7-left-chat.png
│ ├── highlights-2-8-spinners.png
│ ├── highlights-2-9-search-results.png
│ ├── highlights-2-profile.png
│ ├── highlights-3-1-comments.png
│ ├── highlights-3-2-members.png
│ ├── highlights-3-2-newpost.png
│ ├── highlights-3-3-nestable.png
│ ├── highlights-3-4-page-loading.png
│ ├── highlights-3-5-settings-page.png
│ ├── highlights-3-6-treeview.png
│ ├── highlights-3-dashboard.png
│ ├── highlights-3-front-end.png
│ ├── highlights-3-notes.png
│ ├── highlights-3-photoshop.png
│ ├── highlights-4-1-boxed.png
│ ├── highlights-4-datatables.png
│ ├── highlights-5-profile_left.png
│ ├── highlights-6-crop.png
│ ├── highlights-7-gallery.png
│ ├── highlights-8-timeline.png
│ ├── laborator.png
│ ├── lockscreen-user.png
│ ├── logo-light@2x.png
│ ├── logo@2x.png
│ ├── member.jpg
│ ├── profile-picture.png
│ ├── sample-al.png
│ ├── sample-au.png
│ ├── sample-crop-2.png
│ ├── sample-crop.jpg
│ ├── sample-it.png
│ ├── thumb-1.png
│ ├── thumb-1@2x.png
│ ├── thumb-2.png
│ ├── thumb-3.png
│ ├── thumb-4.png
│ ├── timeline-image-1.png
│ ├── timeline-image-2.png
│ ├── timeline-image-3.png
│ ├── timeline-image-4.png
│ └── title.png
├── tag.jpg
├── timesalary.png
├── title.jpg
└── yuce.jpg
├── templates
├── error.html
├── login.html
└── register.html
└── word_cloud_picture.py
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 | # Zeppelin ignored files
10 | /ZeppelinRemoteNotebooks/
11 |
--------------------------------------------------------------------------------
/.idea/BOSS直聘数据可视化分析项目.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/.idea/csv-editor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.idea/dataSources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mysql.8
6 | true
7 | com.mysql.cj.jdbc.Driver
8 | jdbc:mysql://localhost:3306/boss
9 | $ProjectFileDir$
10 |
11 |
12 | mysql.8
13 | true
14 | true
15 | $PROJECT_DIR$/boss直聘数据可视化分析/settings.py
16 | com.mysql.cj.jdbc.Driver
17 | jdbc:mysql://127.0.0.1:3306/boss
18 | $ProjectFileDir$
19 |
20 |
21 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/libraries/Django_Lib.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/other.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/sqldialects.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 这是一个基于BOSS直聘实现的数据爬取与可视化分析
2 | 运行代码前要先导入数据库,先自行创建一个数据库,名叫boss;\
3 | 在运行boss.sql文件在boss数据库中创建数据表\
4 | 运行项目前要在setting.py中配置数据库连接
5 | >DATABASES = {
6 | 'default':{
7 | 'ENGINE':'django.db.backends.mysql',
8 | 'NAME':'boss',
9 | 'USER':'数据库账户名',
10 | 'PASSWORD':'数据库密码',
11 | 'HOST':"localhost",
12 | 'PORT':'3306'
13 | }
14 | }\
15 |
16 | 在spider目录中,spiderMain.py是爬虫文件,如果你要保留爬取到的数据文件,只需注释掉**os.remove("./temp.csv")**,
17 | ## 页面效果展示
18 | \
19 | \
20 | \
21 | \
22 | \
23 | \
24 | \
25 | \
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/__pycache__/manage.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/__pycache__/manage.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/manage.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/__pycache__/manage.cpython-311.pyc
--------------------------------------------------------------------------------
/__pycache__/test_salaryMonth.cpython-311-pytest-7.4.4.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/__pycache__/test_salaryMonth.cpython-311-pytest-7.4.4.pyc
--------------------------------------------------------------------------------
/__pycache__/word_cloud_picture.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/__pycache__/word_cloud_picture.cpython-310.pyc
--------------------------------------------------------------------------------
/__pycache__/word_cloud_picture.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/__pycache__/word_cloud_picture.cpython-311.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 | pymysql.version_info=(1,4,3,"final",0) # 指定了pymysql的版本:1.4.3,按照你版本修改
3 | pymysql.install_as_MySQLdb()
4 |
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/__init__.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/__init__.cpython-310.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/__init__.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/__init__.cpython-311.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/__init__.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/__init__.cpython-39.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/settings.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/settings.cpython-310.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/settings.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/settings.cpython-311.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/settings.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/settings.cpython-38.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/settings.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/settings.cpython-39.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/urls.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/urls.cpython-310.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/urls.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/urls.cpython-311.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/urls.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/urls.cpython-38.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/urls.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/urls.cpython-39.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/wsgi.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/wsgi.cpython-310.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/wsgi.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/wsgi.cpython-311.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/__pycache__/wsgi.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/boss直聘数据可视化分析/__pycache__/wsgi.cpython-38.pyc
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/asgi.py:
--------------------------------------------------------------------------------
1 | """
2 | ASGI config for boss直聘数据可视化分析 project.
3 |
4 | It exposes the ASGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.asgi import get_asgi_application
13 |
14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'boss直聘数据可视化分析.settings')
15 |
16 | application = get_asgi_application()
17 |
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/settings.py:
--------------------------------------------------------------------------------
1 | """
2 | Django's settings for boss直聘数据可视化分析 project.
3 |
4 | Generated by 'django-admin startproject' using Django 4.0.6.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/4.0/topics/settings/
8 |
9 | For the full list of settings and their values, see
10 | https://docs.djangoproject.com/en/4.0/ref/settings/
11 | """
12 |
13 | from pathlib import Path
14 | import os
15 | # Build paths inside the project like this: BASE_DIR / 'subdir'.
16 | BASE_DIR = Path(__file__).resolve().parent.parent
17 |
18 |
19 | # Quick-start development settings - unsuitable for production
20 | # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/
21 |
22 | # SECURITY WARNING: keep the secret key used in production secret!
23 | SECRET_KEY = 'django-insecure-y5iipwpfnl%h3r=#9d&by33dgds@=x0t29+z$!7cr&x-9@&)pv'
24 |
25 | # SECURITY WARNING: don't run with debug turned on in production!
26 | DEBUG = True
27 |
28 | ALLOWED_HOSTS = []
29 |
30 |
31 | # Application definition
32 |
33 | INSTALLED_APPS = [
34 | 'django.contrib.admin',
35 | 'django.contrib.auth',
36 | 'django.contrib.contenttypes',
37 | 'django.contrib.sessions',
38 | 'django.contrib.messages',
39 | 'django.contrib.staticfiles',
40 | 'myApp',
41 | ]
42 |
43 | MIDDLEWARE = [
44 | 'django.middleware.security.SecurityMiddleware',
45 | 'django.contrib.sessions.middleware.SessionMiddleware',
46 | 'django.middleware.common.CommonMiddleware',
47 | # 'django.middleware.csrf.CsrfViewMiddleware',
48 | 'django.contrib.auth.middleware.AuthenticationMiddleware',
49 | 'django.contrib.messages.middleware.MessageMiddleware',
50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware',
51 | 'middleware.userInfoMiddleWare.UserMW'
52 | ]
53 |
54 | ROOT_URLCONF = 'boss直聘数据可视化分析.urls'
55 |
56 | TEMPLATES = [
57 | {
58 | 'BACKEND': 'django.template.backends.django.DjangoTemplates',
59 | 'DIRS': [BASE_DIR / 'templates'],
60 | 'APP_DIRS': True,
61 | 'OPTIONS': {
62 | 'context_processors': [
63 | 'django.template.context_processors.debug',
64 | 'django.template.context_processors.request',
65 | 'django.contrib.auth.context_processors.auth',
66 | 'django.contrib.messages.context_processors.messages',
67 | ],
68 | },
69 | },
70 | ]
71 |
72 | WSGI_APPLICATION = 'boss直聘数据可视化分析.wsgi.application'
73 |
74 |
75 | # Database
76 | # https://docs.djangoproject.com/en/4.0/ref/settings/#databases
77 |
78 | DATABASES = {
79 | 'default':{
80 | 'ENGINE':'django.db.backends.mysql',
81 | 'NAME':'boss',
82 | 'USER':'root',
83 | 'PASSWORD':'123456',
84 | 'HOST':"localhost",
85 | 'PORT':'3306'
86 | }
87 | }
88 |
89 |
90 | # Password validation
91 | # https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators
92 |
93 | AUTH_PASSWORD_VALIDATORS = [
94 | {
95 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
96 | },
97 | {
98 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
99 | },
100 | {
101 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
102 | },
103 | {
104 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
105 | },
106 | ]
107 |
108 |
109 | LANGUAGE_CODE = 'zh-hans'
110 |
111 | TIME_ZONE = 'Asia/Shanghai'
112 |
113 | USE_I18N = True
114 |
115 | USE_TZ = True
116 |
117 |
118 | STATIC_URL = 'static/'
119 |
120 | STATICFILES_DIRS = (
121 | os.path.join(BASE_DIR,'static'),
122 | )
123 |
124 | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
125 | SESSION_COOKIE_AGE = 1209600
126 | SESSION_EXPIRE_AT_BROWSER_CLOSE = False
127 |
128 | MEDIA_URL = '/media/'
129 | MEDIA_ROOT = os.path.join(BASE_DIR,'media')
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/urls.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from django.urls import path,include
3 | from django.conf import settings
4 | from django.conf.urls.static import static
5 | urlpatterns = [
6 | path('admin/', admin.site.urls),
7 | path('myApp/',include('myApp.urls'))
8 | ]
9 |
10 | urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
--------------------------------------------------------------------------------
/boss直聘数据可视化分析/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for boss直聘数据可视化分析 project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'boss直聘数据可视化分析.settings')
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/db.sqlite3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/db.sqlite3
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """Django's command-line utility for administrative tasks."""
3 | import os
4 | import sys
5 |
6 | def main():
7 | """Run administrative tasks."""
8 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'boss直聘数据可视化分析.settings')
9 | try:
10 | from django.core.management import execute_from_command_line
11 | except ImportError as exc:
12 | raise ImportError(
13 | "Couldn't import Django. Are you sure it's installed and "
14 | "available on your PYTHONPATH environment variable? Did you "
15 | "forget to activate a virtual environment?"
16 | ) from exc
17 | execute_from_command_line(sys.argv)
18 |
19 | if __name__ == '__main__':
20 | main()
--------------------------------------------------------------------------------
/media/avatar/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/1.png
--------------------------------------------------------------------------------
/media/avatar/L1030604.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/L1030604.JPG
--------------------------------------------------------------------------------
/media/avatar/L1030604_wIwlOJe.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/L1030604_wIwlOJe.JPG
--------------------------------------------------------------------------------
/media/avatar/L1030609.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/L1030609.JPG
--------------------------------------------------------------------------------
/media/avatar/L1030613.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/L1030613.JPG
--------------------------------------------------------------------------------
/media/avatar/L1030616.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/L1030616.JPG
--------------------------------------------------------------------------------
/media/avatar/ailun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/ailun.jpg
--------------------------------------------------------------------------------
/media/avatar/benren.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/benren.jpg
--------------------------------------------------------------------------------
/media/avatar/benren_2HzZef4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/benren_2HzZef4.jpg
--------------------------------------------------------------------------------
/media/avatar/benren_RchU3kn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/benren_RchU3kn.jpg
--------------------------------------------------------------------------------
/media/avatar/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/default.png
--------------------------------------------------------------------------------
/media/avatar/touxiang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/touxiang.jpg
--------------------------------------------------------------------------------
/media/avatar/touxiang_31snY9p.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/touxiang_31snY9p.jpg
--------------------------------------------------------------------------------
/media/avatar/touxiang_AU3sp6Y.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/touxiang_AU3sp6Y.jpg
--------------------------------------------------------------------------------
/media/avatar/touxiang_dT8uIag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/touxiang_dT8uIag.jpg
--------------------------------------------------------------------------------
/media/avatar/touxiang_eoJqfOO.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/touxiang_eoJqfOO.jpg
--------------------------------------------------------------------------------
/media/avatar/touxiang_tOkAFxt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/media/avatar/touxiang_tOkAFxt.jpg
--------------------------------------------------------------------------------
/middleware/__pycache__/userInfoMiddleWare.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/middleware/__pycache__/userInfoMiddleWare.cpython-310.pyc
--------------------------------------------------------------------------------
/middleware/__pycache__/userInfoMiddleWare.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/middleware/__pycache__/userInfoMiddleWare.cpython-311.pyc
--------------------------------------------------------------------------------
/middleware/__pycache__/userInfoMiddleWare.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/middleware/__pycache__/userInfoMiddleWare.cpython-38.pyc
--------------------------------------------------------------------------------
/middleware/userInfoMiddleWare.py:
--------------------------------------------------------------------------------
1 | from django.utils.deprecation import MiddlewareMixin
2 | from django.shortcuts import render,redirect
3 | import re
4 | class UserMW(MiddlewareMixin):
5 | def process_request(self,request):
6 | path = request.path_info
7 | if path == '/myApp/login/' or path == '/myApp/registry/' or re.search('^/admin.*',path):
8 | return None
9 | else:
10 | if not request.session.get('username'):
11 | return redirect('login')
12 | return None
13 |
14 | def process_view(self,request,callback,callback_args,callback_kwargs):
15 | return None
16 |
17 | def process_response(self,request,response):
18 | return response
19 |
--------------------------------------------------------------------------------
/myApp/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__init__.py
--------------------------------------------------------------------------------
/myApp/__pycache__/__init__.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/__init__.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/__init__.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/__init__.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/__init__.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/__init__.cpython-39.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/admin.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/admin.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/admin.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/admin.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/admin.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/admin.cpython-38.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/admin.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/admin.cpython-39.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/apps.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/apps.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/apps.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/apps.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/error.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/error.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/error.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/error.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/error.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/error.cpython-38.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/error.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/error.cpython-39.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/models.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/models.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/models.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/models.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/models.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/models.cpython-38.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/models.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/models.cpython-39.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/urls.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/urls.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/urls.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/urls.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/urls.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/urls.cpython-38.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/urls.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/urls.cpython-39.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/views.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/views.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/views.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/views.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/views.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/views.cpython-38.pyc
--------------------------------------------------------------------------------
/myApp/__pycache__/views.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/__pycache__/views.cpython-39.pyc
--------------------------------------------------------------------------------
/myApp/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from myApp.models import JobInfo,User,History
3 | # Register your models here.
4 |
5 | class JobManager(admin.ModelAdmin):
6 | list_display = ["id","title","address","type","educational","workExperience","workTag","salary","salaryMonth","companyTags","hrWork","hrName","pratice","companyTitle","companyAvatar","companyNature","companyStatus","companyPeople","detailUrl","companyUrl","dist"]
7 | list_display_links = ['title']
8 | list_filter = ['type']
9 | search_fields = ['title']
10 | list_editable = ["address","type","educational","workExperience","workTag","salary","salaryMonth",
11 | "companyTags","hrWork","hrName","pratice","companyTitle","companyAvatar","companyNature",
12 | "companyStatus","companyPeople","detailUrl","companyUrl","dist"]
13 | readonly_fields = ['id']
14 | list_per_page = 20
15 | date_hierarchy = "createTime"
16 |
17 | class UserManager(admin.ModelAdmin):
18 | list_display = ['id','username','password','avatar','createTime','address','educational','work','workExpirence']
19 | list_display_links = ['username']
20 | search_fields = ['username']
21 | list_editable = ['password','avatar','address','educational','work','workExpirence']
22 | readonly_fields = ['username']
23 | list_per_page = 5
24 | date_hierarchy = "createTime"
25 |
26 | class HistoryManager(admin.ModelAdmin):
27 | list_display = ['id','job','user','count']
28 | list_display_links = ['id']
29 | list_per_page = 5
30 |
31 | admin.site.register(JobInfo, JobManager)
32 | admin.site.register(User, UserManager)
33 | admin.site.register(History, HistoryManager)
34 |
35 |
--------------------------------------------------------------------------------
/myApp/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 | class MyappConfig(AppConfig):
3 | name = 'myApp'
4 |
--------------------------------------------------------------------------------
/myApp/error.py:
--------------------------------------------------------------------------------
1 | from django.shortcuts import render
2 |
3 | def errorResponse(request,errorMsg):
4 | return render(request,'error.html',{
5 | 'errorMsg':errorMsg
6 | })
7 |
--------------------------------------------------------------------------------
/myApp/migrations/0001_initial.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 4.2.1 on 2024-01-15 06:06
2 |
3 | from django.db import migrations, models
4 | import django.db.models.deletion
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | initial = True
10 |
11 | dependencies = [
12 | ]
13 |
14 | operations = [
15 | migrations.CreateModel(
16 | name='JobInfo',
17 | fields=[
18 | ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='id')),
19 | ('title', models.CharField(default='', max_length=255, verbose_name='工作名')),
20 | ('address', models.CharField(default='', max_length=255, verbose_name='地址')),
21 | ('type', models.CharField(default='', max_length=255, verbose_name='类型')),
22 | ('educational', models.CharField(default='', max_length=255, verbose_name='学历')),
23 | ('workExperience', models.CharField(default='', max_length=255, verbose_name='工作经验')),
24 | ('workTag', models.CharField(default='', max_length=2555, verbose_name='工作标签')),
25 | ('salary', models.CharField(default='', max_length=255, verbose_name='薪资')),
26 | ('salaryMonth', models.CharField(default='', max_length=255, verbose_name='年终奖')),
27 | ('companyTags', models.CharField(default='', max_length=2555, verbose_name='公司标签')),
28 | ('hrWork', models.CharField(default='', max_length=255, verbose_name='人事职位')),
29 | ('hrName', models.CharField(default='', max_length=255, verbose_name='人事名字')),
30 | ('pratice', models.BooleanField(default='', max_length=255, verbose_name='是否为实习单位')),
31 | ('companyTitle', models.CharField(default='', max_length=255, verbose_name='公司名称')),
32 | ('companyAvatar', models.CharField(default='', max_length=255, verbose_name='公司头像')),
33 | ('companyNature', models.CharField(default='', max_length=255, verbose_name='公司性质')),
34 | ('companyStatus', models.CharField(default='', max_length=255, verbose_name='公司状态')),
35 | ('companyPeople', models.CharField(default='', max_length=255, verbose_name='公司人数')),
36 | ('detailUrl', models.CharField(default='', max_length=2555, verbose_name='详情地址')),
37 | ('companyUrl', models.CharField(default='', max_length=2555, verbose_name='公司详情地址')),
38 | ('createTime', models.DateField(auto_now_add=True, verbose_name='创建时间')),
39 | ('dist', models.CharField(default='', max_length=255, verbose_name='行政区')),
40 | ],
41 | options={
42 | 'db_table': 'jobInfo',
43 | },
44 | ),
45 | migrations.CreateModel(
46 | name='User',
47 | fields=[
48 | ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='id')),
49 | ('username', models.CharField(default='', max_length=255, verbose_name='用户名')),
50 | ('password', models.CharField(default='', max_length=255, verbose_name='密码')),
51 | ('educational', models.CharField(default='', max_length=255, verbose_name='学历')),
52 | ('workExpirence', models.CharField(default='', max_length=255, verbose_name='工作经验')),
53 | ('address', models.CharField(default='', max_length=255, verbose_name='意向城市')),
54 | ('work', models.CharField(default='', max_length=255, verbose_name='意向岗位')),
55 | ('avatar', models.FileField(default='avatar/default.png', upload_to='avatar', verbose_name='用户头像')),
56 | ('createTime', models.DateField(auto_now_add=True, verbose_name='创建时间')),
57 | ],
58 | options={
59 | 'db_table': 'user',
60 | },
61 | ),
62 | migrations.CreateModel(
63 | name='History',
64 | fields=[
65 | ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='id')),
66 | ('count', models.IntegerField(default=1, verbose_name='点击次数')),
67 | ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='myApp.jobinfo')),
68 | ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='myApp.user')),
69 | ],
70 | options={
71 | 'db_table': 'histroy',
72 | },
73 | ),
74 | ]
75 |
--------------------------------------------------------------------------------
/myApp/migrations/0002_auto_20240115_1221.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.14 on 2024-01-15 04:21
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('myApp', '0001_initial'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name='history',
15 | name='count',
16 | field=models.IntegerField(default=1, verbose_name='点击次数'),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/myApp/migrations/0003_auto_20240115_1225.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.14 on 2024-01-15 04:25
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('myApp', '0002_auto_20240115_1221'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name='history',
15 | name='count',
16 | field=models.IntegerField(default=1, verbose_name='点击次数'),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/myApp/migrations/0004_jobinfo_dist.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.2.14 on 2024-01-15 05:24
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('myApp', '0003_auto_20240115_1225'),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name='jobinfo',
15 | name='dist',
16 | field=models.CharField(default='', max_length=255, verbose_name='行政区'),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/myApp/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__init__.py
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/0001_initial.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/0001_initial.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/0001_initial.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/0001_initial.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/0002_auto_20240115_1221.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/0002_auto_20240115_1221.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/0003_auto_20240115_1225.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/0003_auto_20240115_1225.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/0004_jobinfo_dist.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/0004_jobinfo_dist.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/0004_jobinfo_dist.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/0004_jobinfo_dist.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/__init__.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/__init__.cpython-310.pyc
--------------------------------------------------------------------------------
/myApp/migrations/__pycache__/__init__.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/migrations/__pycache__/__init__.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 | class JobInfo(models.Model):
4 | id = models.AutoField('id',primary_key=True)
5 | title = models.CharField('工作名',max_length=255,default='')
6 | address = models.CharField('地址',max_length=255,default='')
7 | type = models.CharField('类型',max_length=255,default='')
8 | educational = models.CharField('学历',max_length=255,default='')
9 | workExperience = models.CharField('工作经验',max_length=255,default='')
10 | workTag = models.CharField('工作标签',max_length=2555,default='')
11 | salary = models.CharField('薪资',max_length=255,default='')
12 | salaryMonth = models.CharField('年终奖',max_length=255,default='')
13 | companyTags = models.CharField('公司标签',max_length=2555,default='')
14 | hrWork = models.CharField('人事职位',max_length=255,default='')
15 | hrName = models.CharField('人事名字',max_length=255,default='')
16 | pratice = models.BooleanField('是否为实习单位',max_length=255,default='')
17 | companyTitle = models.CharField('公司名称',max_length=255,default='')
18 | companyAvatar = models.CharField('公司头像',max_length=255,default='')
19 | companyNature = models.CharField('公司性质',max_length=255,default='')
20 | companyStatus = models.CharField('公司状态',max_length=255,default='')
21 | companyPeople = models.CharField('公司人数',max_length=255,default='')
22 | detailUrl = models.CharField('详情地址',max_length=2555,default='')
23 | companyUrl = models.CharField('公司详情地址',max_length=2555,default='')
24 | createTime = models.DateField('创建时间',auto_now_add=True)
25 | dist = models.CharField('行政区',max_length=255,default='')
26 | class Meta:
27 | db_table = "jobInfo"
28 |
29 | class User(models.Model):
30 | id = models.AutoField('id',primary_key=True)
31 | username = models.CharField('用户名',max_length=255,default='')
32 | password = models.CharField('密码',max_length=255,default='')
33 | educational = models.CharField('学历',max_length=255,default='')
34 | workExpirence = models.CharField('工作经验',max_length=255,default='')
35 | address = models.CharField('意向城市',max_length=255,default='')
36 | work = models.CharField('意向岗位',max_length=255,default='')
37 | avatar = models.FileField("用户头像",upload_to="avatar",default="avatar/touxiang.jpg")
38 | createTime = models.DateField("创建时间",auto_now_add=True)
39 | class Meta:
40 | db_table = "user"
41 |
42 | class History(models.Model):
43 | id = models.AutoField('id',primary_key=True)
44 | job = models.ForeignKey(JobInfo,on_delete=models.CASCADE)
45 | user = models.ForeignKey(User,on_delete=models.CASCADE)
46 | count = models.IntegerField("点击次数",default=1)
47 | class Meta:
48 | db_table = "histroy"
49 |
50 |
--------------------------------------------------------------------------------
/myApp/templates/extra-timeline.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 进入岗位收藏
6 |
7 |
8 | ffff
9 |
10 |
--------------------------------------------------------------------------------
/myApp/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path, re_path
2 | from django.conf import settings
3 | from django.conf.urls.static import static
4 | from . import views
5 |
6 | urlpatterns = [
7 | path('home/', views.home, name='home'),
8 | path('login/', views.login, name='login'),
9 | path('registry/', views.registry, name='registry'),
10 | path('logOut/', views.logOut, name='logOut'),
11 | path('selfInfo/', views.selfInfo, name='selfInfo'),
12 | path('changePassword/', views.changePassword, name='changePassword'),
13 | path('tableData/', views.tableData, name='tableData'),
14 | path('historyTableData/', views.historyTableData, name='historyTableData'),
15 | re_path(r'historyTableData/(.*)', views.historyTableData, name='historyTableData'),
16 | path('addHistory/', views.addHistory, name='addHistory'),
17 | path('removeHistory/', views.removeHistory, name='removeHistory'),
18 | path('salary/', views.salary, name='salary'),
19 | path('company/', views.company, name='company'),
20 | path('companyTags/', views.companyTags, name='companyTags'),
21 | path('educational/', views.educational, name='educational'),
22 | path('companyStatus/', views.companyStatus, name='companyStatus'),
23 | path('yuce/', views.yuce, name='yuce')
24 | ]
25 | if settings.DEBUG:
26 | urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
27 |
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getAddressCharData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getAddressCharData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getChangePassword.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getChangePassword.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getCompanyCharData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getCompanyCharData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getCompanyStatusCharData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getCompanyStatusCharData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getEducationalCharData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getEducationalCharData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getHistoryTableData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getHistoryTableData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getHomeData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getHomeData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getSalaryCharData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getSalaryCharData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getSelfInfoData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getSelfInfoData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/getTableData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/getTableData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/__pycache__/publicData.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/myApp/utils/__pycache__/publicData.cpython-311.pyc
--------------------------------------------------------------------------------
/myApp/utils/getAddressCharData.py:
--------------------------------------------------------------------------------
1 | from .publicData import *
2 | from myApp.models import JobInfo
3 | import json
4 |
5 | def getPageData():
6 | return ['北京','上海','深圳','成都','昆明',"郑州",'重庆','广州','东莞','天津']
7 |
8 | def getEducation(address):
9 | jobs = JobInfo.objects.filter(address=address)
10 | educationData = {}
11 | for job in jobs:
12 | if educationData.get(job.educational,-1) == -1:
13 | educationData[job.educational] = 1
14 | else:
15 | educationData[job.educational] += 1
16 | result = []
17 | for k,v in educationData.items():
18 | result.append({
19 | "name":k,
20 | 'value':v
21 | })
22 | return result
23 |
24 | def getDist(address):
25 | jobs = JobInfo.objects.filter(address=address)
26 | distData = {}
27 | for job in jobs:
28 | if job.dist != '':
29 | if distData.get(job.dist,-1) == -1:
30 | distData[job.dist] = 1
31 | else:
32 | distData[job.dist] += 1
33 | result = []
34 | for k, v in distData.items():
35 | result.append({
36 | "name": k,
37 | 'value': v
38 | })
39 | return result
40 |
41 | def getSalary(address):
42 | jobs = JobInfo.objects.filter(address=address)
43 | salaries = []
44 | for i in jobs:
45 | if i.pratice == 0:
46 | salaries.append(json.loads(i.salary)[1])
47 | salaryColumn = [0 for x in range(len(salaryList))]
48 | for i in salaries:
49 | s = i / 1000
50 | if s < 10:
51 | salaryColumn[0] += 1
52 | elif s < 20:
53 | salaryColumn[1] += 1
54 | elif s < 30:
55 | salaryColumn[2] += 1
56 | elif s < 40:
57 | salaryColumn[3] += 1
58 | else:
59 | salaryColumn[4] += 1
60 | return salaryList,salaryColumn
61 |
62 | def companyPeopleData(address):
63 | jobs = JobInfo.objects.filter(address=address)
64 | peoples = []
65 | for i in jobs:
66 | peoples.append(json.loads(i.companyPeople)[1])
67 | peopleColumn = [0 for x in range(len(companyPeople))]
68 | for p in peoples:
69 | if p <= 20:
70 | peopleColumn[0] += 1
71 | elif p < 100:
72 | peopleColumn[1] += 1
73 | elif p < 500:
74 | peopleColumn[2] += 1
75 | elif p < 1000:
76 | peopleColumn[3] += 1
77 | elif p < 10000:
78 | peopleColumn[4] += 1
79 | elif p == 10000:
80 | peopleColumn[5] += 1
81 | else:
82 | peopleColumn[6] += 1
83 | result = []
84 | for index,item in enumerate(peopleColumn):
85 | result.append({
86 | 'name':companyPeople[index],
87 | 'value':item
88 | })
89 | return result
--------------------------------------------------------------------------------
/myApp/utils/getChangePassword.py:
--------------------------------------------------------------------------------
1 | from myApp.models import User
2 | import hashlib
3 | def changePassword(passwordInfo,userInfo):
4 | oldPwd = passwordInfo['oldPassword']
5 | newPwd = passwordInfo['newPassword']
6 | newCheckPwd = passwordInfo['newCheckPassword']
7 | user = User.objects.get(username=userInfo.username)
8 | md5 = hashlib.md5()
9 | md5.update(oldPwd.encode())
10 | oldPwd = md5.hexdigest()
11 |
12 | if user.password != oldPwd:
13 | return '原始密码不正确'
14 | else:
15 | if newPwd != newCheckPwd:
16 | return '新密码两次不符合'
17 | else:
18 | md5 = hashlib.md5()
19 | md5.update(newPwd.encode())
20 | newPwd = md5.hexdigest()
21 | user.password = newPwd
22 | user.save()
23 |
--------------------------------------------------------------------------------
/myApp/utils/getCompanyCharData.py:
--------------------------------------------------------------------------------
1 | from myApp.models import JobInfo
2 | import json
3 | from .publicData import *
4 |
5 | def getPageData():
6 | jobs = JobInfo.objects.all()
7 | typesData = []
8 | for i in jobs:
9 | typesData.append(i.type)
10 | return list(set(typesData))
11 | def getCompanyBar(type):
12 | if type == 'all':
13 | jobs = JobInfo.objects.all()
14 | else:
15 | jobs = JobInfo.objects.filter(type=type)
16 | natureData = {}
17 | for i in jobs:
18 | if natureData.get(i.companyNature, -1) == -1:
19 | natureData[i.companyNature] = 1
20 | else:
21 | natureData[i.companyNature] += 1
22 | return list(natureData.keys())[:30], list(natureData.values())[:30]
23 |
24 |
25 | def getCompanyPie(type):
26 | if type == 'all':
27 | jobs = JobInfo.objects.all()
28 | else:
29 | jobs = JobInfo.objects.filter(type=type)
30 | addressData = {}
31 | for i in jobs:
32 | if addressData.get(i.address, -1) == -1:
33 | addressData[i.address] = 1
34 | else:
35 | addressData[i.address] += 1
36 | result = []
37 | for key, valye in addressData.items():
38 | result.append({
39 | 'name': key,
40 | 'value': valye
41 | })
42 | return result[:57]
43 |
44 |
45 | def getCompanPeople(type):
46 | if type == 'all':
47 | jobs = JobInfo.objects.all()
48 | else:
49 | jobs = JobInfo.objects.filter(type=type)
50 |
51 | def map_fn(item):
52 | item.companyPeople = json.loads(item.companyPeople)[1]
53 | return item
54 |
55 | jobs = list(map(map_fn, jobs))
56 | data = [0 for x in range(6)]
57 | for i in jobs:
58 | p = i.companyPeople
59 | if p <= 20:
60 | data[0] += 1
61 | elif p <= 100:
62 | data[1] += 1
63 | elif p <= 500:
64 | data[2] += 1
65 | elif p <= 1000:
66 | data[3] += 1
67 | elif p < 10000:
68 | data[4] += 1
69 | else:
70 | data[5] += 1
71 | return companyPeople,data
72 |
--------------------------------------------------------------------------------
/myApp/utils/getCompanyStatusCharData.py:
--------------------------------------------------------------------------------
1 | from myApp.models import JobInfo
2 | from .publicData import *
3 | import json
4 | def getPageData():
5 | return getTypes()
6 |
7 | def getTeachnologyData(type):
8 | if type == '不限':
9 | jobs = JobInfo.objects.all()
10 | else:
11 | jobs = JobInfo.objects.filter(type=type)
12 | workTagData = {}
13 | for job in jobs:
14 | workTag = json.loads(job.workTag)
15 | for w in workTag:
16 | if not w: break;
17 | #result= {'java':2,'python':2,'andriid':1}
18 | if workTagData.get(w,-1) == -1:
19 | workTagData[w] = 1
20 | else:
21 | workTagData[w] += 1
22 | result = sorted(workTagData.items(), key=lambda x:x[1],reverse=True)[:20]
23 | TeachnologyDataRow = []
24 | TeachnologyDataColumn = []
25 | for k,v in result:
26 | TeachnologyDataRow.append(k)
27 | #['java','python']
28 | TeachnologyDataColumn.append(v)
29 | [2,3,1]
30 | return TeachnologyDataRow,TeachnologyDataColumn
31 | def getCompanyStatusData():
32 | jobs = JobInfo.objects.all()
33 | statusData = {}
34 | for job in jobs:
35 | if statusData.get(job.companyStatus,-1) == -1:
36 | statusData[job.companyStatus] = 1
37 | else:
38 | statusData[job.companyStatus] += 1
39 | result = []
40 | for k,v in statusData.items():
41 | result.append({
42 | 'name':k,
43 | 'value':v
44 | })
45 | return result
46 |
47 |
--------------------------------------------------------------------------------
/myApp/utils/getEducationalCharData.py:
--------------------------------------------------------------------------------
1 | from .publicData import *
2 | from myApp.models import JobInfo
3 | import json
4 |
5 | def getAverged(list):
6 | result = 0
7 | for i in list:
8 | result += i
9 | return round(result / len(list),2)
10 |
11 | def getExpirenceLineData(educational):
12 | hasEmpty = False
13 | if educational == '不限':
14 | jobs = JobInfo.objects.all()
15 | else:
16 | jobs = JobInfo.objects.filter(educational=educational)
17 | workExpirences = {'在校/应届':[], '经验不限':[], '1年以内':[], '1-3年':[], '3-5年':[], '5-10年':[], '10年以上':[]}
18 | workPeople = {'在校/应届':0, '经验不限':0, '1年以内':0, '1-3年':0, '3-5年':0, '5-10年':0, '10年以上':0}
19 | for job in jobs:
20 | for k,e in workExpirences.items():
21 | if job.workExperience == k:
22 | workExpirences[k].append(json.loads(job.salary)[1])
23 | workPeople[k] += 1
24 |
25 | for k,e in workExpirences.items():
26 | try:
27 | workExpirences[k] = getAverged(e)
28 | except:
29 | workExpirences[k] = 0
30 | if len(jobs) == 0:
31 | hasEmpty = True
32 | return educations,list(workExpirences.keys()),list(workExpirences.values()),list(workPeople.values()),hasEmpty
33 |
34 | def getEducationsData():
35 | jobs = JobInfo.objects.all()
36 | educationData = {}
37 | for j in jobs:
38 | if educationData.get(j.educational, -1) == -1:
39 | educationData[j.educational] = 1
40 | else:
41 | educationData[j.educational] += 1
42 | #{"benkesjia":1,"jshfa":2}
43 | return list(educationData.keys()),list(educationData.values())
44 |
--------------------------------------------------------------------------------
/myApp/utils/getHistoryTableData.py:
--------------------------------------------------------------------------------
1 | from myApp.models import History
2 | import json
3 | from django.db.models import F
4 |
5 |
6 | def addHistory(userInfo, jobId):
7 | hisData = History.objects.filter(job_id=jobId, user=userInfo)
8 | if len(hisData):
9 | hisData[0].count = F("count") + 1
10 | hisData[0].save()
11 | else:
12 | History.objects.create(job_id=jobId, user=userInfo)
13 |
14 |
15 | def removeHistory(hisId):
16 | his = History.objects.get(id=hisId)
17 | his.delete()
18 |
19 |
20 | def getHistoryData(userInfo):
21 | data = History.objects.filter(user=userInfo).order_by("-count")
22 |
23 | # 如果查询结果为空,则直接返回一个空列表
24 | if not data:
25 | return []
26 |
27 | def map_fn(item):
28 | # 假设item.job.salary等字段已经存在并且为字符串格式的JSON
29 | item.job.salary = json.loads(item.job.salary)
30 | item.job.companyPeople = json.loads(item.job.companyPeople)
31 | item.job.workTag = json.loads(item.job.workTag)
32 |
33 | if item.job.companyTags == '无':
34 | item.job.companyTags = []
35 | else:
36 | item.job.companyTags = json.loads(item.job.companyTags)
37 |
38 | if not item.job.pratice:
39 | item.job.salary = list(map(lambda x: str(int(x / 1000)), item.job.salary))
40 | else:
41 | item.job.salary = list(map(str, item.job.salary))
42 | item.job.salary = '-'.join(item.job.salary)
43 |
44 | item.job.companyPeople = list(map(str, item.job.companyPeople))
45 | item.job.companyPeople = '-'.join(item.job.companyPeople)
46 |
47 | return item
48 |
49 | # 应用map函数转换查询结果
50 | return list(map(map_fn, data))
51 |
--------------------------------------------------------------------------------
/myApp/utils/getHomeData.py:
--------------------------------------------------------------------------------
1 | from myApp.models import User, JobInfo
2 | from .publicData import *
3 | import time
4 | import json
5 | import re
6 |
7 |
8 | # 首页时间+欢迎语
9 | def getNowTime():
10 | timeFormat = time.localtime()
11 | year = timeFormat.tm_year
12 | month = timeFormat.tm_mon
13 | day = timeFormat.tm_mday
14 | monthList = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October",
15 | "November", "December"]
16 | return year, monthList[month - 1], day
17 |
18 |
19 | # 首页右侧7指标
20 | def getTagData():
21 | jobs = getAllJobInfo()
22 | users = getAllUser()
23 | educationsTop = "学历不限"
24 | salaryTop = 0
25 | salaryMonthTop = 0
26 | address = {}
27 | pratice = {}
28 |
29 | # Preprocessing salaries and salary months for non-practise jobs
30 | preprocessed_salaries = [(clean_salary(json.loads(job.salary)[1]), job) for job in jobs if not job.pratice and len(json.loads(job.salary)) > 1 and isinstance(json.loads(job.salary)[1], str)]
31 | preprocessed_salary_months = [(clean_salary(job.salaryMonth), job) for job in jobs]
32 |
33 | # Finding the top non-practise salary
34 | if preprocessed_salaries:
35 | salaryTop = max(preprocessed_salaries, key=lambda x: x[0])[0]
36 |
37 | # Finding the top salary month
38 | if preprocessed_salary_months:
39 | salaryMonthTop = max(preprocessed_salary_months, key=lambda x: x[0])[0]
40 |
41 | # Process for educational level and counting addresses and practice types
42 | for job in jobs:
43 | job_education_value = educations.get(job.educational, 9) # Assuming 9 is the default value
44 | if job_education_value < educations.get(educationsTop, 9):
45 | educationsTop = job.educational
46 |
47 | # Counting occurrences of address
48 | address[job.address] = address.get(job.address, 0) + 1
49 |
50 | # Counting occurrences of practice type
51 | pratice[job.pratice] = pratice.get(job.pratice, 0) + 1
52 |
53 | # Finding top 3 addresses
54 | addressStr = sorted(address.items(), key=lambda x: x[1], reverse=True)[:3]
55 | addressTop = ",".join([i[0] for i in addressStr])
56 |
57 | # Finding the most common practice type
58 | praticeMax = max(pratice.items(), key=lambda x: x[1])
59 | a = "普通岗位" if not praticeMax[0] else "实习岗位"
60 |
61 | return len(jobs), len(users), educationsTop, salaryTop, salaryMonthTop, addressTop, a
62 | # 用户创建时间饼状图
63 | def getUserCreateTime():
64 | users = getAllUser()
65 | data = {}
66 | for u in users:
67 | if data.get(str(u.createTime), -1) == -1:
68 | data[str(u.createTime)] = 1
69 | else:
70 | data[str(u.createTime)] += 1
71 | result = []
72 | for k, v in data.items():
73 | result.append({
74 | 'name': k,
75 | 'value': v
76 | })
77 | return result
78 |
79 |
80 | def getUserTop5():
81 | users = getAllUser()
82 |
83 | def sort_fn(item):
84 | return time.mktime(time.strptime(str(item.createTime), '%Y-%m-%d'))
85 |
86 | users = list(sorted(users, key=sort_fn, reverse=True))[:6]
87 | return users
88 |
89 |
90 | def getTableData():
91 | jobs = getAllJobInfo()
92 | for i in jobs:
93 | i.workTag = '/'.join(json.loads(i.workTag))
94 | if i.companyTags != "无":
95 | i.companyTags = '/'.join(json.loads(i.companyTags))
96 |
97 | i.companyPeople = json.loads(i.companyPeople)
98 | i.companyPeople = list(map(lambda x: str(x) + '人', i.companyPeople))
99 | i.companyPeople = '-'.join(i.companyPeople)
100 | i.salary = json.loads(i.salary)[1]
101 | return jobs
102 | # jobs[0].workTags = '/'.join(json.loads(jobs[0].workTag))
103 | # def map_fn(item):
104 | # item.workTag = "/".join()
105 | # jobs = list(map(map_fn,jobs))
106 |
107 |
108 | # 辅助函数
109 | def clean_salary(salary_str):
110 | # 使用正则表达式移除非数字字符
111 | cleaned_str = re.sub(r'[^\d]', '', salary_str)
112 | # 转换为整数
113 | return int(cleaned_str) if cleaned_str else 0
114 |
--------------------------------------------------------------------------------
/myApp/utils/getModelpredice.py:
--------------------------------------------------------------------------------
1 | from myApp.models import JobInfo
2 | import pandas as pd
3 | from .publicData import *
4 |
5 | timesalary = pd.read_csv("data.txt")
6 | import matplotlib.pyplot as plt
7 | import matplotlib.pylab as pyl
8 | def getmodelspre():
9 | jobsInfos = JobInfo.objects.exclude(workExperience ='经验不限')
10 | listtime=jobsInfos.objects.values_list('workExperience', flat=True)
11 | listsalary=jobsInfos.objects.values_list('salary', flat=True)
12 | list1=[]
13 | for l in listtime:
14 | if len(l)==3:
15 | worktime=int(l[0])/12
16 | elif len(l)==4:
17 | if l[1]=='-':
18 | worktime=int(l[2])
19 | elif l[1]=='年':
20 | worktime=int(l[0])
21 | elif len(l)==5:
22 | if l[2]=='/':
23 | worktime=0
24 | else:
25 | worktime=int(l[:2])
26 | list1.append(worktime)
27 | print(list1)
28 |
29 | list2=[]
30 | for salary in listsalary:
31 | salaryres=(salary[0]+salary[1])/2
32 | list2.append(salaryres)
33 | print(list2)
34 |
35 | with open('filename.txt', 'w') as f:
36 | f.write('均资元,工时年\n')
37 | for i in range(len(list1)):
38 | f.write(str(list2[i]) + ",")
39 | f.write(str(list1[i]) + "\n")
40 | f.close()
41 |
42 | plt.rcParams['font.sans-serif'] = ['SimHei']
43 | from sklearn.linear_model import LinearRegression
44 | model = LinearRegression()
45 | feature_cols = ['工时年']
46 | X = timesalary[feature_cols]
47 | y = timesalary.均资元
48 | model.fit(X,y)
49 | plt.scatter(timesalary.工时年, timesalary.均资元)
50 | plt.plot(timesalary.工时年, model.predict(X) , color='blue')
51 | pyl.title("y="+str(model.coef_[0])+"x+"+str(model.intercept_))
52 | plt.xlabel('工时年')
53 | plt.ylabel('均资元')
54 | plt.savefig('yuce.png')
55 | plt.show()
56 | print("截距与斜率:",model.intercept_,model.coef_)
57 | print("该线性回归方程组公式为:y="+str(model.coef_[0])+"x+"+str(model.intercept_))
--------------------------------------------------------------------------------
/myApp/utils/getSalaryCharData.py:
--------------------------------------------------------------------------------
1 | from .publicData import *
2 | from myApp.models import JobInfo
3 | import json
4 |
5 | def getPageData():
6 | return list(educations.keys()), workExpirences
7 | def getBarData(educational, workExpirence):
8 | salaryList = ['0-10k', '10-20k', '20-30k', '30-40k', '40k以上']
9 | if educational == '不限' and workExpirence == '不限':
10 | jobs = JobInfo.objects.all()
11 | elif workExpirence == '不限':
12 | jobs = JobInfo.objects.filter(educational=educational)
13 | elif educational == '不限':
14 | jobs = JobInfo.objects.filter(workExperience=workExpirence)
15 | else:
16 | jobs = JobInfo.objects.filter(educational=educational, workExperience=workExpirence)
17 | jobsType = {}
18 | for j in jobs:
19 | if j.pratice == 0:
20 | if jobsType.get(j.type, -1) == -1:
21 | # {Java:[1000,245646,4666,3646,5]}
22 | jobsType[j.type] = [json.loads(j.salary)[1]]
23 | else:
24 | jobsType[j.type].append(json.loads(j.salary)[1])
25 | barData = {}
26 | for k, v in jobsType.items():
27 | if not barData.get(k, 0):
28 | barData[k] = [0 for x in range(5)]
29 | for i in v:
30 | s = i / 1000
31 | if s < 10:
32 | barData[k][0] += 1
33 | elif s >= 10 and s < 20:
34 | barData[k][1] += 1
35 | elif s >= 20 and s < 30:
36 | barData[k][2] += 1
37 | elif s >= 30 and s < 40:
38 | barData[k][3] += 1
39 | else:
40 | barData[k][4] += 1
41 | legend = list(barData.keys())
42 | # {java:}
43 | if len(legend) == 0:
44 | legend = None
45 | return salaryList, barData, list(barData.keys())
46 |
47 | def addList(list):
48 | total = 0
49 | for i in list:
50 | total += i
51 | return round(total / len(list), 1)
52 |
53 |
54 | def pieData():
55 | jobs = JobInfo.objects.all()
56 | jobsType = {}
57 | for j in jobs:
58 | if j.pratice == 1:
59 | if jobsType.get(j.type, -1) == -1:
60 | jobsType[j.type] = [json.loads(j.salary)[1]]
61 | else:
62 | jobsType[j.type].append(json.loads(j.salary)[1])
63 | result = []
64 | for k, v in jobsType.items():
65 | result.append({
66 | 'name': k,
67 | 'value': addList(v)
68 | })
69 | return result
70 |
71 |
72 | def louDouData():
73 | jobs = JobInfo.objects.filter(salaryMonth__gt=0)
74 | data = {}
75 | for j in jobs:
76 | x = str(j.salaryMonth) + '薪'
77 | if data.get(x, -1) == -1:
78 | data[x] = 1
79 | else:
80 | data[x] += 1
81 | result = []
82 | for k, v in data.items():
83 | result.append({
84 | 'name': k,
85 | 'value': v
86 | })
87 | return list(data.keys()), result
88 |
89 |
--------------------------------------------------------------------------------
/myApp/utils/getSelfInfoData.py:
--------------------------------------------------------------------------------
1 | from .publicData import *
2 | # from myApp.models import User
3 | def getPageData():
4 | jobs = getAllJobInfo()
5 | jobsType = {}
6 | educations = ["博士","硕士","本科","大专","高中","中专/中技","学历不限"]
7 | workExperience = ['在校/应届生','经验不限','1-3年','3-5年','5-10年','10年以上']
8 | for i in jobs:
9 | if jobsType.get(i.type,-1) == -1:
10 | jobsType[i.type] = 1
11 | else:
12 | jobsType[i.type] += 1
13 | return educations,workExperience,jobsType.keys()
14 |
15 | def changeSelfInfo(newInfo,FileInfo):
16 | user = User.objects.get(username=newInfo['username'])
17 | user.educational = newInfo['educational']
18 | user.workExpirence = newInfo['workExpirence']
19 | user.address = newInfo['address']
20 | user.work = newInfo['work']
21 | if FileInfo['avatar'] != None:
22 | user.avatar = FileInfo['avatar']
23 | user.save()
24 |
--------------------------------------------------------------------------------
/myApp/utils/getTableData.py:
--------------------------------------------------------------------------------
1 | import json
2 | from myApp.models import JobInfo
3 |
4 | def getTableData():
5 | data = list(JobInfo.objects.all())
6 | def map_fn(item):
7 | item.salary = json.loads(item.salary)
8 | item.companyPeople = json.loads(item.companyPeople)
9 | item.workTag = json.loads(item.workTag)
10 | if item.companyTags != '无':
11 | item.companyTags = json.loads(item.companyTags)
12 | if not item.pratice:
13 | item.salary = list(map(lambda x: str(int(x / 1000)), item.salary))
14 | else:
15 | item.salary = list(map(lambda x: str(x), item.salary))
16 | item.salary = '-'.join(item.salary)
17 | item.companyPeople = list(map(lambda x: str(x), item.companyPeople))
18 | item.companyPeople = '-'.join(item.companyPeople)
19 | return item
20 | data = list(map(map_fn, data))
21 | return data
--------------------------------------------------------------------------------
/myApp/utils/publicData.py:
--------------------------------------------------------------------------------
1 | from myApp.models import User,JobInfo
2 |
3 | educations = {"博士": 1, "硕士": 2, "本科": 3, "大专": 4, "高中": 5, "中专/中技": 6, "初中及以下":7,"学历不限": 8,"无": 9}
4 | workExpirences = ['在校/应届','经验不限','1年以内','1-3年','3-5年','5-10年','10年以上']
5 | companyPeople = ['20人以下','100人以下','500人以下','1000人以下','1万人以下','1万人以上']
6 | salaryList = ['0-10k', '10-20k', '20-30k', '30-40k', '40k以上']
7 |
8 | def getAllUser():
9 | return User.objects.all()
10 |
11 | def getAllJobInfo():
12 | jobsInfos = JobInfo.objects.all()
13 | return jobsInfos
14 |
15 | def getTypes():
16 | jobsInfos = JobInfo.objects.all()
17 | typesList = []
18 | for i in jobsInfos:typesList.append(i.type)
19 | return list(set(typesList))
20 |
21 | def getAddress():
22 | jobsInfos = JobInfo.objects.all()
23 | addressList = []
24 | for i in jobsInfos: addressList.append(i.address)
25 | return list(set(addressList))
--------------------------------------------------------------------------------
/myApp/word_cloud_picture.py:
--------------------------------------------------------------------------------
1 | import jieba # 分词
2 | from matplotlib import pylab as plt # 绘图,数据可视化
3 | from wordcloud import WordCloud # 词云
4 | from PIL import Image # 图片处理
5 | import numpy as np # 矩阵运算
6 | from pymysql import *
7 | import json
8 | # wordCloud
9 |
10 | # 所有词
11 | def get_img(field,targetImgSrc,resImgSrc):
12 | con = connect(host='localhost', user='root', password='', database='boss', port=3306, charset='utf8mb4')
13 | cursor = con.cursor()
14 | sql = f"select {field} from jobinfo"
15 | cursor.execute(sql)
16 | data = cursor.fetchall()
17 | text = ''
18 | for i,item in enumerate(data):
19 | text += item[0]
20 | cursor.close()
21 | con.close()
22 |
23 | # 分词
24 | cut = jieba.cut(text)
25 | string = ' '.join(cut)
26 | print(string)
27 |
28 | # 图片
29 | img = Image.open(targetImgSrc) # 打开遮罩图片
30 | img_arr = np.array(img) # 将图片转化为列表
31 | wc = WordCloud(
32 | background_color='white',
33 | mask=img_arr,
34 | font_path='STHUPO.TTF'
35 | )
36 | wc.generate_from_text(string)
37 |
38 | # 绘制图片
39 | fig = plt.figure(1)
40 | plt.imshow(wc)
41 | plt.axis('off') # 不显示坐标轴
42 | # 显示生成的词语图片
43 | # plt.show()
44 | # 输入词语图片到文件
45 | plt.savefig(resImgSrc, dpi=500)
46 |
47 | def get_addressCompanyTags_img(targetImgSrc,resImgSrc,addrress):
48 | con = connect(host='localhost', user='root', password='root', database='boss', port=3306, charset='utf8mb4')
49 | cursor = con.cursor()
50 | sql = f"select companyTags from jobinfo where address = {addrress}"
51 | cursor.execute(sql)
52 | data = cursor.fetchall()
53 | text = ''
54 | for i, item in enumerate(data):
55 | tags = json.loads(item[0])
56 | for j in tags:
57 | text += j
58 | cursor.close()
59 | con.close()
60 | # 分词
61 | cut = jieba.cut(text)
62 | string = ' '.join(cut)
63 | print(string)
64 | # 图片
65 | img = Image.open(targetImgSrc) # 打开遮罩图片
66 | img_arr = np.array(img) # 将图片转化为列表
67 | wc = WordCloud(
68 | background_color='white',
69 | mask=img_arr,
70 | font_path='STHUPO.TTF'
71 | )
72 | wc.generate_from_text(string)
73 | # 绘制图片
74 | fig = plt.figure(1)
75 | plt.imshow(wc)
76 | plt.axis('off') # 不显示坐标轴
77 | # 显示生成的词语图片
78 | # plt.show()
79 | # 输入词语图片到文件
80 | plt.savefig(resImgSrc, dpi=500)
81 |
82 | # get_img('companyTitle',r'.\static\2.jpg',r'.\static\companyTitle.jpg')
83 | # get_img('summary',r'.\static\2.jpg',r'.\static\summary_cloud.jpg')
84 |
85 |
86 |
--------------------------------------------------------------------------------
/spider/__pycache__/test_salaryMonth.cpython-311-pytest-7.4.4.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/spider/__pycache__/test_salaryMonth.cpython-311-pytest-7.4.4.pyc
--------------------------------------------------------------------------------
/spider/audo_insert_sql.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | from sqlalchemy import create_engine
3 | from sqlalchemy.sql import text
4 |
5 | # CSV文件路径
6 | csv_file_path = 'clear.csv'
7 |
8 | # 读取CSV文件,没有列名,所以设置header=None
9 | df = pd.read_csv(csv_file_path, header=None)
10 |
11 | # 检查DataFrame的列数
12 | print(f"The CSV file has {df.shape[1]} columns.")
13 |
14 | # 定义DataFrame的列名(确保与数据库中的列对应,不包括自增长的id列)
15 | columns = [
16 | 'title', 'address', 'type', 'educational', 'workExperience', 'workTag',
17 | 'salary', 'salaryMonth', 'companyTags', 'hrWork', 'hrName', 'pratice',
18 | 'companyTitle', 'companyAvatar', 'companyNature', 'companyStatus', 'companyPeople',
19 | 'detailUrl', 'companyUrl', 'createTime','dist'
20 | ]
21 |
22 | # 确保列名的数量与CSV文件中的列数匹配
23 | if len(columns) != df.shape[1]:
24 | raise ValueError(f"Columns length mismatch. CSV has {df.shape[1]} columns, but {len(columns)} column names were provided.")
25 |
26 | # 设置DataFrame的列名
27 | df.columns = columns
28 |
29 | # MySQL数据库连接信息
30 | username = 'root' # 你的MySQL用户名
31 | password = '123456' # 你的MySQL密码
32 | host = 'localhost' # 数据库服务器地址
33 | port = 3306 # 端口号
34 | dbname = 'boss' # 数据库名称
35 |
36 | # 创建数据库引擎
37 | engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}')
38 |
39 | # 查询表中现有的记录数
40 | with engine.connect() as conn:
41 | result = conn.execute(text("SELECT COUNT(*) FROM jobinfo"))
42 | initial_count = result.scalar()
43 |
44 |
45 | # 将DataFrame导入MySQL数据库,表名为jobinfo
46 | # if_exists='replace'会替换掉原有的表,请确保这是您想要的操作
47 | # chunksize可以根据需要设置,以便在导入大型DataFrame时分块导入
48 | # method='multi'允许执行多行的INSERT,可以提高导入性能
49 | df.to_sql('jobinfo', con=engine, if_exists='append', index=False, chunksize=1000, method='multi')
50 | # 查询更新后的记录数
51 | with engine.connect() as conn:
52 | result = conn.execute(text("SELECT COUNT(*) FROM jobinfo"))
53 | final_count = result.scalar()
54 | # 计算导入了多少条数据
55 | imported_rows = final_count - initial_count
56 | print(f'数据导入成功,{imported_rows}被导入')
--------------------------------------------------------------------------------
/spider/chromedriver.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/spider/chromedriver.exe
--------------------------------------------------------------------------------
/spider/clear.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | # 读取temp.csv文件
4 | temp_df = pd.read_csv('temp.csv', header=None)
5 |
6 | # 判断temp_df是否为空
7 | if temp_df.empty:
8 | print("temp.csv 文件为空,停止工作。")
9 | else:
10 | # 判断clear.csv文件是否存在
11 | try:
12 | clear_df = pd.read_csv('clear.csv', header=None)
13 | except pd.errors.EmptyDataError:
14 | clear_df = pd.DataFrame()
15 |
16 | # 判断clear_df是否为空
17 | if clear_df.empty:
18 | # 对temp.csv的数据进行清洗和填补缺失值
19 | temp_df.fillna('无', inplace=True)
20 |
21 | # 更新clear.csv文件
22 | temp_df.to_csv('clear.csv', header=False, index=False)
23 | print("clear.csv 文件为空,已写入清洗和填补缺失值后的 temp.csv 中的数据。")
24 | else:
25 | # 删除clear.csv中和temp.csv相同的行
26 | merged_df = pd.concat([temp_df, clear_df]).drop_duplicates(keep=False)
27 |
28 | # 使用 "无" 替换空值
29 | merged_df.fillna('无', inplace=True)
30 |
31 | # 更新clear.csv文件
32 | merged_df.to_csv('clear.csv', header=False, index=False)
33 | print("清洗完成,并更新 clear.csv 文件。")
34 |
--------------------------------------------------------------------------------
/spider/temp.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/spider/temp.csv
--------------------------------------------------------------------------------
/spider/删除自增id:
--------------------------------------------------------------------------------
1 | 删除id
2 | ALTER TABLE jobinfo
3 | DROP id;
4 | ALTER TABLE jobinfo
5 | ADD id int NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;
6 |
7 | 删除表数据
8 | 情况
9 | DELETE FROM jobinfo;
10 | 删除特定的
11 | WHERE +条件
12 |
13 | 全删
14 | TRUNCATE TABLE jobinfo;
15 |
16 |
17 |
--------------------------------------------------------------------------------
/static/companyTags.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/companyTags.jpg
--------------------------------------------------------------------------------
/static/companyTitle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/companyTitle.jpg
--------------------------------------------------------------------------------
/static/css/bootstrap-wysihtml5.css:
--------------------------------------------------------------------------------
1 | ul.wysihtml5-toolbar {
2 | margin: 0;
3 | padding: 0;
4 | display: block;
5 | }
6 |
7 | ul.wysihtml5-toolbar::after {
8 | clear: both;
9 | display: table;
10 | content: "";
11 | }
12 |
13 | ul.wysihtml5-toolbar > li {
14 | float: left;
15 | display: list-item;
16 | list-style: none;
17 | margin: 0 5px 10px 0;
18 | }
19 |
20 | ul.wysihtml5-toolbar a[data-wysihtml5-command=bold] {
21 | font-weight: bold;
22 | }
23 |
24 | ul.wysihtml5-toolbar a[data-wysihtml5-command=italic] {
25 | font-style: italic;
26 | }
27 |
28 | ul.wysihtml5-toolbar a[data-wysihtml5-command=underline] {
29 | text-decoration: underline;
30 | }
31 |
32 | ul.wysihtml5-toolbar a.btn.wysihtml5-command-active {
33 | background-image: none;
34 | -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
35 | -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
36 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
37 | background-color: #E6E6E6;
38 | background-color: #D9D9D9;
39 | outline: 0;
40 | }
41 |
42 | ul.wysihtml5-commands-disabled .dropdown-menu {
43 | display: none !important;
44 | }
45 |
46 | ul.wysihtml5-toolbar div.wysihtml5-colors {
47 | display:block;
48 | width: 50px;
49 | height: 20px;
50 | margin-top: 2px;
51 | margin-left: 5px;
52 | position: absolute;
53 | pointer-events: none;
54 | }
55 |
56 | ul.wysihtml5-toolbar a.wysihtml5-colors-title {
57 | padding-left: 70px;
58 | }
59 |
60 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="black"] {
61 | background: black !important;
62 | }
63 |
64 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="silver"] {
65 | background: silver !important;
66 | }
67 |
68 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="gray"] {
69 | background: gray !important;
70 | }
71 |
72 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="maroon"] {
73 | background: maroon !important;
74 | }
75 |
76 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="red"] {
77 | background: red !important;
78 | }
79 |
80 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="purple"] {
81 | background: purple !important;
82 | }
83 |
84 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="green"] {
85 | background: green !important;
86 | }
87 |
88 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="olive"] {
89 | background: olive !important;
90 | }
91 |
92 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="navy"] {
93 | background: navy !important;
94 | }
95 |
96 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="blue"] {
97 | background: blue !important;
98 | }
99 |
100 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="orange"] {
101 | background: orange !important;
102 | }
--------------------------------------------------------------------------------
/static/css/component.css:
--------------------------------------------------------------------------------
1 |
2 | .cbp_tmtimeline {
3 | margin: 30px 0 0 0;
4 | padding: 0;
5 | list-style: none;
6 | position: relative;
7 | }
8 |
9 | /* The line */
10 | .cbp_tmtimeline:before {
11 | content: '';
12 | position: absolute;
13 | top: 0;
14 | bottom: 0;
15 | width: 10px;
16 | background: #afdcf8;
17 | left: 20%;
18 | margin-left: -10px;
19 | }
20 |
21 | /* The date/time */
22 | .cbp_tmtimeline > li {
23 | position: relative;
24 | }
25 |
26 | .cbp_tmtimeline > li .cbp_tmtime {
27 | display: block;
28 | width: 25%;
29 | padding-right: 100px;
30 | position: absolute;
31 | }
32 |
33 | .cbp_tmtimeline > li .cbp_tmtime span {
34 | display: block;
35 | text-align: right;
36 | }
37 |
38 | .cbp_tmtimeline > li .cbp_tmtime span:first-child {
39 | font-size: 0.9em;
40 | color: #bdd0db;
41 | }
42 |
43 | .cbp_tmtimeline > li .cbp_tmtime span:last-child {
44 | font-size: 2.9em;
45 | color: #3594cb;
46 | }
47 |
48 | .cbp_tmtimeline > li:nth-child(odd) .cbp_tmtime span:last-child {
49 | color: #6cbfee;
50 | }
51 |
52 | /* Right content */
53 | .cbp_tmtimeline > li .cbp_tmlabel {
54 | margin: 0 0 15px 25%;
55 | background: #3594cb;
56 | color: #fff;
57 | padding: 2em;
58 | font-size: 1.2em;
59 | font-weight: 300;
60 | line-height: 1.4;
61 | position: relative;
62 | border-radius: 5px;
63 | }
64 |
65 | .cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel {
66 | background: #6cbfee;
67 | }
68 |
69 | .cbp_tmtimeline > li .cbp_tmlabel h2 {
70 | margin-top: 0px;
71 | padding: 0 0 10px 0;
72 | border-bottom: 1px solid rgba(255,255,255,0.4);
73 | }
74 |
75 | /* The triangle */
76 | .cbp_tmtimeline > li .cbp_tmlabel:after {
77 | right: 100%;
78 | border: solid transparent;
79 | content: " ";
80 | height: 0;
81 | width: 0;
82 | position: absolute;
83 | pointer-events: none;
84 | border-right-color: #3594cb;
85 | border-width: 10px;
86 | top: 10px;
87 | }
88 |
89 | .cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after {
90 | border-right-color: #6cbfee;
91 | }
92 |
93 | /* The icons */
94 | .cbp_tmtimeline > li .cbp_tmicon {
95 | width: 40px;
96 | height: 40px;
97 | speak: none;
98 | font-style: normal;
99 | font-weight: normal;
100 | font-variant: normal;
101 | text-transform: none;
102 | font-size: 1.4em;
103 | line-height: 40px;
104 | -webkit-font-smoothing: antialiased;
105 | position: absolute;
106 | color: #fff;
107 | background: #46a4da;
108 | border-radius: 50%;
109 | box-shadow: 0 0 0 8px #afdcf8;
110 | text-align: center;
111 | left: 20%;
112 | top: 0;
113 | margin: 0 0 0 -25px;
114 | }
115 |
116 |
117 | /* Example Media Queries */
118 | @media screen and (max-width: 65.375em) {
119 |
120 | .cbp_tmtimeline > li .cbp_tmtime span:last-child {
121 | font-size: 1.5em;
122 | }
123 | }
124 |
125 | @media screen and (max-width: 47.2em) {
126 | .cbp_tmtimeline:before {
127 | display: none;
128 | }
129 |
130 | .cbp_tmtimeline > li .cbp_tmtime {
131 | width: 100%;
132 | position: relative;
133 | padding: 0 0 20px 0;
134 | }
135 |
136 | .cbp_tmtimeline > li .cbp_tmtime span {
137 | text-align: left;
138 | }
139 |
140 | .cbp_tmtimeline > li .cbp_tmlabel {
141 | margin: 0 0 30px 0;
142 | padding: 1em;
143 | font-weight: 400;
144 | font-size: 95%;
145 | }
146 |
147 | .cbp_tmtimeline > li .cbp_tmlabel:after {
148 | right: auto;
149 | left: 20px;
150 | border-right-color: transparent;
151 | border-bottom-color: #3594cb;
152 | top: -20px;
153 | }
154 |
155 | .cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after {
156 | border-right-color: transparent;
157 | border-bottom-color: #6cbfee;
158 | }
159 |
160 | .cbp_tmtimeline > li .cbp_tmicon {
161 | position: relative;
162 | float: right;
163 | left: auto;
164 | margin: -55px 5px 0 0px;
165 | }
166 | }
167 |
--------------------------------------------------------------------------------
/static/css/custom.css:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * Apply Here your Custom CSS
4 | *
5 | */
6 |
7 | body {
8 |
9 | }
--------------------------------------------------------------------------------
/static/css/datatables.responsive.css:
--------------------------------------------------------------------------------
1 | table.has-columns-hidden > tbody > tr > td > span.responsiveExpander {
2 | background: url('../image/plus.png') no-repeat 5px center;
3 | padding-left: 32px;
4 | cursor: pointer;
5 | }
6 |
7 | table.has-columns-hidden > tbody > tr.detail-show > td span.responsiveExpander {
8 | background: url('../image/minus.png') no-repeat 5px center;
9 | }
10 |
11 | table.has-columns-hidden > tbody > tr.row-detail > td {
12 | background: #eee;
13 | }
14 |
15 | table.has-columns-hidden > tbody > tr.row-detail > td > ul {
16 | list-style: none;
17 | margin: 0;
18 | }
19 |
20 | table.has-columns-hidden > tbody > tr.row-detail > td > ul > li > span.columnTitle {
21 | font-weight: bold;
22 | }
23 |
--------------------------------------------------------------------------------
/static/css/futurico.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Futurico skin
2 | ----------------------------------- */
3 | .icheckbox_futurico,
4 | .iradio_futurico {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 16px;
11 | height: 17px;
12 | background: url(../image/futurico.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_futurico {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_futurico.checked {
21 | background-position: -18px 0;
22 | }
23 | .icheckbox_futurico.disabled {
24 | background-position: -36px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_futurico.checked.disabled {
28 | background-position: -54px 0;
29 | }
30 |
31 | .iradio_futurico {
32 | background-position: -72px 0;
33 | }
34 | .iradio_futurico.checked {
35 | background-position: -90px 0;
36 | }
37 | .iradio_futurico.disabled {
38 | background-position: -108px 0;
39 | cursor: default;
40 | }
41 | .iradio_futurico.checked.disabled {
42 | background-position: -126px 0;
43 | }
44 |
45 | /* Retina support */
46 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
47 | only screen and (-moz-min-device-pixel-ratio: 1.5),
48 | only screen and (-o-min-device-pixel-ratio: 3/2),
49 | only screen and (min-device-pixel-ratio: 1.5) {
50 | .icheckbox_futurico,
51 | .iradio_futurico {
52 | background-image: url(../image/futurico@2x.png);
53 | -webkit-background-size: 144px 19px;
54 | background-size: 144px 19px;
55 | }
56 | }
--------------------------------------------------------------------------------
/static/css/jquery-jvectormap-1.2.2.css:
--------------------------------------------------------------------------------
1 | .jvectormap-label {
2 | position: absolute;
3 | display: none;
4 | -webkit-border-radius: 3px;
5 | -moz-border-radius: 3px;
6 | border-radius: 3px;
7 | background: #262b34;
8 | color: white;
9 | font-family: sans-serif, Verdana;
10 | font-size: smaller;
11 | padding: 5px;
12 | font-size: 11px;
13 | font-family: Arial;
14 | font-family: inherit;
15 | z-index:11;
16 | }
17 |
18 | .jvectormap-zoomin, .jvectormap-zoomout {
19 | position: absolute;
20 | font-family: sans-serif;
21 | font-size: 14px;
22 | left: 10px;
23 | -webkit-border-radius: 3px;
24 | -moz-border-radius: 3px;
25 | border-radius: 3px;
26 | background: rgba(0,0,0,0.5);
27 | padding: 3px;
28 | color: white;
29 | width: 15px;
30 | height: 15px;
31 | cursor: pointer;
32 | line-height: 15px;
33 | text-align: center;
34 | padding: 0px;
35 | }
36 |
37 | .jvectormap-zoomin:hover, .jvectormap-zoomout:hover {
38 | background: rgba(0,0,0,1);
39 | }
40 |
41 | .jvectormap-zoomin {
42 | top: 10px;
43 | }
44 |
45 | .jvectormap-zoomout {
46 | top: 30px;
47 | }
--------------------------------------------------------------------------------
/static/css/jquery.Jcrop.min.css:
--------------------------------------------------------------------------------
1 | /* jquery.Jcrop.min.css v0.9.12 (build:20130521) */
2 | .jcrop-holder{-ms-touch-action:none;direction:ltr;text-align:left;}
3 | .jcrop-vline,.jcrop-hline{background:#FFF url(../image/Jcrop.gif);font-size:0;position:absolute;}
4 | .jcrop-vline{height:100%;width:1px!important;}
5 | .jcrop-vline.right{right:0;}
6 | .jcrop-hline{height:1px!important;width:100%;}
7 | .jcrop-hline.bottom{bottom:0;}
8 | .jcrop-tracker{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;height:100%;width:100%;}
9 | .jcrop-handle{background-color:#333;border:1px #EEE solid;font-size:1px;height:7px;width:7px;}
10 | .jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0;}
11 | .jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px;}
12 | .jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%;}
13 | .jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%;}
14 | .jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0;}
15 | .jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0;}
16 | .jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0;}
17 | .jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px;}
18 | .jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%;}
19 | .jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px;}
20 | .jcrop-dragbar.ord-n{margin-top:-4px;}
21 | .jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px;}
22 | .jcrop-dragbar.ord-e{margin-right:-4px;right:0;}
23 | .jcrop-dragbar.ord-w{margin-left:-4px;}
24 | .jcrop-light .jcrop-vline,.jcrop-light .jcrop-hline{background:#FFF;filter:alpha(opacity=70)!important;opacity:.70!important;}
25 | .jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#FFF;border-radius:3px;}
26 | .jcrop-dark .jcrop-vline,.jcrop-dark .jcrop-hline{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important;}
27 | .jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#FFF;border-color:#000;border-radius:3px;}
28 | .solid-line .jcrop-vline,.solid-line .jcrop-hline{background:#FFF;}
29 | .jcrop-holder img,img.jcrop-preview{max-width:none;}
30 |
--------------------------------------------------------------------------------
/static/css/markdownarea.css:
--------------------------------------------------------------------------------
1 | /*! UIkit 2.3.1 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
2 |
3 | /* ========================================================================
4 | Addon: Markdownarea
5 | ========================================================================== */
6 | /* Sub-object `uk-markdownarea-navbar`
7 | ========================================================================== */
8 | .uk-markdownarea-navbar {
9 | background: #eeeeee;
10 | }
11 | /*
12 | * Micro clearfix
13 | */
14 | .uk-markdownarea-navbar:before,
15 | .uk-markdownarea-navbar:after {
16 | content: " ";
17 | display: table;
18 | }
19 | .uk-markdownarea-navbar:after {
20 | clear: both;
21 | }
22 | /* Sub-object `uk-markdownarea-navbar-nav`
23 | ========================================================================== */
24 | .uk-markdownarea-navbar-nav {
25 | margin: 0;
26 | padding: 0;
27 | list-style: none;
28 | float: left;
29 | }
30 | .uk-markdownarea-navbar-nav > li {
31 | float: left;
32 | }
33 | /*
34 | * 1. Dimensions
35 | * 2. Style
36 | */
37 | .uk-markdownarea-navbar-nav > li > a {
38 | display: block;
39 | -moz-box-sizing: border-box;
40 | box-sizing: border-box;
41 | text-decoration: none;
42 | /* 1 */
43 | height: 40px;
44 | padding: 0 15px;
45 | line-height: 40px;
46 | /* 2 */
47 | color: #444444;
48 | font-size: 11px;
49 | cursor: pointer;
50 | }
51 | /*
52 | * Hover
53 | * 1. Apply hover style also to focus state
54 | * 2. Remove default focus style
55 | */
56 | .uk-markdownarea-navbar-nav > li:hover > a,
57 | .uk-markdownarea-navbar-nav > li > a:focus {
58 | background-color: #f5f5f5;
59 | color: #444444;
60 | outline: none;
61 | /* 2 */
62 | }
63 | /* OnClick */
64 | .uk-markdownarea-navbar-nav > li > a:active {
65 | background-color: #dddddd;
66 | color: #444444;
67 | }
68 | /* Active */
69 | .uk-markdownarea-navbar-nav > li.uk-active > a {
70 | background-color: #f5f5f5;
71 | color: #444444;
72 | }
73 | /* Sub-object: `uk-markdownarea-navbar-flip`
74 | ========================================================================== */
75 | .uk-markdownarea-navbar-flip {
76 | float: right;
77 | }
78 | /* Sub-object for special buttons
79 | ========================================================================== */
80 | [data-mode='split'] .uk-markdown-button-markdown,
81 | [data-mode='split'] .uk-markdown-button-preview {
82 | display: none;
83 | }
84 | /* Sub-object `uk-markdownarea-content`
85 | ========================================================================== */
86 | .uk-markdownarea-content {
87 | border-left: 1px solid #dddddd;
88 | border-right: 1px solid #dddddd;
89 | border-bottom: 1px solid #dddddd;
90 | background: #ffffff;
91 | }
92 | /*
93 | * Micro clearfix
94 | */
95 | .uk-markdownarea-content:before,
96 | .uk-markdownarea-content:after {
97 | content: " ";
98 | display: table;
99 | }
100 | .uk-markdownarea-content:after {
101 | clear: both;
102 | }
103 | /* Modifier `uk-markdownarea-fullscreen`
104 | ========================================================================== */
105 | .uk-markdownarea-fullscreen {
106 | position: fixed;
107 | top: 0;
108 | left: 0;
109 | right: 0;
110 | bottom: 0;
111 | z-index: 1030;
112 | }
113 | .uk-markdownarea-fullscreen .uk-markdownarea-content {
114 | position: absolute;
115 | top: 40px;
116 | left: 0;
117 | right: 0;
118 | bottom: 0;
119 | }
120 | .uk-markdownarea-fullscreen .uk-icon-expand:before {
121 | content: "\f066";
122 | }
123 | /* Sub-objects `uk-markdownarea-code` and `uk-markdownarea-preview`
124 | ========================================================================== */
125 | .uk-markdownarea-code,
126 | .uk-markdownarea-preview {
127 | -moz-box-sizing: border-box;
128 | box-sizing: border-box;
129 | }
130 | .uk-markdownarea-preview {
131 | padding: 20px;
132 | overflow-y: scroll;
133 | }
134 | /*
135 | * Tab view
136 | */
137 | [data-mode='tab'][data-active-tab='code'] .uk-markdownarea-preview,
138 | [data-mode='tab'][data-active-tab='preview'] .uk-markdownarea-code {
139 | display: none;
140 | }
141 | /*
142 | * Split view
143 | */
144 | [data-mode='split'] .uk-markdownarea-code,
145 | [data-mode='split'] .uk-markdownarea-preview {
146 | float: left;
147 | width: 50%;
148 | }
149 | [data-mode='split'] .uk-markdownarea-code {
150 | border-right: 1px solid #eeeeee;
151 | }
152 | /* CodeMirror modifications
153 | ========================================================================== */
154 | .uk-markdownarea .CodeMirror {
155 | padding: 10px;
156 | -moz-box-sizing: border-box;
157 | box-sizing: border-box;
158 | }
159 |
--------------------------------------------------------------------------------
/static/css/polaris.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Polaris skin
2 | ----------------------------------- */
3 | .icheckbox_polaris,
4 | .iradio_polaris {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 29px;
11 | height: 29px;
12 | background: url(../image/polaris.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_polaris {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_polaris.hover {
21 | background-position: -31px 0;
22 | }
23 | .icheckbox_polaris.checked {
24 | background-position: -62px 0;
25 | }
26 | .icheckbox_polaris.disabled {
27 | background-position: -93px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_polaris.checked.disabled {
31 | background-position: -124px 0;
32 | }
33 |
34 | .iradio_polaris {
35 | background-position: -155px 0;
36 | }
37 | .iradio_polaris.hover {
38 | background-position: -186px 0;
39 | }
40 | .iradio_polaris.checked {
41 | background-position: -217px 0;
42 | }
43 | .iradio_polaris.disabled {
44 | background-position: -248px 0;
45 | cursor: default;
46 | }
47 | .iradio_polaris.checked.disabled {
48 | background-position: -279px 0;
49 | }
50 |
51 | /* Retina support */
52 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
53 | only screen and (-moz-min-device-pixel-ratio: 1.5),
54 | only screen and (-o-min-device-pixel-ratio: 3/2),
55 | only screen and (min-device-pixel-ratio: 1.5) {
56 | .icheckbox_polaris,
57 | .iradio_polaris {
58 | background-image: url(../image/polaris@2x.png);
59 | -webkit-background-size: 310px 31px;
60 | background-size: 310px 31px;
61 | }
62 | }
--------------------------------------------------------------------------------
/static/css/responsive-tables.css:
--------------------------------------------------------------------------------
1 | /* Foundation v2.1.4 http://foundation.zurb.com */
2 | /* Artfully masterminded by ZURB */
3 |
4 | /* --------------------------------------------------
5 | Table of Contents
6 | -----------------------------------------------------
7 | :: Shared Styles
8 | :: Page Name 1
9 | :: Page Name 2
10 | */
11 |
12 |
13 | /* -----------------------------------------
14 | Shared Styles
15 | ----------------------------------------- */
16 |
17 |
18 | /* Mobile */
19 | @media only screen and (max-width: 767px) {
20 |
21 | table.responsive { margin-bottom: 0; }
22 |
23 | .pinned { position: absolute; left: 0; top: 0; background: #fff; width: 30%; overflow: hidden; overflow-x: scroll; border-right: 1px solid #ccc; }
24 | .pinned table { border-right: none; border-left: none; width: 100%; }
25 | .pinned table th, .pinned table td { white-space: nowrap; }
26 | .pinned td:last-child { border-bottom: 0; }
27 |
28 | div.table-wrapper { position: relative; margin-bottom: 20px; overflow: hidden; }
29 | div.table-wrapper div.rt-scrollable { margin-left: 30%; }
30 | div.table-wrapper div.rt-scrollable { overflow: scroll; overflow-y: hidden; }
31 |
32 | table.responsive td, table.responsive th { position: relative; white-space: nowrap; overflow: hidden; }
33 | table.responsive th:first-child, table.responsive td:first-child, table.responsive td:first-child, table.responsive.pinned td { display: none; }
34 |
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/static/css/select2-bootstrap.css:
--------------------------------------------------------------------------------
1 | .form-control .select2-choice {
2 | border: 0;
3 | border-radius: 2px;
4 | }
5 |
6 | .form-control .select2-choice .select2-arrow {
7 | border-radius: 0 2px 2px 0;
8 | }
9 |
10 | .form-control.select2-container {
11 | height: auto !important;
12 | padding: 0px;
13 | }
14 |
15 | .form-control.select2-container.select2-dropdown-open {
16 | border-color: #5897FB;
17 | border-radius: 3px 3px 0 0;
18 | }
19 |
20 | .form-control .select2-container.select2-dropdown-open .select2-choices {
21 | border-radius: 3px 3px 0 0;
22 | }
23 |
24 | .form-control.select2-container .select2-choices {
25 | border: 0 !important;
26 | border-radius: 3px;
27 | }
28 |
29 | .control-group.warning .select2-container .select2-choice,
30 | .control-group.warning .select2-container .select2-choices,
31 | .control-group.warning .select2-container-active .select2-choice,
32 | .control-group.warning .select2-container-active .select2-choices,
33 | .control-group.warning .select2-dropdown-open.select2-drop-above .select2-choice,
34 | .control-group.warning .select2-dropdown-open.select2-drop-above .select2-choices,
35 | .control-group.warning .select2-container-multi.select2-container-active .select2-choices {
36 | border: 1px solid #C09853 !important;
37 | }
38 |
39 | .control-group.warning .select2-container .select2-choice div {
40 | border-left: 1px solid #C09853 !important;
41 | background: #FCF8E3 !important;
42 | }
43 |
44 | .control-group.error .select2-container .select2-choice,
45 | .control-group.error .select2-container .select2-choices,
46 | .control-group.error .select2-container-active .select2-choice,
47 | .control-group.error .select2-container-active .select2-choices,
48 | .control-group.error .select2-dropdown-open.select2-drop-above .select2-choice,
49 | .control-group.error .select2-dropdown-open.select2-drop-above .select2-choices,
50 | .control-group.error .select2-container-multi.select2-container-active .select2-choices {
51 | border: 1px solid #B94A48 !important;
52 | }
53 |
54 | .control-group.error .select2-container .select2-choice div {
55 | border-left: 1px solid #B94A48 !important;
56 | background: #F2DEDE !important;
57 | }
58 |
59 | .control-group.info .select2-container .select2-choice,
60 | .control-group.info .select2-container .select2-choices,
61 | .control-group.info .select2-container-active .select2-choice,
62 | .control-group.info .select2-container-active .select2-choices,
63 | .control-group.info .select2-dropdown-open.select2-drop-above .select2-choice,
64 | .control-group.info .select2-dropdown-open.select2-drop-above .select2-choices,
65 | .control-group.info .select2-container-multi.select2-container-active .select2-choices {
66 | border: 1px solid #3A87AD !important;
67 | }
68 |
69 | .control-group.info .select2-container .select2-choice div {
70 | border-left: 1px solid #3A87AD !important;
71 | background: #D9EDF7 !important;
72 | }
73 |
74 | .control-group.success .select2-container .select2-choice,
75 | .control-group.success .select2-container .select2-choices,
76 | .control-group.success .select2-container-active .select2-choice,
77 | .control-group.success .select2-container-active .select2-choices,
78 | .control-group.success .select2-dropdown-open.select2-drop-above .select2-choice,
79 | .control-group.success .select2-dropdown-open.select2-drop-above .select2-choices,
80 | .control-group.success .select2-container-multi.select2-container-active .select2-choices {
81 | border: 1px solid #468847 !important;
82 | }
83 |
84 | .control-group.success .select2-container .select2-choice div {
85 | border-left: 1px solid #468847 !important;
86 | background: #DFF0D8 !important;
87 | }
88 |
--------------------------------------------------------------------------------
/static/css/style1.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin:300px;
3 |
4 | }
--------------------------------------------------------------------------------
/static/font/entypo.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/entypo.eot
--------------------------------------------------------------------------------
/static/font/entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/entypo.ttf
--------------------------------------------------------------------------------
/static/font/entypo.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/entypo.woff
--------------------------------------------------------------------------------
/static/font/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/font/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/font/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/font/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/font/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/font/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr4TRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr4TRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr5DRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr5DRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr5TRA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr5TRA.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr5jRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr5jRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr6DRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr6DRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr6TRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr6TRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr6jRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr6jRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0IIpQlx3QUlC5A4PNr6zRAW_0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0IIpQlx3QUlC5A4PNr6zRAW_0.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVYNyB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVYNyB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVZ9yB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVZ9yB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVZNyB.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVZNyB.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVZdyB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVZdyB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVa9yB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVa9yB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVaNyB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVaNyB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVadyB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVadyB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0NIpQlx3QUlC5A4PNjXhFVatyB1Wk.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0NIpQlx3QUlC5A4PNjXhFVatyB1Wk.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARBQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARBQ_m87A.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARCQ_k.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARCQ_k.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARDQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARDQ_m87A.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARGQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARGQ_m87A.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARMQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARMQ_m87A.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARNQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARNQ_m87A.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4AROQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4AROQ_m87A.woff2
--------------------------------------------------------------------------------
/static/font/o-0OIpQlx3QUlC5A4PNr4ARPQ_m87A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/font/o-0OIpQlx3QUlC5A4PNr4ARPQ_m87A.woff2
--------------------------------------------------------------------------------
/static/image/Jcrop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/Jcrop.gif
--------------------------------------------------------------------------------
/static/image/aero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/aero.png
--------------------------------------------------------------------------------
/static/image/aero1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/aero1.png
--------------------------------------------------------------------------------
/static/image/aero2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/aero2.png
--------------------------------------------------------------------------------
/static/image/aero@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/aero@2x.png
--------------------------------------------------------------------------------
/static/image/aero@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/aero@2x1.png
--------------------------------------------------------------------------------
/static/image/aero@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/aero@2x2.png
--------------------------------------------------------------------------------
/static/image/alpha-horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/alpha-horizontal.png
--------------------------------------------------------------------------------
/static/image/alpha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/alpha.png
--------------------------------------------------------------------------------
/static/image/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/blue.png
--------------------------------------------------------------------------------
/static/image/blue1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/blue1.png
--------------------------------------------------------------------------------
/static/image/blue2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/blue2.png
--------------------------------------------------------------------------------
/static/image/blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/blue@2x.png
--------------------------------------------------------------------------------
/static/image/blue@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/blue@2x1.png
--------------------------------------------------------------------------------
/static/image/blue@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/blue@2x2.png
--------------------------------------------------------------------------------
/static/image/boxed-pattern-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/boxed-pattern-3.png
--------------------------------------------------------------------------------
/static/image/drag-drop-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/drag-drop-rtl.png
--------------------------------------------------------------------------------
/static/image/drag-drop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/drag-drop.png
--------------------------------------------------------------------------------
/static/image/flat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/flat.png
--------------------------------------------------------------------------------
/static/image/flat@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/flat@2x.png
--------------------------------------------------------------------------------
/static/image/futurico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/futurico.png
--------------------------------------------------------------------------------
/static/image/futurico@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/futurico@2x.png
--------------------------------------------------------------------------------
/static/image/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/green.png
--------------------------------------------------------------------------------
/static/image/green1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/green1.png
--------------------------------------------------------------------------------
/static/image/green2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/green2.png
--------------------------------------------------------------------------------
/static/image/green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/green@2x.png
--------------------------------------------------------------------------------
/static/image/green@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/green@2x1.png
--------------------------------------------------------------------------------
/static/image/green@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/green@2x2.png
--------------------------------------------------------------------------------
/static/image/grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/grey.png
--------------------------------------------------------------------------------
/static/image/grey1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/grey1.png
--------------------------------------------------------------------------------
/static/image/grey2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/grey2.png
--------------------------------------------------------------------------------
/static/image/grey@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/grey@2x.png
--------------------------------------------------------------------------------
/static/image/grey@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/grey@2x1.png
--------------------------------------------------------------------------------
/static/image/grey@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/grey@2x2.png
--------------------------------------------------------------------------------
/static/image/hue-horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/hue-horizontal.png
--------------------------------------------------------------------------------
/static/image/hue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/hue.png
--------------------------------------------------------------------------------
/static/image/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/line.png
--------------------------------------------------------------------------------
/static/image/line@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/line@2x.png
--------------------------------------------------------------------------------
/static/image/load-node.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/load-node.gif
--------------------------------------------------------------------------------
/static/image/loader-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/loader-1.gif
--------------------------------------------------------------------------------
/static/image/loader-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/loader-2.gif
--------------------------------------------------------------------------------
/static/image/minimal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/minimal.png
--------------------------------------------------------------------------------
/static/image/minimal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/minimal@2x.png
--------------------------------------------------------------------------------
/static/image/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/minus.png
--------------------------------------------------------------------------------
/static/image/notes-lines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/notes-lines.png
--------------------------------------------------------------------------------
/static/image/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/orange.png
--------------------------------------------------------------------------------
/static/image/orange1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/orange1.png
--------------------------------------------------------------------------------
/static/image/orange2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/orange2.png
--------------------------------------------------------------------------------
/static/image/orange@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/orange@2x.png
--------------------------------------------------------------------------------
/static/image/orange@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/orange@2x1.png
--------------------------------------------------------------------------------
/static/image/orange@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/orange@2x2.png
--------------------------------------------------------------------------------
/static/image/pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/pink.png
--------------------------------------------------------------------------------
/static/image/pink1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/pink1.png
--------------------------------------------------------------------------------
/static/image/pink2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/pink2.png
--------------------------------------------------------------------------------
/static/image/pink@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/pink@2x.png
--------------------------------------------------------------------------------
/static/image/pink@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/pink@2x1.png
--------------------------------------------------------------------------------
/static/image/pink@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/pink@2x2.png
--------------------------------------------------------------------------------
/static/image/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/plus.png
--------------------------------------------------------------------------------
/static/image/polaris.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/polaris.png
--------------------------------------------------------------------------------
/static/image/polaris@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/polaris@2x.png
--------------------------------------------------------------------------------
/static/image/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/purple.png
--------------------------------------------------------------------------------
/static/image/purple1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/purple1.png
--------------------------------------------------------------------------------
/static/image/purple2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/purple2.png
--------------------------------------------------------------------------------
/static/image/purple@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/purple@2x.png
--------------------------------------------------------------------------------
/static/image/purple@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/purple@2x1.png
--------------------------------------------------------------------------------
/static/image/purple@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/purple@2x2.png
--------------------------------------------------------------------------------
/static/image/red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/red.png
--------------------------------------------------------------------------------
/static/image/red1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/red1.png
--------------------------------------------------------------------------------
/static/image/red2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/red2.png
--------------------------------------------------------------------------------
/static/image/red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/red@2x.png
--------------------------------------------------------------------------------
/static/image/red@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/red@2x1.png
--------------------------------------------------------------------------------
/static/image/red@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/red@2x2.png
--------------------------------------------------------------------------------
/static/image/saturation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/saturation.png
--------------------------------------------------------------------------------
/static/image/select2-spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/select2-spinner.gif
--------------------------------------------------------------------------------
/static/image/select2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/select2.png
--------------------------------------------------------------------------------
/static/image/select2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/select2x2.png
--------------------------------------------------------------------------------
/static/image/spritemap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/spritemap.png
--------------------------------------------------------------------------------
/static/image/spritemap@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/spritemap@2x.png
--------------------------------------------------------------------------------
/static/image/square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/square.png
--------------------------------------------------------------------------------
/static/image/square@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/square@2x.png
--------------------------------------------------------------------------------
/static/image/tree-arrow-big-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-arrow-big-rtl.png
--------------------------------------------------------------------------------
/static/image/tree-arrow-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-arrow-big.png
--------------------------------------------------------------------------------
/static/image/tree-arrow-small-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-arrow-small-rtl.png
--------------------------------------------------------------------------------
/static/image/tree-arrow-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-arrow-small.png
--------------------------------------------------------------------------------
/static/image/tree-big-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-big-rtl.png
--------------------------------------------------------------------------------
/static/image/tree-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-big.png
--------------------------------------------------------------------------------
/static/image/tree-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-branch.png
--------------------------------------------------------------------------------
/static/image/tree-check-big-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-check-big-rtl.png
--------------------------------------------------------------------------------
/static/image/tree-check-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-check-big.png
--------------------------------------------------------------------------------
/static/image/tree-check-small-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-check-small-rtl.png
--------------------------------------------------------------------------------
/static/image/tree-check-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-check-small.png
--------------------------------------------------------------------------------
/static/image/tree-small-rtl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-small-rtl.png
--------------------------------------------------------------------------------
/static/image/tree-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/tree-small.png
--------------------------------------------------------------------------------
/static/image/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/yellow.png
--------------------------------------------------------------------------------
/static/image/yellow1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/yellow1.png
--------------------------------------------------------------------------------
/static/image/yellow2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/yellow2.png
--------------------------------------------------------------------------------
/static/image/yellow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/yellow@2x.png
--------------------------------------------------------------------------------
/static/image/yellow@2x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/yellow@2x1.png
--------------------------------------------------------------------------------
/static/image/yellow@2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/image/yellow@2x2.png
--------------------------------------------------------------------------------
/static/js/gfm.js:
--------------------------------------------------------------------------------
1 | CodeMirror.defineMode("gfm", function(config, modeConfig) {
2 | var codeDepth = 0;
3 | function blankLine(state) {
4 | state.code = false;
5 | return null;
6 | }
7 | var gfmOverlay = {
8 | startState: function() {
9 | return {
10 | code: false,
11 | codeBlock: false,
12 | ateSpace: false
13 | };
14 | },
15 | copyState: function(s) {
16 | return {
17 | code: s.code,
18 | codeBlock: s.codeBlock,
19 | ateSpace: s.ateSpace
20 | };
21 | },
22 | token: function(stream, state) {
23 | // Hack to prevent formatting override inside code blocks (block and inline)
24 | if (state.codeBlock) {
25 | if (stream.match(/^```/)) {
26 | state.codeBlock = false;
27 | return null;
28 | }
29 | stream.skipToEnd();
30 | return null;
31 | }
32 | if (stream.sol()) {
33 | state.code = false;
34 | }
35 | if (stream.sol() && stream.match(/^```/)) {
36 | stream.skipToEnd();
37 | state.codeBlock = true;
38 | return null;
39 | }
40 | // If this block is changed, it may need to be updated in Markdown mode
41 | if (stream.peek() === '`') {
42 | stream.next();
43 | var before = stream.pos;
44 | stream.eatWhile('`');
45 | var difference = 1 + stream.pos - before;
46 | if (!state.code) {
47 | codeDepth = difference;
48 | state.code = true;
49 | } else {
50 | if (difference === codeDepth) { // Must be exact
51 | state.code = false;
52 | }
53 | }
54 | return null;
55 | } else if (state.code) {
56 | stream.next();
57 | return null;
58 | }
59 | // Check if space. If so, links can be formatted later on
60 | if (stream.eatSpace()) {
61 | state.ateSpace = true;
62 | return null;
63 | }
64 | if (stream.sol() || state.ateSpace) {
65 | state.ateSpace = false;
66 | if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/)) {
67 | // User/Project@SHA
68 | // User@SHA
69 | // SHA
70 | return "link";
71 | } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) {
72 | // User/Project#Num
73 | // User#Num
74 | // #Num
75 | return "link";
76 | }
77 | }
78 | if (stream.match(/^((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i) &&
79 | stream.string.slice(stream.start - 2, stream.start) != "](") {
80 | // URLs
81 | // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls
82 | // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine
83 | return "link";
84 | }
85 | stream.next();
86 | return null;
87 | },
88 | blankLine: blankLine
89 | };
90 |
91 | var markdownConfig = {
92 | underscoresBreakWords: false,
93 | taskLists: true,
94 | fencedCodeBlocks: true
95 | };
96 | for (var attr in modeConfig) {
97 | markdownConfig[attr] = modeConfig[attr];
98 | }
99 | markdownConfig.name = "markdown";
100 | CodeMirror.defineMIME("gfmBase", markdownConfig);
101 | return CodeMirror.overlayMode(CodeMirror.getMode(config, "gfmBase"), gfmOverlay);
102 | }, "markdown");
103 |
--------------------------------------------------------------------------------
/static/js/html5.min.js:
--------------------------------------------------------------------------------
1 | /** Kraken v4.0.0, by Chris Ferdinandi | http://github.com/cferdinandi/kraken | Licensed under MIT: http://gomakethings.com/mit/ */
2 | !function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=y.elements;return"string"==typeof e?e.split(" "):e}function a(e,t){var n=y.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),y.elements=n+" "+e,m(t)}function c(e){var t=E[e[p]];return t||(t={},v++,e[p]=v,E[v]=t),t}function o(e,n,r){if(n||(n=t),u)return n.createElement(e);r||(r=c(n));var a;return a=r.cache[e]?r.cache[e].cloneNode():g.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!a.canHaveChildren||f.test(e)||a.tagUrn?a:r.frag.appendChild(a)}function i(e,n){if(e||(e=t),u)return e.createDocumentFragment();n=n||c(e);for(var a=n.frag.cloneNode(),o=0,i=r(),l=i.length;l>o;o++)a.createElement(i[o]);return a}function l(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return y.shivMethods?o(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(y,t.frag)}function m(e){e||(e=t);var r=c(e);return!y.shivCSS||s||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),u||l(e,r),e}var s,u,d="3.7.2",h=e.html5||{},f=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,g=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",v=0,E={};!function(){try{var e=t.createElement("a");e.innerHTML="",s="hidden"in e,u=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){s=!0,u=!0}}();var y={elements:h.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:d,shivCSS:h.shivCSS!==!1,supportsUnknownElements:u,shivMethods:h.shivMethods!==!1,type:"default",shivDocument:m,createElement:o,createDocumentFragment:i,addElements:a};e.html5=y,m(t)}(this,document);
--------------------------------------------------------------------------------
/static/js/html5shiv.js:
--------------------------------------------------------------------------------
1 | /*
2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d= v1.2.3 http://jquery.com
10 | */
11 |
12 | (function(d,c,e){if(typeof aciPluginClass!=="undefined"){return}var a;this.aciPluginClass=function(){};aciPluginClass.extend=function(g,j){i.extend=arguments.callee;function i(){if(a){this._instance={};return this.__construct.apply(this,arguments)}}a=false;i.prototype=new this();a=true;var h=this.prototype;for(var f in g){i.prototype[f]=((typeof g[f]=="function")&&(f!="proxy"))?(function(k){return function(){var p=this._parent;this._parent=h;var n=this._super;this._super=h[k];var o=this._private;if(this._instance&&j){var m=this._instance._private;if(m[j]===e){m[j]={nameSpace:"."+j}}this._private=m[j]}var l=g[k].apply(this,arguments);this._parent=p;this._super=n;this._private=o;return l}})(f):g[f]}return i};var b=0;aciPluginClass.aciPluginUi=aciPluginClass.extend({__construct:function(k,l,i,h,j){var f="."+k;var g=l.data(f);if(g){this._instance=g._instance;return g.__request(i,h,j)}l.data(f,this);d.extend(true,this._instance,{_private:{},nameSpace:f,jQuery:l,options:d.extend(true,{},d.fn[k].defaults,(typeof i=="object")?i:{}),index:b++,wasInit:false});this.__extend();return this.__request(i,h,j)},__extend:function(){},__request:function(g,f,h){if((g===e)||(typeof g=="object")){if(this._instance.options.autoInit){this.init()}}else{if(typeof g=="string"){switch(g){case"init":this.init();break;case"api":return{object:this};case"options":if(f===e){return{object:this.options()}}else{if(typeof f=="string"){return{object:this.options(f)}}else{this.options(f)}}break;case"option":this.option(f,h);break;case"destroy":this.destroy();break}}}return this._instance.jQuery},proxy:function(j,h){var m=c.Array.prototype.slice;var f=m.call(arguments,2);var i=this,g=i._parent,l=i._super,k=i._private;return function(){i._parent=g;i._super=l;i._private=k;return j.apply(i,h?f.concat([this],m.call(arguments)):f.concat(m.call(arguments)))}},init:function(){if(!this._instance.wasInit){this._instance.wasInit=true;return true}return false},wasInit:function(){return this._instance.wasInit},__parent:function(h,f,l){var m=f.split(".");if(m.length>1){var j=h,k;for(var g in m){k=j;j=j[m[g]]}l.name=m[g];return k}l.name=f;return h},options:function(f){if(f){var i={name:null};var h;if(typeof f=="string"){h=this.__parent(this._instance.options,f,i);return h[i.name]}else{for(var g in f){h=this.__parent(this._instance.options,g,i);h[i.name]=f[g]}}}else{return this._instance.options}},option:function(g,i){var h={name:null};var f=this.__parent(this._instance.options,g,h);f[h.name]=i},destroy:function(){if(this._instance.wasInit){this._instance.wasInit=false;this._instance.jQuery.removeData(this._instance.nameSpace);return true}return false}});aciPluginClass.plugins={};aciPluginClass.publish=function(f,g){d.fn[f]=function(j,m,n){var h=null;for(var l=0,k=this.length;l").css({height:b,width:a}).addClass("peity").data("peity",this),this.canvas=d=c[0],this.context=d.getContext("2d"),this.$el.hide().after(d));d.height=c.height()*m;d.width=c.width()*m;return d};j.values=function(){return h.map(this.$el.text().split(this.opts.delimiter),
9 | function(a){return parseFloat(a)})};i.defaults={};i.graphers={};i.register=function(a,b,d){this.defaults[a]=b;this.graphers[a]=d};i.register("pie",{colours:["#ff9900","#fff4dd","#ffc66e"],delimiter:null,diameter:16},function(a){if(!a.delimiter){var b=this.$el.text().match(/[^0-9\.]/);a.delimiter=b?b[0]:","}b=this.values();if("/"==a.delimiter)var d=b[0],b=[d,b[1]-d];for(var c=0,d=b.length,f=0;c 0
19 | });
20 |
21 | // Mail Container Height fit with the document
22 | if(neonCalendar.isPresent)
23 | {
24 | neonCalendar.$sidebar = neonCalendar.$container.find('.calendar-sidebar');
25 | neonCalendar.$body = neonCalendar.$container.find('.calendar-body');
26 |
27 |
28 | // Checkboxes
29 | var $cb = neonCalendar.$body.find('table thead input[type="checkbox"], table tfoot input[type="checkbox"]');
30 |
31 | $cb.on('click', function()
32 | {
33 | $cb.attr('checked', this.checked).trigger('change');
34 |
35 | calendar_toggle_checkbox_status(this.checked);
36 | });
37 |
38 | // Highlight
39 | neonCalendar.$body.find('table tbody input[type="checkbox"]').on('change', function()
40 | {
41 | $(this).closest('tr')[this.checked ? 'addClass' : 'removeClass']('highlight');
42 | });
43 |
44 |
45 | // Setup Calendar
46 | if($.isFunction($.fn.fullCalendar))
47 | {
48 | var calendar = $('#calendar');
49 |
50 | calendar.fullCalendar({
51 | header: {
52 | left: 'title',
53 | right: 'month,agendaWeek,agendaDay today prev,next'
54 | },
55 |
56 | //defaultView: 'basicWeek',
57 |
58 | editable: true,
59 | firstDay: 1,
60 | height: 600,
61 | droppable: true,
62 | drop: function(date, allDay) {
63 |
64 | var $this = $(this),
65 | eventObject = {
66 | title: $this.text(),
67 | start: date,
68 | allDay: allDay,
69 | className: $this.data('event-class')
70 | };
71 |
72 | calendar.fullCalendar('renderEvent', eventObject, true);
73 |
74 | $this.remove();
75 | }
76 | });
77 |
78 | $("#draggable_events li a").draggable({
79 | zIndex: 999,
80 | revert: true,
81 | revertDuration: 0
82 | }).on('click', function()
83 | {
84 | return false;
85 | });
86 | }
87 | else
88 | {
89 | alert("Please include full-calendar script!");
90 | }
91 |
92 |
93 | $("body").on('submit', '#add_event_form', function(ev)
94 | {
95 | ev.preventDefault();
96 |
97 | var text = $("#add_event_form input");
98 |
99 | if(text.val().length == 0)
100 | return false;
101 |
102 | var classes = ['', 'color-green', 'color-blue', 'color-orange', 'color-primary', ''],
103 | _class = classes[ Math.floor(classes.length * Math.random()) ],
104 | $event = $('');
105 |
106 | $event.find('a').text(text.val()).addClass(_class).attr('data-event-class', _class);
107 |
108 | $event.appendTo($("#draggable_events"));
109 |
110 | $("#draggable_events li a").draggable({
111 | zIndex: 999,
112 | revert: true,
113 | revertDuration: 0
114 | }).on('click', function()
115 | {
116 | return false;
117 | });
118 |
119 | fit_calendar_container_height();
120 |
121 | $event.hide().slideDown('fast');
122 | text.val('');
123 |
124 | return false;
125 | });
126 | }
127 | });
128 |
129 | })(jQuery, window);
130 |
131 |
132 | function fit_calendar_container_height()
133 | {
134 | if(neonCalendar.isPresent)
135 | {
136 | if(neonCalendar.$sidebar.height() < neonCalendar.$body.height())
137 | {
138 | neonCalendar.$sidebar.height( neonCalendar.$body.height() );
139 | }
140 | else
141 | {
142 | var old_height = neonCalendar.$sidebar.height();
143 |
144 | neonCalendar.$sidebar.height('');
145 |
146 | if(neonCalendar.$sidebar.height() < neonCalendar.$body.height())
147 | {
148 | neonCalendar.$sidebar.height(old_height);
149 | }
150 | }
151 | }
152 | }
153 |
154 | function reset_calendar_container_height()
155 | {
156 | if(neonCalendar.isPresent)
157 | {
158 | neonCalendar.$sidebar.height('auto');
159 | }
160 | }
161 |
162 | function calendar_toggle_checkbox_status(checked)
163 | {
164 | neonCalendar.$body.find('table tbody input[type="checkbox"]' + (checked ? '' : ':checked')).attr('checked', ! checked).click();
165 | }
--------------------------------------------------------------------------------
/static/js/neon-demo.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Neon Demo Scripts (Demo Theme Only)
3 | *
4 | * Developed by Arlind Nushi - www.laborator.co
5 | */
6 |
7 | if(typeof Dropzone != 'undefined')
8 | {
9 | Dropzone.autoDiscover = false;
10 | }
11 |
12 | ;(function($, window, undefined)
13 | {
14 | "use strict";
15 |
16 | $(document).ready(function()
17 | {
18 |
19 | // Dropzone Example
20 | if(typeof Dropzone != 'undefined')
21 | {
22 | if($("#dropzone_example").length)
23 | {
24 | var dz = new Dropzone("#dropzone_example"),
25 | dze_info = $("#dze_info"),
26 | status = {uploaded: 0, errors: 0};
27 |
28 | var $f = $(' | | | |
');
29 |
30 | dz.on("success", function(file) {
31 |
32 | var _$f = $f.clone();
33 |
34 | dze_info.removeClass('hidden');
35 |
36 | _$f.addClass('success');
37 |
38 | _$f.find('.name').html(file.name);
39 | _$f.find('.size').html(parseInt(file.size / 1024, 10) + ' KB');
40 | _$f.find('.type').html(file.type);
41 | _$f.find('.status').html('Uploaded ');
42 |
43 | dze_info.find('tbody').append( _$f );
44 |
45 | status.uploaded++;
46 |
47 | dze_info.find('tfoot td').html('' + status.uploaded + ' uploaded ' + status.errors + ' not uploaded');
48 |
49 | })
50 | .on('error', function(file)
51 | {
52 | var _$f = $f.clone();
53 |
54 | dze_info.removeClass('hidden');
55 |
56 | _$f.addClass('danger');
57 |
58 | _$f.find('.name').html(file.name);
59 | _$f.find('.size').html(parseInt(file.size / 1024, 10) + ' KB');
60 | _$f.find('.type').html(file.type);
61 | _$f.find('.status').html('Uploaded ');
62 |
63 | dze_info.find('tbody').append( _$f );
64 |
65 | status.errors++;
66 |
67 | dze_info.find('tfoot td').html('' + status.uploaded + ' uploaded ' + status.errors + ' not uploaded');
68 | });
69 | }
70 |
71 | }
72 | });
73 |
74 | })(jQuery, window);
75 |
--------------------------------------------------------------------------------
/static/js/neon-mail.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Neon Mail Script
3 | *
4 | * Developed by Arlind Nushi - www.laborator.co
5 | */
6 |
7 | var neonMail = neonMail || {};
8 |
9 | ;(function($, window, undefined)
10 | {
11 | "use strict";
12 |
13 | $(document).ready(function()
14 | {
15 | neonMail.$container = $(".mail-env");
16 |
17 | $.extend(neonMail, {
18 | isPresent: neonMail.$container.length > 0
19 | });
20 |
21 | // Mail Container Height fit with the document
22 | if(neonMail.isPresent)
23 | {
24 | neonMail.$sidebar = neonMail.$container.find('.mail-sidebar');
25 | neonMail.$body = neonMail.$container.find('.mail-body');
26 |
27 |
28 | // Checkboxes
29 | var $cb = neonMail.$body.find('table thead input[type="checkbox"], table tfoot input[type="checkbox"]');
30 |
31 | $cb.on('click', function()
32 | {
33 | $cb.attr('checked', this.checked).trigger('change');
34 |
35 | mail_toggle_checkbox_status(this.checked);
36 | });
37 |
38 | // Highlight
39 | neonMail.$body.find('table tbody input[type="checkbox"]').on('change', function()
40 | {
41 | $(this).closest('tr')[this.checked ? 'addClass' : 'removeClass']('highlight');
42 | });
43 | }
44 | });
45 |
46 | })(jQuery, window);
47 |
48 |
49 | function fit_mail_container_height()
50 | {
51 | if(neonMail.isPresent)
52 | {
53 | if(neonMail.$sidebar.height() < neonMail.$body.height())
54 | {
55 | neonMail.$sidebar.height( neonMail.$body.height() );
56 | }
57 | else
58 | {
59 | var old_height = neonMail.$sidebar.height();
60 |
61 | neonMail.$sidebar.height('');
62 |
63 | if(neonMail.$sidebar.height() < neonMail.$body.height())
64 | {
65 | neonMail.$sidebar.height(old_height);
66 | }
67 | }
68 | }
69 | }
70 |
71 | function reset_mail_container_height()
72 | {
73 | if(neonMail.isPresent)
74 | {
75 | neonMail.$sidebar.height('auto');
76 | }
77 | }
78 |
79 | function mail_toggle_checkbox_status(checked)
80 | {
81 | neonMail.$body.find('table tbody input[type="checkbox"]' + (checked ? '' : ':checked')).attr('checked', ! checked).click();
82 | }
--------------------------------------------------------------------------------
/static/js/overlay.js:
--------------------------------------------------------------------------------
1 | // Utility function that allows modes to be combined. The mode given
2 | // as the base argument takes care of most of the normal mode
3 | // functionality, but a second (typically simple) mode is used, which
4 | // can override the style of text. Both modes get to parse all of the
5 | // text, but when both assign a non-null style to a piece of code, the
6 | // overlay wins, unless the combine argument was true, in which case
7 | // the styles are combined.
8 |
9 | // overlayParser is the old, deprecated name
10 | CodeMirror.overlayMode = CodeMirror.overlayParser = function(base, overlay, combine) {
11 | return {
12 | startState: function() {
13 | return {
14 | base: CodeMirror.startState(base),
15 | overlay: CodeMirror.startState(overlay),
16 | basePos: 0, baseCur: null,
17 | overlayPos: 0, overlayCur: null
18 | };
19 | },
20 | copyState: function(state) {
21 | return {
22 | base: CodeMirror.copyState(base, state.base),
23 | overlay: CodeMirror.copyState(overlay, state.overlay),
24 | basePos: state.basePos, baseCur: null,
25 | overlayPos: state.overlayPos, overlayCur: null
26 | };
27 | },
28 |
29 | token: function(stream, state) {
30 | if (stream.start == state.basePos) {
31 | state.baseCur = base.token(stream, state.base);
32 | state.basePos = stream.pos;
33 | }
34 | if (stream.start == state.overlayPos) {
35 | stream.pos = stream.start;
36 | state.overlayCur = overlay.token(stream, state.overlay);
37 | state.overlayPos = stream.pos;
38 | }
39 | stream.pos = Math.min(state.basePos, state.overlayPos);
40 | if (stream.eol()) state.basePos = state.overlayPos = 0;
41 |
42 | if (state.overlayCur == null) return state.baseCur;
43 | if (state.baseCur != null && combine) return state.baseCur + " " + state.overlayCur;
44 | else return state.overlayCur;
45 | },
46 |
47 | indent: base.indent && function(state, textAfter) {
48 | return base.indent(state.base, textAfter);
49 | },
50 | electricChars: base.electricChars,
51 |
52 | innerMode: function(state) { return {state: state.base, mode: base}; },
53 |
54 | blankLine: function(state) {
55 | if (base.blankLine) base.blankLine(state.base);
56 | if (overlay.blankLine) overlay.blankLine(state.overlay);
57 | }
58 | };
59 | };
60 |
--------------------------------------------------------------------------------
/static/js/resizeable.js:
--------------------------------------------------------------------------------
1 | /*
2 | This function will be called in the event when browser breakpoint changes
3 | */
4 |
5 | var public_vars = public_vars || {};
6 |
7 | jQuery.extend(public_vars, {
8 |
9 | breakpoints: {
10 | largescreen: [991, -1],
11 | tabletscreen: [768, 990],
12 | devicescreen: [420, 767],
13 | sdevicescreen: [0, 419]
14 | },
15 |
16 | lastBreakpoint: null
17 | });
18 |
19 |
20 | /* Main Function that will be called each time when the screen breakpoint changes */
21 | function resizable(breakpoint)
22 | {
23 | var sb_with_animation;
24 |
25 |
26 | // Large Screen Specific Script
27 | if(is('largescreen'))
28 | {
29 | sb_with_animation = public_vars.$sidebarMenu.find(".sidebar-collapse-icon").hasClass('with-animation') || public_vars.$sidebarMenu.hasClass('with-animation');
30 |
31 | if(public_vars.$sidebarMenu.data('initial-state') == 'open')
32 | {
33 | show_sidebar_menu(sb_with_animation);
34 | }
35 | else
36 | {
37 | hide_sidebar_menu(sb_with_animation);
38 | }
39 | }
40 |
41 |
42 | // Tablet or larger screen
43 | if(ismdxl())
44 | {
45 | public_vars.$mainMenu.attr('style', '');
46 | }
47 |
48 |
49 | // Tablet Screen Specific Script
50 | if(is('tabletscreen'))
51 | {
52 | sb_with_animation = public_vars.$sidebarMenu.find(".sidebar-collapse-icon").hasClass('with-animation') || public_vars.$sidebarMenu.hasClass('with-animation');
53 |
54 | hide_sidebar_menu(sb_with_animation);
55 | }
56 |
57 |
58 | // Tablet Screen Specific Script
59 | if(isxs())
60 | {
61 | public_vars.$pageContainer.removeClass('sidebar-collapsed');
62 | }
63 |
64 |
65 | // Trigger Event
66 | jQuery(window).trigger('neon.resize');
67 |
68 |
69 | // Fit main content height
70 | fit_main_content_height();
71 | }
72 |
73 |
74 |
75 | /* Functions */
76 |
77 | // Get current breakpoint
78 | function get_current_breakpoint()
79 | {
80 | var width = jQuery(window).width(),
81 | breakpoints = public_vars.breakpoints;
82 |
83 | for(var breakpont_label in breakpoints)
84 | {
85 | var bp_arr = breakpoints[breakpont_label],
86 | min = bp_arr[0],
87 | max = bp_arr[1];
88 |
89 | if(max == -1)
90 | max = width;
91 |
92 | if(min <= width && max >= width)
93 | {
94 | return breakpont_label;
95 | }
96 | }
97 |
98 | return null;
99 | }
100 |
101 |
102 | // Check current screen breakpoint
103 | function is(screen_label)
104 | {
105 | return get_current_breakpoint() == screen_label;
106 | }
107 |
108 |
109 | // Is xs device
110 | function isxs()
111 | {
112 | return is('devicescreen') || is('sdevicescreen');
113 | }
114 |
115 | // Is md or xl
116 | function ismdxl()
117 | {
118 | return is('tabletscreen') || is('largescreen');
119 | }
120 |
121 |
122 | // Trigger Resizable Function
123 | function trigger_resizable()
124 | {
125 | if(public_vars.lastBreakpoint != get_current_breakpoint())
126 | {
127 | public_vars.lastBreakpoint = get_current_breakpoint();
128 | resizable(public_vars.lastBreakpoint);
129 | }
130 | }
--------------------------------------------------------------------------------
/static/js/responsive-tables.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 | var switched = false;
3 | var updateTables = function() {
4 | if (($(window).width() < 767) && !switched ){
5 | switched = true;
6 | $("table.responsive").each(function(i, element) {
7 | splitTable($(element));
8 | });
9 | return true;
10 | }
11 | else if (switched && ($(window).width() > 767)) {
12 | switched = false;
13 | $("table.responsive").each(function(i, element) {
14 | unsplitTable($(element));
15 | });
16 | }
17 | };
18 |
19 | $(window).load(updateTables);
20 | $(window).on("redraw",function(){switched=false;updateTables();}); // An event to listen for
21 | $(window).on("resize", updateTables);
22 |
23 |
24 | function splitTable(original)
25 | {
26 | original.wrap("");
27 |
28 | var copy = original.clone();
29 | copy.find("td:not(:first-child), th:not(:first-child)").css("display", "none");
30 | copy.removeClass("responsive");
31 |
32 | original.closest(".table-wrapper").append(copy);
33 | copy.wrap("");
34 | original.wrap("");
35 |
36 | setCellHeights(original, copy);
37 | }
38 |
39 | function unsplitTable(original) {
40 | original.closest(".table-wrapper").find(".pinned").remove();
41 | original.unwrap();
42 | original.unwrap();
43 | }
44 |
45 | function setCellHeights(original, copy) {
46 | var tr = original.find('tr'),
47 | tr_copy = copy.find('tr'),
48 | heights = [];
49 |
50 | tr.each(function (index) {
51 | var self = $(this),
52 | tx = self.find('th, td');
53 |
54 | tx.each(function () {
55 | var height = $(this).outerHeight(true);
56 | heights[index] = heights[index] || 0;
57 | if (height > heights[index]) heights[index] = height;
58 | });
59 |
60 | });
61 |
62 | tr_copy.each(function (index) {
63 | $(this).height(heights[index]);
64 | });
65 | }
66 |
67 | });
68 |
--------------------------------------------------------------------------------
/static/js/script.js:
--------------------------------------------------------------------------------
1 | // Parallax Code
2 | var scene = document.getElementById('scene');
3 | var parallax = new Parallax(scene);
--------------------------------------------------------------------------------
/static/js/script1.js:
--------------------------------------------------------------------------------
1 | var c = document.getElementById("canvas-club");
2 | var ctx = c.getContext("2d");
3 | var w = c.width = window.innerWidth;
4 | var h = c.height = window.innerHeight;
5 | var clearColor = 'rgba(0, 0, 0, .1)';
6 | var max = 30;
7 | var drops = [];
8 |
9 | function random(min, max) {
10 | return Math.random() * (max - min) + min;
11 | }
12 |
13 | function O() {}
14 |
15 | O.prototype = {
16 | init: function() {
17 | this.x = random(0, w);
18 | this.y = 0;
19 | this.color = 'hsl(180, 100%, 50%)';
20 | this.w = 2;
21 | this.h = 1;
22 | this.vy = random(4, 5);
23 | this.vw = 3;
24 | this.vh = 1;
25 | this.size = 2;
26 | this.hit = random(h * .8, h * .9);
27 | this.a = 1;
28 | this.va = .96;
29 | },
30 | draw: function() {
31 | if (this.y > this.hit) {
32 | ctx.beginPath();
33 | ctx.moveTo(this.x, this.y - this.h / 2);
34 |
35 | ctx.bezierCurveTo(
36 | this.x + this.w / 2, this.y - this.h / 2,
37 | this.x + this.w / 2, this.y + this.h / 2,
38 | this.x, this.y + this.h / 2);
39 |
40 | ctx.bezierCurveTo(
41 | this.x - this.w / 2, this.y + this.h / 2,
42 | this.x - this.w / 2, this.y - this.h / 2,
43 | this.x, this.y - this.h / 2);
44 |
45 | ctx.strokeStyle = 'hsla(180, 100%, 50%, '+this.a+')';
46 | ctx.stroke();
47 | ctx.closePath();
48 |
49 | } else {
50 | ctx.fillStyle = this.color;
51 | ctx.fillRect(this.x, this.y, this.size, this.size * 5);
52 | }
53 | this.update();
54 | },
55 | update: function() {
56 | if(this.y < this.hit){
57 | this.y += this.vy;
58 | } else {
59 | if(this.a > .03){
60 | this.w += this.vw;
61 | this.h += this.vh;
62 | if(this.w > 100){
63 | this.a *= this.va;
64 | this.vw *= .98;
65 | this.vh *= .98;
66 | }
67 | } else {
68 | this.init();
69 | }
70 | }
71 |
72 | }
73 | }
74 |
75 | function resize(){
76 | w = c.width = window.innerWidth;
77 | h = c.height = window.innerHeight;
78 | }
79 |
80 | function setup(){
81 | for(var i = 0; i < max; i++){
82 | (function(j){
83 | setTimeout(function(){
84 | var o = new O();
85 | o.init();
86 | drops.push(o);
87 | }, j * 200)
88 | }(i));
89 | }
90 | }
91 |
92 |
93 | function anim() {
94 | ctx.fillStyle = clearColor;
95 | ctx.fillRect(0,0,w,h);
96 | for(var i in drops){
97 | drops[i].draw();
98 | }
99 | requestAnimationFrame(anim);
100 | }
101 |
102 |
103 | window.addEventListener("resize", resize);
104 |
105 | setup();
106 | anim();
--------------------------------------------------------------------------------
/static/picture/200x150.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/200x150.jpg
--------------------------------------------------------------------------------
/static/picture/320x160.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/320x160.jpg
--------------------------------------------------------------------------------
/static/picture/album-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/album-image.jpg
--------------------------------------------------------------------------------
/static/picture/album-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/album-thumb.jpg
--------------------------------------------------------------------------------
/static/picture/attach-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/attach-1.png
--------------------------------------------------------------------------------
/static/picture/attach-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/attach-2.png
--------------------------------------------------------------------------------
/static/picture/burjkhalifa.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/burjkhalifa.jpg
--------------------------------------------------------------------------------
/static/picture/crop-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/crop-1.jpg
--------------------------------------------------------------------------------
/static/picture/crop-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/crop-2.jpg
--------------------------------------------------------------------------------
/static/picture/crop-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/crop-3.jpg
--------------------------------------------------------------------------------
/static/picture/crop-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/crop-4.jpg
--------------------------------------------------------------------------------
/static/picture/flag-al.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/flag-al.png
--------------------------------------------------------------------------------
/static/picture/flag-de.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/flag-de.png
--------------------------------------------------------------------------------
/static/picture/flag-es.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/flag-es.png
--------------------------------------------------------------------------------
/static/picture/flag-fr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/flag-fr.png
--------------------------------------------------------------------------------
/static/picture/flag-uk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/flag-uk.png
--------------------------------------------------------------------------------
/static/picture/highlights-1-skins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-1-skins.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-0-bootstrap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-0-bootstrap.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-1-icheck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-1-icheck.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-10-rtl-support.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-10-rtl-support.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-2-new-editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-2-new-editor.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-3-language-switcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-3-language-switcher.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-4-register-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-4-register-form.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-5-right-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-5-right-menu.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-6-login-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-6-login-form.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-7-left-chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-7-left-chat.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-8-spinners.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-8-spinners.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-9-search-results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-9-search-results.png
--------------------------------------------------------------------------------
/static/picture/highlights-2-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-2-profile.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-1-comments.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-1-comments.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-2-members.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-2-members.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-2-newpost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-2-newpost.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-3-nestable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-3-nestable.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-4-page-loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-4-page-loading.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-5-settings-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-5-settings-page.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-6-treeview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-6-treeview.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-dashboard.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-front-end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-front-end.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-notes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-notes.png
--------------------------------------------------------------------------------
/static/picture/highlights-3-photoshop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-3-photoshop.png
--------------------------------------------------------------------------------
/static/picture/highlights-4-1-boxed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-4-1-boxed.png
--------------------------------------------------------------------------------
/static/picture/highlights-4-datatables.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-4-datatables.png
--------------------------------------------------------------------------------
/static/picture/highlights-5-profile_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-5-profile_left.png
--------------------------------------------------------------------------------
/static/picture/highlights-6-crop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-6-crop.png
--------------------------------------------------------------------------------
/static/picture/highlights-7-gallery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-7-gallery.png
--------------------------------------------------------------------------------
/static/picture/highlights-8-timeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/highlights-8-timeline.png
--------------------------------------------------------------------------------
/static/picture/laborator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/laborator.png
--------------------------------------------------------------------------------
/static/picture/lockscreen-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/lockscreen-user.png
--------------------------------------------------------------------------------
/static/picture/logo-light@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/logo-light@2x.png
--------------------------------------------------------------------------------
/static/picture/logo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/logo@2x.png
--------------------------------------------------------------------------------
/static/picture/member.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/member.jpg
--------------------------------------------------------------------------------
/static/picture/profile-picture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/profile-picture.png
--------------------------------------------------------------------------------
/static/picture/sample-al.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/sample-al.png
--------------------------------------------------------------------------------
/static/picture/sample-au.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/sample-au.png
--------------------------------------------------------------------------------
/static/picture/sample-crop-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/sample-crop-2.png
--------------------------------------------------------------------------------
/static/picture/sample-crop.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/sample-crop.jpg
--------------------------------------------------------------------------------
/static/picture/sample-it.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/sample-it.png
--------------------------------------------------------------------------------
/static/picture/thumb-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/thumb-1.png
--------------------------------------------------------------------------------
/static/picture/thumb-1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/thumb-1@2x.png
--------------------------------------------------------------------------------
/static/picture/thumb-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/thumb-2.png
--------------------------------------------------------------------------------
/static/picture/thumb-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/thumb-3.png
--------------------------------------------------------------------------------
/static/picture/thumb-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/thumb-4.png
--------------------------------------------------------------------------------
/static/picture/timeline-image-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/timeline-image-1.png
--------------------------------------------------------------------------------
/static/picture/timeline-image-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/timeline-image-2.png
--------------------------------------------------------------------------------
/static/picture/timeline-image-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/timeline-image-3.png
--------------------------------------------------------------------------------
/static/picture/timeline-image-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/timeline-image-4.png
--------------------------------------------------------------------------------
/static/picture/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/picture/title.png
--------------------------------------------------------------------------------
/static/tag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/tag.jpg
--------------------------------------------------------------------------------
/static/timesalary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/timesalary.png
--------------------------------------------------------------------------------
/static/title.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/title.jpg
--------------------------------------------------------------------------------
/static/yuce.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YPYT1/Boss_direct_hire/6b024817b1f4224b55e16e39954245ef6a934c50/static/yuce.jpg
--------------------------------------------------------------------------------
/templates/error.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 404 Page
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
Error
45 |
Error
46 |
47 |
48 |
49 |
50 |
51 | {{ errorMsg }}
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
68 |
69 |
--------------------------------------------------------------------------------
/templates/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 登录
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
38 |
39 |
40 |
41 |
50 |
51 |
52 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
--------------------------------------------------------------------------------
/templates/register.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 注册
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
47 |
48 |
51 |
52 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/word_cloud_picture.py:
--------------------------------------------------------------------------------
1 | import jieba # 分词
2 | from matplotlib import pylab as plt # 绘图,数据可视化
3 | from wordcloud import WordCloud # 词云
4 | from PIL import Image # 图片处理
5 | import numpy as np # 矩阵运算
6 | from pymysql import *
7 | import json
8 | # wordCloud
9 |
10 | # 所有词
11 | def get_img(field,targetImgSrc,resImgSrc):
12 | con = connect(host='localhost', user='root', password='root', database='boss', port=3306, charset='utf8mb4')
13 | cursor = con.cursor()
14 | sql = f"select {field} from jobinfo"
15 | cursor.execute(sql)
16 | data = cursor.fetchall()
17 | text = ''
18 | for i,item in enumerate(data):
19 | text += item[0]
20 | cursor.close()
21 | con.close()
22 |
23 | # 分词
24 | cut = jieba.cut(text)
25 | string = ' '.join(cut)
26 | print(string)
27 |
28 | # 图片
29 | img = Image.open(targetImgSrc) # 打开遮罩图片
30 | img_arr = np.array(img) # 将图片转化为列表
31 | wc = WordCloud(
32 | background_color='white',
33 | mask=img_arr,
34 | font_path='STHUPO.TTF'
35 | )
36 | wc.generate_from_text(string)
37 |
38 | # 绘制图片
39 | fig = plt.figure(1)
40 | plt.imshow(wc)
41 | plt.axis('off') # 不显示坐标轴
42 |
43 | # 显示生成的词语图片
44 | # plt.show()
45 |
46 | # 输入词语图片到文件
47 | plt.savefig(resImgSrc, dpi=500)
48 |
49 | def get_addressCompanyTags_img(targetImgSrc,resImgSrc,addrress):
50 | con = connect(host='localhost', user='root', password='root', database='boss', port=3306, charset='utf8mb4')
51 | cursor = con.cursor()
52 | sql = f"select companyTags from jobinfo where address = {addrress}"
53 | cursor.execute(sql)
54 | data = cursor.fetchall()
55 | text = ''
56 | for i, item in enumerate(data):
57 | tags = json.loads(item[0])
58 | for j in tags:
59 | text += j
60 | cursor.close()
61 | con.close()
62 |
63 | # 分词
64 | cut = jieba.cut(text)
65 | string = ' '.join(cut)
66 | print(string)
67 |
68 | # 图片
69 | img = Image.open(targetImgSrc) # 打开遮罩图片
70 | img_arr = np.array(img) # 将图片转化为列表
71 | wc = WordCloud(
72 | background_color='white',
73 | mask=img_arr,
74 | font_path='STHUPO.TTF'
75 | )
76 | wc.generate_from_text(string)
77 |
78 | # 绘制图片
79 | fig = plt.figure(1)
80 | plt.imshow(wc)
81 | plt.axis('off') # 不显示坐标轴
82 |
83 | # 显示生成的词语图片
84 | # plt.show()
85 |
86 | # 输入词语图片到文件
87 | plt.savefig(resImgSrc, dpi=500)
88 |
89 | # get_img('companyTitle',r'.\static\2.jpg',r'.\static\companyTitle.jpg')
90 | # get_img('summary',r'.\static\2.jpg',r'.\static\summary_cloud.jpg')
91 | # get_img('casts',r'.\static\3.jpg',r'.\static\casts_cloud.jpg')
92 |
93 |
--------------------------------------------------------------------------------