Scezui commited on
Commit
b1bae0d
·
0 Parent(s):
.DS_Store ADDED
Binary file (6.15 kB). View file
 
.gitattributes ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ .gif filter=lfs diff=lfs merge=lfs -text
37
+ .pkl filter=lfs diff=lfs merge=lfs -text
38
+ .jpg filter=lfs diff=lfs merge=lfs -text
39
+ .mp4 filter=lfs diff=lfs merge=lfs -text
40
+
41
+ *.7z filter=lfs diff=lfs merge=lfs -text
42
+ *.arrow filter=lfs diff=lfs merge=lfs -text
43
+ *.bin filter=lfs diff=lfs merge=lfs -text
44
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
45
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
46
+ *.ftz filter=lfs diff=lfs merge=lfs -text
47
+ *.gz filter=lfs diff=lfs merge=lfs -text
48
+ *.h5 filter=lfs diff=lfs merge=lfs -text
49
+ *.joblib filter=lfs diff=lfs merge=lfs -text
50
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
51
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
52
+ *.model filter=lfs diff=lfs merge=lfs -text
53
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
54
+ *.npy filter=lfs diff=lfs merge=lfs -text
55
+ *.npz filter=lfs diff=lfs merge=lfs -text
56
+ *.onnx filter=lfs diff=lfs merge=lfs -text
57
+ *.ot filter=lfs diff=lfs merge=lfs -text
58
+ *.parquet filter=lfs diff=lfs merge=lfs -text
59
+ *.pb filter=lfs diff=lfs merge=lfs -text
60
+ *.pickle filter=lfs diff=lfs merge=lfs -text
61
+ *.pkl filter=lfs diff=lfs merge=lfs -text
62
+ *.pt filter=lfs diff=lfs merge=lfs -text
63
+ *.pth filter=lfs diff=lfs merge=lfs -text
64
+ *.rar filter=lfs diff=lfs merge=lfs -text
65
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
66
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
67
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
68
+ *.tar filter=lfs diff=lfs merge=lfs -text
69
+ *.tflite filter=lfs diff=lfs merge=lfs -text
70
+ *.tgz filter=lfs diff=lfs merge=lfs -text
71
+ *.wasm filter=lfs diff=lfs merge=lfs -text
72
+ *.xz filter=lfs diff=lfs merge=lfs -text
73
+ *.zip filter=lfs diff=lfs merge=lfs -text
74
+ *.zst filter=lfs diff=lfs merge=lfs -text
75
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
Models/Clean_Job_data.csv ADDED
@@ -0,0 +1,285 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Experience,Job_Pos,New Salary
2
+ 1.0,1,25000.0
3
+ 1.5,1,30000.0
4
+ 1.5,1,49804.27627052736
5
+ 1.5,1,60000.0
6
+ 1.5,1,40500.0
7
+ 1.5,1,40000.0
8
+ 1.8,1,32500.0
9
+ 1.5,1,34500.0
10
+ 1.8,1,36500.0
11
+ 1.5,1,38500.0
12
+ 1.8,1,49804.27627052736
13
+ 1.0,1,42500.0
14
+ 3.0,1,35000.0
15
+ 1.0,1,30000.0
16
+ 1.0,1,46500.0
17
+ 5.0,1,48500.0
18
+ 1.5,1,50500.0
19
+ 2.5,1,52500.0
20
+ 1.5,1,49804.27627052736
21
+ 1.0,1,56500.0
22
+ 1.0,1,58500.0
23
+ 2.5,1,60500.0
24
+ 1.8,1,49804.27627052736
25
+ 1.0,1,64500.0
26
+ 2.0,1,49804.27627052736
27
+ 1.8,1,62500.0
28
+ 1.5,1,49804.27627052736
29
+ 2.0,1,54500.0
30
+ 1.8,1,27000.0
31
+ 2.5,1,49804.27627052736
32
+ 1.5,1,32500.0
33
+ 1.8,1,40000.0
34
+ 1.5,1,49804.27627052736
35
+ 2.0,1,30000.0
36
+ 1.5,1,40500.0
37
+ 1.5,1,36500.0
38
+ 1.8,1,38500.0
39
+ 1.5,1,42500.0
40
+ 1.8,1,49804.27627052736
41
+ 1.5,1,55000.0
42
+ 1.8,1,40000.0
43
+ 1.5,1,42500.0
44
+ 1.5,1,49804.27627052736
45
+ 2.0,1,36500.0
46
+ 1.5,1,38500.0
47
+ 2.0,1,49804.27627052736
48
+ 1.8,1,49804.27627052736
49
+ 1.5,1,35000.0
50
+ 2.0,1,49804.27627052736
51
+ 1.8,1,42500.0
52
+ 1.0,1,49804.27627052736
53
+ 1.8,1,49804.27627052736
54
+ 1.5,1,45000.0
55
+ 1.5,1,49804.27627052736
56
+ 1.8,1,49804.27627052736
57
+ 1.0,1,49804.27627052736
58
+ 2.0,1,49804.27627052736
59
+ 1.8,1,70000.0
60
+ 2.0,1,49804.27627052736
61
+ 2.0,1,45000.0
62
+ 1.8,1,49804.27627052736
63
+ 1.0,1,42000.0
64
+ 1.8,1,49804.27627052736
65
+ 3.0,1,70500.0
66
+ 2.0,1,49804.27627052736
67
+ 2.0,1,49804.27627052736
68
+ 3.0,1,80000.0
69
+ 1.0,1,49804.27627052736
70
+ 2.0,1,49804.27627052736
71
+ 2.0,1,75000.0
72
+ 1.8,1,49804.27627052736
73
+ 1.0,1,70500.0
74
+ 1.8,1,49804.27627052736
75
+ 1.0,1,70500.0
76
+ 3.3,2,70000.0
77
+ 3.3,2,75000.0
78
+ 3.0,2,80000.0
79
+ 3.3,2,85000.0
80
+ 3.0,2,70000.0
81
+ 2.5,2,95000.0
82
+ 3.3,2,100000.0
83
+ 3.0,2,105000.0
84
+ 3.3,2,77853.59696090454
85
+ 2.5,2,77853.59696090454
86
+ 3.3,2,110000.0
87
+ 2.0,2,77853.59696090454
88
+ 5.0,2,70500.0
89
+ 3.3,2,70000.0
90
+ 2.0,2,77853.59696090454
91
+ 3.3,2,95000.0
92
+ 3.3,2,77853.59696090454
93
+ 3.3,2,77853.59696090454
94
+ 5.0,2,100000.0
95
+ 3.3,2,105000.0
96
+ 4.0,2,77853.59696090454
97
+ 3.3,2,88000.0
98
+ 3.0,2,70000.0
99
+ 2.0,2,77853.59696090454
100
+ 3.3,2,70500.0
101
+ 3.0,2,67000.0
102
+ 3.3,2,77853.59696090454
103
+ 4.0,2,90000.0
104
+ 2.0,2,75000.0
105
+ 3.3,2,105000.0
106
+ 3.0,2,77853.59696090454
107
+ 3.3,2,77853.59696090454
108
+ 3.0,2,95000.0
109
+ 3.3,2,77853.59696090454
110
+ 3.0,2,77853.59696090454
111
+ 3.3,2,80000.0
112
+ 10.0,2,76000.0
113
+ 2.0,2,77853.59696090454
114
+ 3.3,2,65000.0
115
+ 2.5,2,77853.59696090454
116
+ 10.0,2,70500.0
117
+ 3.3,2,85000.0
118
+ 3.0,2,110000.0
119
+ 3.3,2,95000.0
120
+ 2.5,2,100000.0
121
+ 4.0,2,77853.59696090454
122
+ 3.0,2,77853.59696090454
123
+ 3.3,2,77853.59696090454
124
+ 3.0,2,87000.0
125
+ 2.5,2,70500.0
126
+ 3.3,2,75000.0
127
+ 3.3,2,95000.0
128
+ 5.0,2,105000.0
129
+ 3.3,2,77853.59696090454
130
+ 2.5,2,77853.59696090454
131
+ 3.3,2,77853.59696090454
132
+ 2.5,2,105000.0
133
+ 3.3,2,77853.59696090454
134
+ 10.0,2,77853.59696090454
135
+ 2.0,2,77853.59696090454
136
+ 3.3,2,77853.59696090454
137
+ 2.0,2,72500.0
138
+ 3.3,2,77853.59696090454
139
+ 5.0,2,85000.0
140
+ 2.5,2,77853.59696090454
141
+ 5.0,2,80000.0
142
+ 3.3,2,90000.0
143
+ 5.5,3,105902.91765128174
144
+ 8.5,3,60000.0
145
+ 6.5,3,105902.91765128174
146
+ 4.8,3,105902.91765128174
147
+ 14.0,3,44750.0
148
+ 4.8,3,105902.91765128174
149
+ 10.0,3,105902.91765128174
150
+ 4.8,3,80000.0
151
+ 4.8,3,105902.91765128174
152
+ 5.0,3,105902.91765128174
153
+ 4.8,3,70000.0
154
+ 5.0,3,100000.0
155
+ 5.0,3,100000.0
156
+ 4.8,3,105902.91765128174
157
+ 4.8,3,90000.0
158
+ 5.0,3,105902.91765128174
159
+ 4.8,3,105902.91765128174
160
+ 4.8,3,90000.0
161
+ 2.0,3,105902.91765128174
162
+ 4.8,3,82500.0
163
+ 5.0,3,105902.91765128174
164
+ 4.8,3,105000.0
165
+ 3.0,3,105902.91765128174
166
+ 4.8,3,105902.91765128174
167
+ 4.0,3,105902.91765128174
168
+ 4.8,3,125000.0
169
+ 2.0,3,95000.0
170
+ 4.0,3,100000.0
171
+ 2.0,3,105902.91765128174
172
+ 4.0,3,110000.0
173
+ 2.0,3,105902.91765128174
174
+ 4.8,3,120000.0
175
+ 5.0,3,125000.0
176
+ 7.5,3,105902.91765128174
177
+ 5.5,3,105902.91765128174
178
+ 3.0,3,105902.91765128174
179
+ 4.8,3,125000.0
180
+ 4.8,3,105902.91765128174
181
+ 3.0,3,120000.0
182
+ 4.8,3,80000.0
183
+ 4.8,3,105902.91765128174
184
+ 2.0,3,115000.0
185
+ 4.8,3,105902.91765128174
186
+ 4.8,3,105902.91765128174
187
+ 3.0,3,105902.91765128174
188
+ 3.0,3,105902.91765128174
189
+ 4.8,3,130000.0
190
+ 4.8,3,105902.91765128174
191
+ 3.0,3,105000.0
192
+ 5.0,3,105902.91765128174
193
+ 1.0,3,105902.91765128174
194
+ 5.0,3,130.0
195
+ 8.0,3,105902.91765128174
196
+ 1.0,3,105902.91765128174
197
+ 1.5,3,125000.0
198
+ 4.8,3,105902.91765128174
199
+ 2.0,3,115000.0
200
+ 4.8,3,105902.91765128174
201
+ 4.0,3,115000.0
202
+ 4.8,3,120000.0
203
+ 3.0,3,105902.91765128174
204
+ 10.0,3,125000.0
205
+ 4.0,3,75000.0
206
+ 4.8,3,95000.0
207
+ 2.0,3,105902.91765128174
208
+ 4.8,3,125000.0
209
+ 5.0,3,105902.91765128174
210
+ 10.0,3,100000.0
211
+ 4.8,3,105000.0
212
+ 7.0,3,120000.0
213
+ 4.8,3,105902.91765128174
214
+ 4.0,3,102500.0
215
+ 5.0,3,105902.91765128174
216
+ 8.0,4,120000.0
217
+ 3.0,4,130000.0
218
+ 8.0,4,45000.0
219
+ 8.0,4,30000.0
220
+ 10.0,4,133952.23834165893
221
+ 8.0,4,154000.0
222
+ 7.5,4,133952.23834165893
223
+ 2.0,4,170000.0
224
+ 2.0,4,150000.0
225
+ 3.0,4,180000.0
226
+ 7.0,4,133952.23834165893
227
+ 10.0,4,133952.23834165893
228
+ 3.0,4,133952.23834165893
229
+ 6.2,4,133952.23834165893
230
+ 5.0,4,175000.0
231
+ 8.0,4,190000.0
232
+ 6.2,4,133952.23834165893
233
+ 2.0,4,160000.0
234
+ 8.0,4,133952.23834165893
235
+ 7.0,4,150000.0
236
+ 6.2,4,133952.23834165893
237
+ 7.0,4,105000.0
238
+ 6.2,4,133952.23834165893
239
+ 2.0,4,133952.23834165893
240
+ 6.2,4,133952.23834165893
241
+ 5.0,4,133952.23834165893
242
+ 6.2,4,130000.0
243
+ 6.2,4,133952.23834165893
244
+ 8.0,4,100000.0
245
+ 5.0,4,133952.23834165893
246
+ 6.2,4,133952.23834165893
247
+ 8.0,4,160000.0
248
+ 8.0,4,133952.23834165893
249
+ 6.2,4,133952.23834165893
250
+ 6.2,4,170000.0
251
+ 6.2,4,133952.23834165893
252
+ 8.0,4,133952.23834165893
253
+ 8.0,4,110000.0
254
+ 8.0,4,133952.23834165893
255
+ 8.0,4,133952.23834165893
256
+ 8.0,4,122500.0
257
+ 5.0,4,133952.23834165893
258
+ 3.5,4,133952.23834165893
259
+ 2.5,4,133952.23834165893
260
+ 7.5,4,120000.0
261
+ 6.2,4,160000.0
262
+ 6.2,4,137500.0
263
+ 4.0,4,133952.23834165893
264
+ 6.2,4,150000.0
265
+ 6.2,4,133952.23834165893
266
+ 8.5,4,92500.0
267
+ 5.0,4,136000.0
268
+ 8.5,4,110000.0
269
+ 7.0,4,165000.0
270
+ 6.2,4,150000.0
271
+ 6.0,4,120000.0
272
+ 5.0,4,180000.0
273
+ 6.2,4,115000.0
274
+ 6.2,4,133952.23834165893
275
+ 7.0,4,133952.23834165893
276
+ 5.0,4,80000.0
277
+ 6.2,4,100000.0
278
+ 6.0,4,133952.23834165893
279
+ 6.2,4,150000.0
280
+ 7.0,4,140000.0
281
+ 5.0,4,175000.0
282
+ 6.2,4,90000.0
283
+ 7.0,4,175000.0
284
+ 6.2,4,133952.23834165893
285
+ 5.0,4,160000.0
Models/Job_data.csv ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Job,Location,Salary,Experience,Job_Pos
2
+ Junior Graphics Designer,Remote,"Php20,000.00 -Php30,000.00 ",At least 1 year,Junior
3
+ Junior Product Designer,Philippines,PHP30K,1-2 years,Junior
4
+ Junior Services Developer - Javascript (100% Remote) - Philippines,Remote,"PHP 32,000 - PHP 57,000",20 years,Junior
5
+ Junior Software Engineers,Remote in Makati,,Minimum 1-2 years,Junior
6
+ Junior Enterprise Growth Consultant (Work From Home),Remote,"Php50,000.00 -Php70,000.00 ",Minimum 1-2 years,Junior
7
+ Junior Operations Associate,Remote in Manila,"PHP 28,000 - PHP 53,000",1-2 Years,Junior
8
+ Junior Accountant (Hong Kong),Angeles,P40K,1- 2 years,Junior
9
+ Master Data Management Junior Associate (Night Shift),Remote in Taguig,"PHP 20,000 - PHP 45,000",,Junior
10
+ FATCA / CRS Junior Officer,Pasig,"PHP 22,000 - PHP 47,000",Minimum 1-2 years,Junior
11
+ Junior Mobile Application Developer,Remote in Taytay,"PHP 24,000 - PHP 49,000",,Junior
12
+ Junior Software Developer,Manila,"PHP 26,000 - PHP 51,000",1-2 years,Junior
13
+ Junior Operations Analyst - Ballot Ingestion,Makati,,,Junior
14
+ Junior Project Development Architect,Makati,"PHP 30,000 - PHP 55,000",at least 1 year,Junior
15
+ Junior Front End Developer,Philippines,35K,2-4 years,Junior
16
+ Logistics Business Planning and Control Jr. Engineer,Philippines,PHP30K,At least 1 year,Junior
17
+ Quality Control Jr. Engineer,Philippines,"PHP 34,000 - PHP 59,000",At least 1 Year,Junior
18
+ Junior SEO Specialist,Manila,"PHP 36,000 - PHP 61,000",5 years,Junior
19
+ Junior Systems Engineer,Quezon City,"PHP 38,000 - PHP 63,000",1-2 years,Junior
20
+ JUNIOR /SENIOR STRUCTURAL DESIGN ENGINEER,Makati,"PHP 40,000 - PHP 65,000",2-3 years,Junior
21
+ Inspector (Subic),Subic,,Minimum 1-2 years,Junior
22
+ Junior Project Development Architect,Makati,"PHP 44,000 - PHP 69,000",at least 1 year,Junior
23
+ Junior Data Quality Analyst,Manila,"PHP 46,000 - PHP 71,000",At least 1 year,Junior
24
+ JR. ADMINISTRATIVE ASSISTANT (COLLECTIONS),Mandaluyong,"PHP 48,000 - PHP 73,000",2-3 years,Junior
25
+ Junior Technical Support,Malate,,,Junior
26
+ Logistics Business Planning and Control Jr. Engineer,Philippines,"PHP 52,000 - PHP 77,000",At least 1 year,Junior
27
+ Cash Applications Junior Associate (Nightshift),Taguig,,2 years,Junior
28
+ Intern - HR Learning Operations,Philippines,"PHP 50,000 - PHP 75,000",,Junior
29
+ Junior SEO Specialist,Philippines,,At least 1-2 years,Junior
30
+ Junior Customer Care Executive,Cebu City,"PHP 42,000 - PHP 67,000",at least 2 years,Junior
31
+ Junior Service Engineer ...,Pampanga,"PHP 27,000",,Junior
32
+ JR. ADMINISTRATIVE ASSISTANT (COLLECTIONS),Mandaluyong,,2-3 years,Junior
33
+ Junior Copywriter (E-commerce),Malate,"PHP 20,000 - PHP 45,000",1-2 years,Junior
34
+ Junior Front End Developer,Philippines,PHP40K,,Junior
35
+ Jr. UI/UX Designer,Parañaque,,1-2 years,Junior
36
+ Cash Applications Junior Associate (Nightshift),Taguig,"Php20,000.00 -Php40,000.00 ",2 years,Junior
37
+ Junior SEO Specialist,Philippines,"PHP 28,000 - PHP 53,000",At least 1-2 years,Junior
38
+ Junior Layout Engineer,Alabang,"PHP 24,000 - PHP 49,000",Minimum 1-2 years,Junior
39
+ Junior Data Scientist,Pasig,"PHP 26,000 - PHP 51,000",,Junior
40
+ Junior Video Editor | Short-Form,Remote in Makati,"PHP 30,000 - PHP 55,000",1-2 years,Junior
41
+ Junior Business Development,Makati,,,Junior
42
+ "Senior/junior programmers, 3d artists",Davao City,PHP 55K,1-2 years,Junior
43
+ Junior Security Analyst,Makati,PHP40K,,Junior
44
+ Ocean Import Jr. Associate,Taguig,"PHP 30,000- PHP 55,000",Minimum 1-2 years,Junior
45
+ IT Admin,Philippines,,At least 1 - 2 years,Junior
46
+ Junior Internal Auditor,Lipa,"PHP 24,000 - PHP 49,000",2 years,Junior
47
+ Graphic Designer,Remote in San Fernando,"PHP 26,000 - PHP 51,000",1-2 years,Junior
48
+ Junior Specialist – Sales Administration,Makati,,2 years,Junior
49
+ Customer Care Specialist,Philippines,,,Junior
50
+ Junior Fourth Engineer,Philippines,"P35,000",1-2 years,Junior
51
+ Junior Web Developer | Hybrid,Remote in Makati,,2 years,Junior
52
+ Website Management Jr. Associate,Remote in Taguig,"PHP 30,000 - PHP 55,000",,Junior
53
+ Software Test Engineer (Junior to Mid),Remote in Cebu City,,1 year,Junior
54
+ Junior Sales,Philippines,,,Junior
55
+ Virtual Executive Support,Remote in Mandaluyong,"PHP30,000 - PHP 60,000",1 -2 year,Junior
56
+ Jr. Specialist,Makati,,1-2 years,Junior
57
+ JR. PROGRAMMER,Remote in Pasig,"PHP, ",,Junior
58
+ Jr. Field Agronomist- North Luzon,Cauayan,,At least 1 year,Junior
59
+ Jr. Data Analyst,Philippines,,2 years,Junior
60
+ Junior QA Engineer,Makati,"PHP 50,000 - PHP 90,000",,Junior
61
+ Junior Data Analyst – Market Intelligence (Financial Market Data),Makati,,2 years,Junior
62
+ Jr. Data Analyst,Philippines,"P45,000",2 years,Junior
63
+ Junior QA Engineer,Makati,,,Junior
64
+ Jr Content Writer,Pasig,"PHP42,000",At least 1 year,Junior
65
+ Manual QA Software Tester,Remote in Taguig,,,Junior
66
+ Scrum Master,Remote in Philippines,"PHP 58,000 - PHP 83,000",2-4 years,Junior
67
+ Junior ABAP Developer,Pasay,,At least 2 year,Junior
68
+ Administrative Associate- Essential Medicines and Health Technologies (EMT),Manila,,2 Years,Junior
69
+ Junior Software Developer,Muntinlupa,"PHP 60,000 - PHP 100,000",2-4 years,Junior
70
+ AML/KYC Junior Officer,Pasig,,1 year,Junior
71
+ Junior Travel Analyst (US Shift),Pasig,,2 years,Junior
72
+ Operations Processor,Taguig,"PHP 55,000 - PHP 95,000",2 years,Junior
73
+ Jr. Software Engineer,Remote in Makati,"PHP, ",,Junior
74
+ Junior Corporate Secretary,Pasig,"PHP 58,000 - PHP 83,000",At least 1 year,Junior
75
+ Customer Happiness Champion,Remote in Philippines,,,Junior
76
+ Finance and Admin Analyst (Open to Fresh Graduates),Hybrid remote in Taguig,"PHP 58,000 - PHP 83,000",0-2 years,Junior
77
+ "Senior Specialist, Facilities",Manila,"PHP 50,000 - PHP 90,000",,Senior
78
+ Senior Operator QA Inspector,Cavite City,"PHP 55,000 - PHP 95,000",,Senior
79
+ "Senior Analyst, AR",Manila,"PHP 60,000 - PHP 100,000",At least 2-4 years,Senior
80
+ Vessel IT Support – Senior Specialist,Manila,"PHP 65,000 - PHP 105,000",,Senior
81
+ Senior Crew - Davao Del Norte (Mindanao),Davao City,"PHP 70,000",At least 2-4 years,Senior
82
+ Senior Cashier,General Santos,"PHP 75,000 - PHP 115,000",2-3 years,Senior
83
+ Senior Staff Technician Equipment,Cavite City,"PHP 80,000 - PHP 120,000",,Senior
84
+ "Sr Supv, Logistics",Tanauan,"PHP 85,000 - PHP 125,000",At least 2-4 years,Senior
85
+ Senior Director Operations Experience : 10+ years Philippines Posted 1 week ago,Philippines,"PHP 90,000 - PHP 130,000",16-18 years,Senior
86
+ Senior Engineer,Remote,,,Senior
87
+ Senior Crew - Negros Oriental (Visayas),Dumaguete,,2-3 years,Senior
88
+ Field Office Personnel,Olongapo,"PHP 110,000",,Senior
89
+ SENIOR TECHNICIAN EQUIPMENT,Cavite City,,1-3 years,Senior
90
+ Senior Supervisor Line Maintenance,Cavite City,"PHP 58,000 - PHP 83,000",5 years,Senior
91
+ Customer Service Advisor - WAH XP 2023,+9 locations,"PHP 50,000 - PHP 90,000",,Senior
92
+ Technician II,Philippines,"PHP 55,000 - PHP 95,000",30 years,Senior
93
+ Operator,Carmona,,at least 2 years,Senior
94
+ Data Process Support,Trece Martires,"Php95,000",,Senior
95
+ Branch Warehouse Helper - Tagum,Tagum,100K,20 years,Senior
96
+ Physical Security Senior Manager,Mandaluyong,,,Senior
97
+ Technical Support / Customer Service Associate - Fixed-Term,Cebu,,,Senior
98
+ "Customer Experience Representative, Senior",Angeles,"PHP 80,000 - PHP 120,000",5 years,Senior
99
+ Senior Staff Process Engineer,General Trias,"PHP 85,000 - PHP 125,000",,Senior
100
+ Senior UI Designer,Philippines,"PHP 90,000 - PHP 130,000",100 years,Senior
101
+ Sales Executive/Senior Executive - Pharma & Personal Care,Philippines,,at least 3-5 years,Senior
102
+ Office Clerk (Cainta Branch),Pasig,"PHP 88,000 ",,Senior
103
+ Senior IT Support,Clark Freeport Zone,P70K,3 years,Senior
104
+ Cashier-JP Rizal,Philippines,,at least 2 years,Senior
105
+ Senior Collection Specialist,Philippines,"PHP 58,000 - PHP 83,000",,Senior
106
+ Senior Crew - Zamboanga Del Sur (Mindanao),Zamboanga City,67K,3 years,Senior
107
+ Senior Collection Specialist,Philippines,,,Senior
108
+ Senior Crew - Agusan Del Norte (Mindanao),Butuan,PHP 90K,4 years,Senior
109
+ Senior Specialist,Manila,Php75K,At least 2 years,Senior
110
+ Senior Logistics Specialist,Batangas City,,35 years,Senior
111
+ Senior Recruiter,Pasig,"PHP 90,000 - PHP 120,000",,Senior
112
+ Project Engineer (Visayas) - Panay,Hybrid remote in Iloilo City,,3 years,Senior
113
+ Senior Crew - Cebu (Visayas),Cebu City,,,Senior
114
+ Senior Crew - Caloocan (Metro Manila),Caloocan,"Php95,000",3 years,Senior
115
+ Senior Product Engineer,Cavite City,,,Senior
116
+ Senior Quality Manager,Tarlac City,,3 years,Senior
117
+ Senior Crew - Negros Occidental (Visayas),Bacolod,80K,,Senior
118
+ Facilities and Admin Director,Remote in Quezon City,76K,10 years,Senior
119
+ "OPERATOR 3, PRODUCTION SUPPORT",Lapu-Lapu City,,at least 2 years,Senior
120
+ Maintenance Supervisor,Santo Tomas,"PHP 65,000",,Senior
121
+ "Senior/Vice President, CEO Office Strategy Projects-Manila",Philippines,,2-3 years,Senior
122
+ Facilities and Admin Director,Remote in Quezon City,"PHP 58,000 - PHP 83,000",10 years,Senior
123
+ "Officer, Surveillance",City of Dreams,"PHP 65,000 - PHP 105,000",,Senior
124
+ "Senior/Vice President, CEO Office Strategy Projects-Manila",Philippines,"PHP 90,000 - PHP 130,000",3 years,Senior
125
+ Quality Control Analyst,General Santos,"Php95,000",,Senior
126
+ Head of Health Safety Security & Environment,Philippines,P100000,2-3 years,Senior
127
+ Hub Supervisor-Muntinlupa,Philippines,,At least 3-5 years,Senior
128
+ DWS - Accounts Payable Specialist - Senior Analyst,Manila,P90K,60 years,Senior
129
+ Senior Project Professional,Taguig,,3 years,Senior
130
+ Senior Crew - Mandaue (Visayas),Mandaue,,,Senior
131
+ "Production/Maint, Assembly/Test",Tanauan,87K,3 years,Senior
132
+ Senior Cashier / Accounts Monitoring Clerk,Pampanga,"PHP 58,000 - PHP 83,000",2-3 years,Senior
133
+ TRANSMISSION LINE AND SUBSTATION PROJECT SENIOR SPECIALIST TO SENIOR OFFICER (GOPS),Philippines,"PHP 55,000 - PHP 95,000",,Senior
134
+ Production Staff,Pasig,"PHP 75,000 - PHP 115,000",,Senior
135
+ Senior Staff Technician Equipment Maintenance,Cavite City,"PHP 85,000 - PHP 125,000",5 Years,Senior
136
+ Senior Crew - Iloilo (Visayas),Iloilo City,,,Senior
137
+ Customer Service Senior Manager,Taguig,,2-3 years,Senior
138
+ Senior Crew- Laguna (South Luzon),Calamba City,,,Senior
139
+ Senior Crew - Bulacan (North Luzon),Baliuag,"PHP 85,000 - PHP 125,000",2-3 years,Senior
140
+ Lubes Warehouseman (Mabini),Hybrid remote in Batangas City,,40 years,Senior
141
+ Senior Crew - Roxas (Visayas),Roxas City,,,Senior
142
+ Senior Operations Manager,Angeles,,At least 10 years,Senior
143
+ Senior Systems Administrator,+1 location,"PHP 55,000 - PHP 95,000",70 years,Senior
144
+ Senior Xero Bookkeeper - Work from Home (Philippines Based),Remote in Philippines,,2 years,Senior
145
+ Customer care collections Senior Rep,Quezon City,,,Senior
146
+ Senior Staff Technician Process,Cavite City,"PHP 60,000 - PHP 85,000",At least 1-3years,Senior
147
+ Senior Project Manager,Clark Freeport Zone,,,Senior
148
+ Regional Management Trainee,Manila,"PHP 80,000 - PHP 90,000",5 years,Senior
149
+ Operator I,Philippines,,2-3 years,Senior
150
+ Senior Bookkeeper,Remote in Quezon City,"PHP 75,000 - PHP 85,000",Minimum 5 years,Senior
151
+ Senior Crew - Pampanga (North Luzon),San Fernando,"PHP 85,000 - PHP 95,000",,Senior
152
+ Project Manager,Manila,,4 - 7 years,Project+Manager
153
+ IT Project Manager,Remote,PHP60KPHP60K-PHP60K,7-10 years,Project+Manager
154
+ Project Manager,Makati,,6-7 years,Project+Manager
155
+ Project Manager,Cebu,,,Project+Manager
156
+ Project Manager,Remote in Manila,"Php 75,000Php 82,000",14 years,Project+Manager
157
+ PROJECT MANAGER,Pasig,,,Project+Manager
158
+ Assistant Project Field Manager - CCPP-Philippines,Remote in Batangas City,,10 years,Project+Manager
159
+ Care Project Manager,Philippines,"Php 70,000 -Php 100,000Php 60,000 to -Php 100,000 ",,Project+Manager
160
+ Assistant Project Manager,Philippines,,,Project+Manager
161
+ Project Manager,Remote,,5 years,Project+Manager
162
+ Project Manager,Pasay,PHP70KPHP70K-PHP70K,,Project+Manager
163
+ Consultancy Project Manager,Makati,"PHP 75,000 - PHP 125,000",5 years,Project+Manager
164
+ Project Manager PMO,Remote in Muntinlupa,"PHP 75,000 - PHP 125,000",5 years,Project+Manager
165
+ Senior Project Manager,Clark Freeport Zone,,,Project+Manager
166
+ Associate Project Manager | Permanent WFH | Up to 100K,Remote in Manila,"Php 80,000 -Php 100,000Php 80,000 to -Php 100,000 ",,Project+Manager
167
+ Consultancy Project Manager,Makati,,5 years,Project+Manager
168
+ Project Manager,Makati,,,Project+Manager
169
+ Associate Project Manager | Permanent WFH | Up to 100K,Remote in Manila,"Php 80,000 -Php 100,000Php 80,000 to -Php 100,000 ",,Project+Manager
170
+ Web Project Manager,Pasong Tamo,,2 years,Project+Manager
171
+ Project Manager,Makati,"PHP 70,000 - PHP 95,000",,Project+Manager
172
+ Project Manager PMO,Remote in Muntinlupa,,5 years,Project+Manager
173
+ Construction Manager (project-based),Philippines,"PHP 80,000 - PHP 130,000",,Project+Manager
174
+ "Project Coordinator, Philippines",Philippines,,At least 3 years,Project+Manager
175
+ Project Manager - Training & Communication,Makati,,,Project+Manager
176
+ Project Manager (Via Verde Padre Garcia Batangas),Muntinlupa,,at least 4 years,Project+Manager
177
+ Trainee- Project Manager,Makati,"PHP 105,000 - PHP 145,000",,Project+Manager
178
+ Client Success Manager - /Project Management/ - WFH - 2 Headcounts,Remote in Manila,"PHP 70,000 - PHP 120,000",At least 2 years,Project+Manager
179
+ Project Manager | Digital Advertisement,Remote in Quezon City,"PHP 75,000 - PHP 125,000",3-5 years,Project+Manager
180
+ Project Coordinator,Cebu,,2 years,Project+Manager
181
+ Project Coordinator,Philippines,"PHP 85,000 - PHP 135,000",At least 3-5 years,Project+Manager
182
+ Consulting Project Associate,Remote in Manila,,2 years,Project+Manager
183
+ Project Manager,Davao City,"PHP 95,000 - PHP 145,000",,Project+Manager
184
+ Integrated Project Manager,Manila,"PHP 100,000 - PHP 150,000",At least 5 years,Project+Manager
185
+ Project Manager (Philippines),Philippines,,5-10 years,Project+Manager
186
+ Print Project Manager,Manila,,4 - 7 years,Project+Manager
187
+ Junior Project Manager,Philippines,,At least 3 years,Project+Manager
188
+ PROJECT MANAGER,Philippines,"PHP 105,000 - PHP 145,000",,Project+Manager
189
+ Project Manager,Mandaluyong,,,Project+Manager
190
+ TRANSMISSION LINE AND SUBSTATION PROJECT SENIOR SPECIALIST TO SENIOR OFFICER (GOPS),Philippines,"PHP 95,000 - PHP 145,000",At least 3 years,Project+Manager
191
+ PROJECT MANAGER,POEA - Overseas,"PHP 65,000 - PHP 95,000",,Project+Manager
192
+ PROJECT MANAGER | INFORMATION TECHNOLOFY | SB FINANCE | MAKATI,Makati,,,Project+Manager
193
+ Project Assistant,Manila,"P90,000 - P140,000",2 years,Project+Manager
194
+ HSE Manager (project-based),Philippines,,,Project+Manager
195
+ Project Manager - United 4,Quezon City,"PHP 75,000 - PHP 125,000",70 years,Project+Manager
196
+ Project Coordinator,Cotabato City,,,Project+Manager
197
+ Project Manager,Hybrid remote in Mandaluyong,"PHP 100,000 - PHP 150,000",40 years,Project+Manager
198
+ Project Engineer (Visayas) - Panay,Hybrid remote in Iloilo City,,3 years,Project+Manager
199
+ Project Manager,Bacolod,,3 years,Project+Manager
200
+ Atlassian Consultant & Project Manager,Makati,"P130,000",,Project+Manager
201
+ Program Manager / Project Manager,Remote in Philippines,,,Project+Manager
202
+ Project Manager (Solar),Mandaluyong,"PHP 80,000 - PHP 130,000",At least 3 years,Project+Manager
203
+ Project Manager,Fort Bonifacio,,5 years,Project+Manager
204
+ Project Coordinator,Cebu City,,At least 1 year,Project+Manager
205
+ Project Management Officer | IT,Philippines,"130,000K",At least 5 years,Project+Manager
206
+ Project Manager,Makati,,at least 8 years,Project+Manager
207
+ Project Manager,Philippines,,At least 1 year,Project+Manager
208
+ Project Manager,Manila,"Php125,000",At least 1-2 years,Project+Manager
209
+ Implementation Project Manager,Mandaluyong,,,Project+Manager
210
+ Project Manager,Manila,"PHP 100,000 - PHP 130,000",At least 2 years,Project+Manager
211
+ Project Manager,Mandaluyong,,,Project+Manager
212
+ Project Manager,Philippines,"PHP 95,000 - PHP 135,000",3-5 years,Project+Manager
213
+ Project Manager,Remote in Philippines,"PHP 100,000 - PHP 140,000",,Project+Manager
214
+ Project Manager,Taguig,,3 years,Project+Manager
215
+ Project Architect Manager,Pasay,"PHP 105,000 - PHP 145,000",At least 10 years,Project+Manager
216
+ Project Manager,Philippines,"Php75,000 ",3-5 years,Project+Manager
217
+ Project Manager,Philippines,"PHP70,000 - PHP120,000",,Project+Manager
218
+ Project Manager,Quezon City,,2 years,Project+Manager
219
+ FT PROJECT MANAGER,Philippines,"PHP 105,000 - PHP 145,000",,Project+Manager
220
+ Project Manager – PEGA,Philippines,,At least 5 years,Project+Manager
221
+ Project Manager,Makati,"PHP 75,000 - PHP 125,000",at least 10 years,Project+Manager
222
+ Project Coordinator,Cebu City,"PHP 80,000 - PHP 130,000",,Project+Manager
223
+ PROJECT / OPERATIONS MANAGER,Pasig,"PHP 100,000 - PHP 140,000",7 years,Project+Manager
224
+ PROJECT MANAGER (Customer Contact Group),Makati,,,Project+Manager
225
+ Project Engineer,Tanauan,"PHP 85,000 - PHP 120,000",3-5 years,Project+Manager
226
+ Sr. Project Manager,Hybrid remote in Manila,,5 years,Project+Manager
227
+ Customer Service Representative,Cebu City,PHP120KPHP120K-PHP120K,8 years,CTO
228
+ Customer Experience Assistant: Policy Changes,Remote in Cebu City,PHP130KPHP130K-PHP130K,3 years,CTO
229
+ Commercial Lines Assistant,Remote in Cebu City,PHP45KPHP45K-PHP45K,8 years,CTO
230
+ Executive Assistant,Remote in Cebu City,PHP30KPHP30K-PHP30K,8 years,CTO
231
+ CTO – Philippines – Regional Bank,Philippines,,10 years,CTO
232
+ Client Service Officer,Remote in Cebu City,PHP250KPHP250K-PHP250K,8 years,CTO
233
+ Sales Admin Support,Remote in Cebu City,PHP154KPHP154K-PHP154K,8 years,CTO
234
+ Global Campaign Manager - Employer Brand (Remote),+1 location,,5-10 years,CTO
235
+ Senior Executive Assistant,Remote in Cebu City,PHP130KPHP130K-PHP130K,25 years,CTO
236
+ Team Lead – Estimating Plan Prep,Cebu City,PHP170KPHP170K-PHP170K,2 years,CTO
237
+ Visual Media Ad Specialist,Remote in Cebu City,PHP150KPHP150K-PHP150K,At least 2 years,CTO
238
+ Web Developer,Remote in Cebu City,PHP180KPHP180K-PHP180K,At least 3 years,CTO
239
+ Head of Information Security,Cebu City,,7 years,CTO
240
+ Chief Transformation Officer,Philippines,,At least 10 years,CTO
241
+ Technical Engineer,Makati,,At least 3 year,CTO
242
+ Community Manager - Web3 Metaverse Gaming - Fully Remote - ph,Remote,,,CTO
243
+ IT Asset Administrator,Cebu City,PHP175KPHP175K-PHP175K,At least 5 year,CTO
244
+ HR Manager,Cebu City,PHP190KPHP190K-PHP190K,8 years,CTO
245
+ Head - Information Security,Remote in Philippines,,,CTO
246
+ Property Accountant,Remote in Cebu City,PHP135KPHP135K-PHP135K,30 years,CTO
247
+ Marketing Coordinator,Remote in Cebu City,PHP160KPHP160K-PHP160K,At least 2 years,CTO
248
+ Business Analyst,Philippines,,8 years,CTO
249
+ Senior Back-End Engineer,Remote in Central Luzon,PHP 150KPHP,7 years,CTO
250
+ Air Service Junior Associate,Taguig,,,CTO
251
+ Communications/PR Manager - Blockchain - Crypto - Remote,Remote in Manila,"PHP 80,000 - PHP 130,000",7 years,CTO
252
+ AC Manila - Cybersecurity DFIR Analyst,Pasig,,,CTO
253
+ Product Manager Philippines,Remote,,At least 2 years,CTO
254
+ Enterprise Account Manager,Taguig,,,CTO
255
+ Solutions Architect,Philippines,"PHP, ",5 years,CTO
256
+ AC Manila - Cybersecurity DFIR Senior Analyst,Pasig,PHP130KPHP130K-PHP130K,,CTO
257
+ AC Manila - Cybersecurity DFIR Senior Analyst,Pasig,,,CTO
258
+ Senior iOS Developer,Philippines,PHP100KPHP100K-PHP100K,8 years,CTO
259
+ AC Manila - Organizational Development Senior Manager,Pasig,,5 years,CTO
260
+ Software Architect (Remote),Remote in Cebu,,,CTO
261
+ Senior Property Accountant,Remote in Cebu City,PHP160KPHP160K-PHP160K,8 years,CTO
262
+ IOS Developer,Philippines,,8 years,CTO
263
+ Air Operations Junior Associate,Taguig,,,CTO
264
+ Content Creator/Copywriter - Blockchain - Crypto - Remote,Remote in Manila,PHP170KPHP170K-PHP170K,,CTO
265
+ Senior Software Development Manager,Taguig,,,CTO
266
+ IOS Developer (Senior),Philippines,,8 years,CTO
267
+ Head of Application Support,Manila,"PHP 85,000 - PHP 135,000",8 years,CTO
268
+ Senior Android Developer,Philippines,,8 years,CTO
269
+ Android Developer (Mid & Senior),Philippines,,8 years,CTO
270
+ Senior Android App Developer,Philippines,"Php 95,000 - PHP 150,000",8 years,CTO
271
+ SAP Sales and Distribution Consultation,Remote in National Capital Region,,5 years,CTO
272
+ Senior Designer Marketing (Blockchain),Remote in Manila,,3-4 years,CTO
273
+ Outbound Sales Lead Generator (BPO Company-Alabang),Alabang,,At least 2-3 years,CTO
274
+ Customer Success Manager,Remote,"PHP 95,000 - PHP 145,000",Minimum 5 - 10 years,CTO
275
+ Data Analyst and Systems Support (Permanent WFH),Remote,"Php160,000.00 ",,CTO
276
+ Software Quality Assurance Engineer,Remote in Mandaluyong,"Php120,000.00 -Php155,000.00 ",,CTO
277
+ Sales Executive,Remote in Mandaluyong,"Php360,000.00 ",At least 3-6 years,CTO
278
+ L2 Service Desk Engineer - WORK FROM HOME,Remote,,3-5 years,CTO
279
+ Chief Technology Officer (CTO) - Remote,Remote in Manila,"Php200,000.00 -Php450,000.00 ",at least 10 years,CTO
280
+ "Software Developer Trainees l 15,000 to 18,000",Angeles,Php150K,,CTO
281
+ Production/Manufacturing Assistant,Santa Rosa City,,,CTO
282
+ Program Manager,Remote in Makati,"Php85,000.00 -Php100,000.00 ",At least 7-10 years,CTO
283
+ Business Analyst,Remote in Mandaluyong,"Php136,000.00",5 year,CTO
284
+ IT Manager,Remote in Makati,"Php110,000.00 ",At least 7-10 years,CTO
285
+ Software Developer,Angeles,"Php150,000.00 -Php180,000.00 ",7 years,CTO
286
+ Web CTO,Remote in Manila,"Php100,000.00 -Php200,000.00 ",,CTO
287
+ Audit Assistant,Baguio,"Php120,000.00 ",6 year,CTO
288
+ IT Operations Manager,Makati,"Php180,000.00",5 years,CTO
289
+ Senior PHP Developer,Remote in Pampanga,"PHP 100,000.00 130,000.00
290
+ ",,CTO
291
+ Data Analyst and Systems Support,Remote in Manila,,,CTO
292
+ Lead DevOps | Work From Home,Remote,"PHP, ",7 years,CTO
293
+ IT Project Manager,Remote in Makati,"Php80,000.00 -Php80,000.00 ",At least 5 years,CTO
294
+ IT Operations & Support Head (IT Manager),Taguig,"Php100,000.00 ",,CTO
295
+ iOS Swift Developer,Remote,,6 year,CTO
296
+ Sr. Data Engineer,+1 location,"Php150,000.00 ",,CTO
297
+ Secretary,Alabang,"Php140,000.00 ",7 year,CTO
298
+ Chief Technology Officer | Flexible Shift - Permanent Work From Home,Remote in Makati,"Php150,000.00 -Php200,000.00 ",5 years,CTO
299
+ Senior Web Developer,Remote in Manila,"Php80,000.00 -Php100,000.00 ",,CTO
300
+ HEAD OF THE SOFTWARE DEVELOPMENT TEAM,Taguig,"Php150,000.00 -Php200,000.00 ",7 years,CTO
301
+ Chief Technology Officer,Taguig,,,CTO
302
+ Chief Technology Officer (CTO),Makati,P160K,5 years,CTO
Models/NB_model_gen.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
Models/indeed.csv ADDED
@@ -0,0 +1,285 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Experience,Job_Pos,New Salary
2
+ 1.0,1,25000.0
3
+ 1.5,1,30000.0
4
+ 1.5,1,49804.27627052734
5
+ 1.5,1,60000.0
6
+ 1.5,1,40500.0
7
+ 1.5,1,40000.0
8
+ 1.8,1,32500.0
9
+ 1.5,1,34500.0
10
+ 1.8,1,36500.0
11
+ 1.5,1,38500.0
12
+ 1.8,1,49804.27627052734
13
+ 1.0,1,42500.0
14
+ 3.0,1,35000.0
15
+ 1.0,1,30000.0
16
+ 1.0,1,46500.0
17
+ 5.0,1,48500.0
18
+ 1.5,1,50500.0
19
+ 2.5,1,52500.0
20
+ 1.5,1,49804.27627052734
21
+ 1.0,1,56500.0
22
+ 1.0,1,58500.0
23
+ 2.5,1,60500.0
24
+ 1.8,1,49804.27627052734
25
+ 1.0,1,64500.0
26
+ 2.0,1,49804.27627052734
27
+ 1.8,1,62500.0
28
+ 1.5,1,49804.27627052734
29
+ 2.0,1,54500.0
30
+ 1.8,1,27000.0
31
+ 2.5,1,49804.27627052734
32
+ 1.5,1,32500.0
33
+ 1.8,1,40000.0
34
+ 1.5,1,49804.27627052734
35
+ 2.0,1,30000.0
36
+ 1.5,1,40500.0
37
+ 1.5,1,36500.0
38
+ 1.8,1,38500.0
39
+ 1.5,1,42500.0
40
+ 1.8,1,49804.27627052734
41
+ 1.5,1,55000.0
42
+ 1.8,1,40000.0
43
+ 1.5,1,42500.0
44
+ 1.5,1,49804.27627052734
45
+ 2.0,1,36500.0
46
+ 1.5,1,38500.0
47
+ 2.0,1,49804.27627052734
48
+ 1.8,1,49804.27627052734
49
+ 1.5,1,35000.0
50
+ 2.0,1,49804.27627052734
51
+ 1.8,1,42500.0
52
+ 1.0,1,49804.27627052734
53
+ 1.8,1,49804.27627052734
54
+ 1.5,1,45000.0
55
+ 1.5,1,49804.27627052734
56
+ 1.8,1,49804.27627052734
57
+ 1.0,1,49804.27627052734
58
+ 2.0,1,49804.27627052734
59
+ 1.8,1,70000.0
60
+ 2.0,1,49804.27627052734
61
+ 2.0,1,45000.0
62
+ 1.8,1,49804.27627052734
63
+ 1.0,1,42000.0
64
+ 1.8,1,49804.27627052734
65
+ 3.0,1,70500.0
66
+ 2.0,1,49804.27627052734
67
+ 2.0,1,49804.27627052734
68
+ 3.0,1,80000.0
69
+ 1.0,1,49804.27627052734
70
+ 2.0,1,49804.27627052734
71
+ 2.0,1,75000.0
72
+ 1.8,1,49804.27627052734
73
+ 1.0,1,70500.0
74
+ 1.8,1,49804.27627052734
75
+ 1.0,1,70500.0
76
+ 3.3,2,70000.0
77
+ 3.3,2,75000.0
78
+ 3.0,2,80000.0
79
+ 3.3,2,85000.0
80
+ 3.0,2,70000.0
81
+ 2.5,2,95000.0
82
+ 3.3,2,100000.0
83
+ 3.0,2,105000.0
84
+ 3.3,2,77853.59696090454
85
+ 2.5,2,77853.59696090454
86
+ 3.3,2,110000.0
87
+ 2.0,2,77853.59696090454
88
+ 5.0,2,70500.0
89
+ 3.3,2,70000.0
90
+ 2.0,2,77853.59696090454
91
+ 3.3,2,95000.0
92
+ 3.3,2,77853.59696090454
93
+ 3.3,2,77853.59696090454
94
+ 5.0,2,100000.0
95
+ 3.3,2,105000.0
96
+ 4.0,2,77853.59696090454
97
+ 3.3,2,88000.0
98
+ 3.0,2,70000.0
99
+ 2.0,2,77853.59696090454
100
+ 3.3,2,70500.0
101
+ 3.0,2,67000.0
102
+ 3.3,2,77853.59696090454
103
+ 4.0,2,90000.0
104
+ 2.0,2,75000.0
105
+ 3.3,2,105000.0
106
+ 3.0,2,77853.59696090454
107
+ 3.3,2,77853.59696090454
108
+ 3.0,2,95000.0
109
+ 3.3,2,77853.59696090454
110
+ 3.0,2,77853.59696090454
111
+ 3.3,2,80000.0
112
+ 10.0,2,76000.0
113
+ 2.0,2,77853.59696090454
114
+ 3.3,2,65000.0
115
+ 2.5,2,77853.59696090454
116
+ 10.0,2,70500.0
117
+ 3.3,2,85000.0
118
+ 3.0,2,110000.0
119
+ 3.3,2,95000.0
120
+ 2.5,2,100000.0
121
+ 4.0,2,77853.59696090454
122
+ 3.0,2,77853.59696090454
123
+ 3.3,2,77853.59696090454
124
+ 3.0,2,87000.0
125
+ 2.5,2,70500.0
126
+ 3.3,2,75000.0
127
+ 3.3,2,95000.0
128
+ 5.0,2,105000.0
129
+ 3.3,2,77853.59696090454
130
+ 2.5,2,77853.59696090454
131
+ 3.3,2,77853.59696090454
132
+ 2.5,2,105000.0
133
+ 3.3,2,77853.59696090454
134
+ 10.0,2,77853.59696090454
135
+ 2.0,2,77853.59696090454
136
+ 3.3,2,77853.59696090454
137
+ 2.0,2,72500.0
138
+ 3.3,2,77853.59696090454
139
+ 5.0,2,85000.0
140
+ 2.5,2,77853.59696090454
141
+ 5.0,2,80000.0
142
+ 3.3,2,90000.0
143
+ 5.5,3,105902.91765128174
144
+ 8.5,3,60000.0
145
+ 6.5,3,105902.91765128174
146
+ 4.8,3,105902.91765128174
147
+ 14.0,3,44750.0
148
+ 4.8,3,105902.91765128174
149
+ 10.0,3,105902.91765128174
150
+ 4.8,3,80000.0
151
+ 4.8,3,105902.91765128174
152
+ 5.0,3,105902.91765128174
153
+ 4.8,3,70000.0
154
+ 5.0,3,100000.0
155
+ 5.0,3,100000.0
156
+ 4.8,3,105902.91765128174
157
+ 4.8,3,90000.0
158
+ 5.0,3,105902.91765128174
159
+ 4.8,3,105902.91765128174
160
+ 4.8,3,90000.0
161
+ 2.0,3,105902.91765128174
162
+ 4.8,3,82500.0
163
+ 5.0,3,105902.91765128174
164
+ 4.8,3,105000.0
165
+ 3.0,3,105902.91765128174
166
+ 4.8,3,105902.91765128174
167
+ 4.0,3,105902.91765128174
168
+ 4.8,3,125000.0
169
+ 2.0,3,95000.0
170
+ 4.0,3,100000.0
171
+ 2.0,3,105902.91765128174
172
+ 4.0,3,110000.0
173
+ 2.0,3,105902.91765128174
174
+ 4.8,3,120000.0
175
+ 5.0,3,125000.0
176
+ 7.5,3,105902.91765128174
177
+ 5.5,3,105902.91765128174
178
+ 3.0,3,105902.91765128174
179
+ 4.8,3,125000.0
180
+ 4.8,3,105902.91765128174
181
+ 3.0,3,120000.0
182
+ 4.8,3,80000.0
183
+ 4.8,3,105902.91765128174
184
+ 2.0,3,115000.0
185
+ 4.8,3,105902.91765128174
186
+ 4.8,3,105902.91765128174
187
+ 3.0,3,105902.91765128174
188
+ 3.0,3,105902.91765128174
189
+ 4.8,3,130000.0
190
+ 4.8,3,105902.91765128174
191
+ 3.0,3,105000.0
192
+ 5.0,3,105902.91765128174
193
+ 1.0,3,105902.91765128174
194
+ 5.0,3,130.0
195
+ 8.0,3,105902.91765128174
196
+ 1.0,3,105902.91765128174
197
+ 1.5,3,125000.0
198
+ 4.8,3,105902.91765128174
199
+ 2.0,3,115000.0
200
+ 4.8,3,105902.91765128174
201
+ 4.0,3,115000.0
202
+ 4.8,3,120000.0
203
+ 3.0,3,105902.91765128174
204
+ 10.0,3,125000.0
205
+ 4.0,3,75000.0
206
+ 4.8,3,95000.0
207
+ 2.0,3,105902.91765128174
208
+ 4.8,3,125000.0
209
+ 5.0,3,105902.91765128174
210
+ 10.0,3,100000.0
211
+ 4.8,3,105000.0
212
+ 7.0,3,120000.0
213
+ 4.8,3,105902.91765128174
214
+ 4.0,3,102500.0
215
+ 5.0,3,105902.91765128174
216
+ 8.0,4,120000.0
217
+ 3.0,4,130000.0
218
+ 8.0,4,45000.0
219
+ 8.0,4,30000.0
220
+ 10.0,4,133952.23834165896
221
+ 8.0,4,154000.0
222
+ 7.5,4,133952.23834165896
223
+ 2.0,4,170000.0
224
+ 2.0,4,150000.0
225
+ 3.0,4,180000.0
226
+ 7.0,4,133952.23834165896
227
+ 10.0,4,133952.23834165896
228
+ 3.0,4,133952.23834165896
229
+ 6.2,4,133952.23834165896
230
+ 5.0,4,175000.0
231
+ 8.0,4,190000.0
232
+ 6.2,4,133952.23834165896
233
+ 2.0,4,160000.0
234
+ 8.0,4,133952.23834165896
235
+ 7.0,4,150000.0
236
+ 6.2,4,133952.23834165896
237
+ 7.0,4,105000.0
238
+ 6.2,4,133952.23834165896
239
+ 2.0,4,133952.23834165896
240
+ 6.2,4,133952.23834165896
241
+ 5.0,4,133952.23834165896
242
+ 6.2,4,130000.0
243
+ 6.2,4,133952.23834165896
244
+ 8.0,4,100000.0
245
+ 5.0,4,133952.23834165896
246
+ 6.2,4,133952.23834165896
247
+ 8.0,4,160000.0
248
+ 8.0,4,133952.23834165896
249
+ 6.2,4,133952.23834165896
250
+ 6.2,4,170000.0
251
+ 6.2,4,133952.23834165896
252
+ 8.0,4,133952.23834165896
253
+ 8.0,4,110000.0
254
+ 8.0,4,133952.23834165896
255
+ 8.0,4,133952.23834165896
256
+ 8.0,4,122500.0
257
+ 5.0,4,133952.23834165896
258
+ 3.5,4,133952.23834165896
259
+ 2.5,4,133952.23834165896
260
+ 7.5,4,120000.0
261
+ 6.2,4,160000.0
262
+ 6.2,4,137500.0
263
+ 4.0,4,133952.23834165896
264
+ 6.2,4,150000.0
265
+ 6.2,4,133952.23834165896
266
+ 8.5,4,92500.0
267
+ 5.0,4,136000.0
268
+ 8.5,4,110000.0
269
+ 7.0,4,165000.0
270
+ 6.2,4,150000.0
271
+ 6.0,4,120000.0
272
+ 5.0,4,180000.0
273
+ 6.2,4,115000.0
274
+ 6.2,4,133952.23834165896
275
+ 7.0,4,133952.23834165896
276
+ 5.0,4,80000.0
277
+ 6.2,4,100000.0
278
+ 6.0,4,133952.23834165896
279
+ 6.2,4,150000.0
280
+ 7.0,4,140000.0
281
+ 5.0,4,175000.0
282
+ 6.2,4,90000.0
283
+ 7.0,4,175000.0
284
+ 6.2,4,133952.23834165896
285
+ 5.0,4,160000.0
Models/km_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4de62a5b4d1edec0c8d722cda4c8b1c6b1f47c16ded3e96ab5fb5716d2ad427
3
+ size 595004
Models/km_model_generator.ipynb ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "attachments": {},
5
+ "cell_type": "markdown",
6
+ "metadata": {
7
+ "id": "uB6uMMVrfH_p"
8
+ },
9
+ "source": [
10
+ "# ***Activity 2***\n",
11
+ "\n",
12
+ "\n",
13
+ "> *Catanus, Jeziah Lois*\n",
14
+ "\n",
15
+ "> *Fagarita, Dave*\n",
16
+ "\n",
17
+ "> *Magno, Jannica Mae*\n",
18
+ "\n",
19
+ "> *Servandil, Jimuel*\n"
20
+ ]
21
+ },
22
+ {
23
+ "cell_type": "code",
24
+ "execution_count": 1,
25
+ "metadata": {
26
+ "id": "PD1hB3g9AppT"
27
+ },
28
+ "outputs": [],
29
+ "source": [
30
+ "import pandas as pd\n",
31
+ "import numpy as np\n",
32
+ "import matplotlib.pyplot as plt"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "code",
37
+ "execution_count": 2,
38
+ "metadata": {
39
+ "id": "dX9CEupAAn9v"
40
+ },
41
+ "outputs": [],
42
+ "source": [
43
+ " # Load the dataset\n",
44
+ "df = pd.read_csv('indeed.csv')"
45
+ ]
46
+ },
47
+ {
48
+ "attachments": {},
49
+ "cell_type": "markdown",
50
+ "metadata": {
51
+ "id": "bkxJeIfNfVUi"
52
+ },
53
+ "source": [
54
+ "# **K-Means**"
55
+ ]
56
+ },
57
+ {
58
+ "cell_type": "code",
59
+ "execution_count": 3,
60
+ "metadata": {
61
+ "colab": {
62
+ "base_uri": "https://localhost:8080/"
63
+ },
64
+ "id": "DbrYBVfBS-4H",
65
+ "outputId": "42bf8aaf-c357-4d4c-d34f-10a23d42e811"
66
+ },
67
+ "outputs": [
68
+ {
69
+ "name": "stdout",
70
+ "output_type": "stream",
71
+ "text": [
72
+ "The average silhouette_score is : 0.6621242593156673\n"
73
+ ]
74
+ }
75
+ ],
76
+ "source": [
77
+ "from sklearn.metrics import silhouette_score\n",
78
+ "import numpy as np\n",
79
+ "import pickle\n",
80
+ "\n",
81
+ "# Define the k-means clustering algorithm\n",
82
+ "def k_means(data, k, max_iter):\n",
83
+ " # Randomly initialize k centroids\n",
84
+ " centroids = data.sample(n=k, random_state=42)\n",
85
+ " centroids.index = range(k)\n",
86
+ "\n",
87
+ " # Initialize a dictionary to store the cluster assignments\n",
88
+ " clusters = {}\n",
89
+ "\n",
90
+ " # Run the k-means algorithm for the specified number of iterations\n",
91
+ " for i in range(max_iter):\n",
92
+ " # Assign each data point to the nearest centroid\n",
93
+ " for j in range(len(data)):\n",
94
+ " distances = []\n",
95
+ " for c in centroids.index:\n",
96
+ " # Calculate the distances using Euclidean distance metric\n",
97
+ " distances.append(np.sqrt(((data.iloc[j] - centroids.loc[c])**2).sum()))\n",
98
+ " cluster = np.argmin(distances)\n",
99
+ " if cluster not in clusters:\n",
100
+ " clusters[cluster] = []\n",
101
+ " clusters[cluster].append(j)\n",
102
+ "\n",
103
+ " # Recalculate the centroids\n",
104
+ " for c in clusters:\n",
105
+ " centroids.loc[c] = data.iloc[clusters[c]].mean()\n",
106
+ "\n",
107
+ " # Create a list of cluster assignments for each data point\n",
108
+ " labels = np.zeros(len(data))\n",
109
+ " for c in clusters:\n",
110
+ " for i in clusters[c]:\n",
111
+ " labels[i] = c\n",
112
+ " \n",
113
+ " # Calculate the silhouette score for evaluation\n",
114
+ " silhouette_avg = silhouette_score(data, labels)\n",
115
+ " print(\"The average silhouette_score is :\", silhouette_avg)\n",
116
+ " \n",
117
+ " # Return the cluster assignments and centroids\n",
118
+ " return clusters, centroids, silhouette_avg\n",
119
+ "\n",
120
+ "# Run k-means clustering on the iris dataset with k=3\n",
121
+ "clusters, centroids, silhouette_avg = k_means(df.drop('Job_Pos', axis=1), k=4, max_iter=100)\n"
122
+ ]
123
+ },
124
+ {
125
+ "attachments": {},
126
+ "cell_type": "markdown",
127
+ "metadata": {
128
+ "id": "L6Ish1xRfiDa"
129
+ },
130
+ "source": [
131
+ "# **Visualization**"
132
+ ]
133
+ },
134
+ {
135
+ "cell_type": "code",
136
+ "execution_count": 4,
137
+ "metadata": {},
138
+ "outputs": [
139
+ {
140
+ "data": {
141
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlUAAAHHCAYAAACWQK1nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBMElEQVR4nO3deVxUVf8H8M+AMiCyubAlCu47uOSAKyaKS6VZuWS5ppVa7imWW5agPpaWpmlPav0yyx41UzMRRU0BV9wzNdRSFjMBRWU9vz+IGwMD3IE7K5/36zUvnXvPnPu9y8z9cs+556qEEAJEREREVCE2pg6AiIiIyBowqSIiIiJSAJMqIiIiIgUwqSIiIiJSAJMqIiIiIgUwqSIiIiJSAJMqIiIiIgUwqSIiIiJSAJMqIiIiIgUwqSIi+Pr6YuTIkaYOwyRGjhwJX19fgy7D19cXTz/9tEGXoSR9tsn8+fOhUqkMGxCRhWBSRWTFrl27htdeew3169eHvb09nJ2d0alTJ6xYsQKPHj0ySgwPHz7E/PnzER0dbZTlGUpwcDBatmxpkmWrVCrpZWNjA29vb/Tq1cto29Ra9iGRoVUxdQBEZBi7du3Ciy++CLVajeHDh6Nly5bIysrCL7/8ghkzZuDChQtYu3atweN4+PAhFixYACA/MaHy6dmzJ4YPHw4hBBISEvDpp5/iqaeewq5du9CnTx9Fl7Vu3Trk5eVJ70vbh++++y5mzZql6PKJLBWTKiIrlJCQgCFDhqBevXrYv38/vLy8pHkTJkzA1atXsWvXLhNGWHEZGRlwdHQ0dRhG07hxY7z88svS++eeew6tW7fG8uXLFU+qqlatKrtslSpVUKUKTyVEAJv/iKzSkiVL8ODBA/z3v//VSqgKNGzYEJMmTSrx8yX1k9mwYQNUKhWuX78uTTtx4gRCQ0NRq1YtODg4wM/PD6NHjwYAXL9+HbVr1wYALFiwQGrCmj9/vvT5X3/9FS+88AJq1KgBe3t7tG/fHjt27NC53IMHD2L8+PFwd3dHnTp1pPk//fQTunTpAkdHRzg5OaFfv364cOFCsfi3b9+Oli1bwt7eHi1btsS2bdtK3AZy5OTkYOHChWjQoAHUajV8fX0xe/ZsZGZm6iy/d+9eBAQEwN7eHs2bN8fWrVvLvexWrVqhVq1aSEhIkKbt379f2g6urq7o378/Ll26pPW5+/fvY/LkyfD19YVarYa7uzt69uyJU6dOSWUK96kqax/qOlbkbpeCvma//PILOnToAHt7e9SvXx9ffvmlVrns7GwsWLAAjRo1gr29PWrWrInOnTsjMjKy3NuPyBCYVBFZoR9//BH169dHx44dDbqclJQU9OrVC9evX8esWbPwySefYNiwYYiNjQUA1K5dG6tXrwaQf2Xlq6++wldffYWBAwcCAC5cuIDAwEBcunQJs2bNwrJly+Do6IgBAwboTHjGjx+PixcvYu7cuVKT01dffYV+/fqhevXqWLx4MebMmYOLFy+ic+fOWsnf3r178fzzz0OlUiE8PBwDBgzAqFGjcOLEiXKv/6uvvoq5c+eibdu2+Oijj9CtWzeEh4djyJAhxcpeuXIFgwcPRp8+fRAeHo4qVargxRdfLHdicO/ePdy7dw81a9YEAOzbtw+hoaFISUnB/PnzMXXqVBw9ehSdOnXS2g6vv/46Vq9ejeeffx6ffvoppk+fDgcHh2LJV4Gy9mFFt8vVq1fxwgsvoGfPnli2bBnc3NwwcuRIraR4/vz5WLBgAbp3746VK1finXfeQd26dbUSQSKzIIjIqqSlpQkAon///rI/U69ePTFixAjp/bx584Sun4f169cLACIhIUEIIcS2bdsEAHH8+PES675z544AIObNm1dsXo8ePUSrVq3E48ePpWl5eXmiY8eOolGjRsWW27lzZ5GTkyNNv3//vnB1dRVjx47VqjcpKUm4uLhoTQ8ICBBeXl4iNTVVmrZ3714BQNSrV6/E+At069ZNtGjRQnofHx8vAIhXX31Vq9z06dMFALF//35pWr169QQA8b///U+alpaWJry8vESbNm3KXDYAMWbMGHHnzh2RkpIi4uLiRI8ePQQAsWzZMmn93N3dxd27d6XPnTlzRtjY2Ijhw4dL01xcXMSECRNKXd6IESO0tklp+7DosVKe7XLo0CFpWkpKilCr1WLatGnSNH9/f9GvX79SYyYyB7xSRWRl0tPTAQBOTk4GX5arqysAYOfOncjOztbrs3///Tf279+PQYMG4f79+/jrr7/w119/4e7duwgNDcWVK1dw69Ytrc+MHTsWtra20vvIyEikpqZi6NCh0uf/+usv2NraQqPR4MCBAwCAxMRExMfHY8SIEXBxcZE+37NnTzRv3rxc6757924AwNSpU7WmT5s2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",
142
+ "text/plain": [
143
+ "<Figure size 640x480 with 1 Axes>"
144
+ ]
145
+ },
146
+ "metadata": {},
147
+ "output_type": "display_data"
148
+ }
149
+ ],
150
+ "source": [
151
+ "fig, ax = plt.subplots()\n",
152
+ "colors = ['r', 'g', 'b', 'y']\n",
153
+ "labels = ['Junior', 'Senior', 'Project Manager', 'CTO']\n",
154
+ "for i, c in enumerate(clusters):\n",
155
+ " ax.scatter(df.loc[clusters[c], 'Experience'], df.loc[clusters[c], 'New Salary'], color=colors[i], label=labels[i])\n",
156
+ "ax.scatter(centroids['Experience'], centroids['New Salary'], marker='x', color='k', s=100, linewidth=2, label='Centroids')\n",
157
+ "ax.set_xlabel('Experience')\n",
158
+ "ax.set_ylabel('New Salary')\n",
159
+ "ax.set_title('Clustered Job Positions')\n",
160
+ "ax.legend()\n",
161
+ "\n",
162
+ "# save the figure object to a pickle file\n",
163
+ "with open('km_model.pkl', 'wb') as f:\n",
164
+ " pickle.dump(fig, f)\n"
165
+ ]
166
+ },
167
+ {
168
+ "cell_type": "code",
169
+ "execution_count": 5,
170
+ "metadata": {},
171
+ "outputs": [
172
+ {
173
+ "data": {
174
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlUAAAHHCAYAAACWQK1nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBMElEQVR4nO3deVxUVf8H8M+AMiCyubAlCu47uOSAKyaKS6VZuWS5ppVa7imWW5agPpaWpmlPav0yyx41UzMRRU0BV9wzNdRSFjMBRWU9vz+IGwMD3IE7K5/36zUvnXvPnPu9y8z9cs+556qEEAJEREREVCE2pg6AiIiIyBowqSIiIiJSAJMqIiIiIgUwqSIiIiJSAJMqIiIiIgUwqSIiIiJSAJMqIiIiIgUwqSIiIiJSAJMqIiIiIgUwqSIi+Pr6YuTIkaYOwyRGjhwJX19fgy7D19cXTz/9tEGXoSR9tsn8+fOhUqkMGxCRhWBSRWTFrl27htdeew3169eHvb09nJ2d0alTJ6xYsQKPHj0ySgwPHz7E/PnzER0dbZTlGUpwcDBatmxpkmWrVCrpZWNjA29vb/Tq1cto29Ra9iGRoVUxdQBEZBi7du3Ciy++CLVajeHDh6Nly5bIysrCL7/8ghkzZuDChQtYu3atweN4+PAhFixYACA/MaHy6dmzJ4YPHw4hBBISEvDpp5/iqaeewq5du9CnTx9Fl7Vu3Trk5eVJ70vbh++++y5mzZql6PKJLBWTKiIrlJCQgCFDhqBevXrYv38/vLy8pHkTJkzA1atXsWvXLhNGWHEZGRlwdHQ0dRhG07hxY7z88svS++eeew6tW7fG8uXLFU+qqlatKrtslSpVUKUKTyVEAJv/iKzSkiVL8ODBA/z3v//VSqgKNGzYEJMmTSrx8yX1k9mwYQNUKhWuX78uTTtx4gRCQ0NRq1YtODg4wM/PD6NHjwYAXL9+HbVr1wYALFiwQGrCmj9/vvT5X3/9FS+88AJq1KgBe3t7tG/fHjt27NC53IMHD2L8+PFwd3dHnTp1pPk//fQTunTpAkdHRzg5OaFfv364cOFCsfi3b9+Oli1bwt7eHi1btsS2bdtK3AZy5OTkYOHChWjQoAHUajV8fX0xe/ZsZGZm6iy/d+9eBAQEwN7eHs2bN8fWrVvLvexWrVqhVq1aSEhIkKbt379f2g6urq7o378/Ll26pPW5+/fvY/LkyfD19YVarYa7uzt69uyJU6dOSWUK96kqax/qOlbkbpeCvma//PILOnToAHt7e9SvXx9ffvmlVrns7GwsWLAAjRo1gr29PWrWrInOnTsjMjKy3NuPyBCYVBFZoR9//BH169dHx44dDbqclJQU9OrVC9evX8esWbPwySefYNiwYYiNjQUA1K5dG6tXrwaQf2Xlq6++wldffYWBAwcCAC5cuIDAwEBcunQJs2bNwrJly+Do6IgBAwboTHjGjx+PixcvYu7cuVKT01dffYV+/fqhevXqWLx4MebMmYOLFy+ic+fOWsnf3r178fzzz0OlUiE8PBwDBgzAqFGjcOLEiXKv/6uvvoq5c+eibdu2+Oijj9CtWzeEh4djyJAhxcpeuXIFgwcPRp8+fRAeHo4qVargxRdfLHdicO/ePdy7dw81a9YEAOzbtw+hoaFISUnB/PnzMXXqVBw9ehSdOnXS2g6vv/46Vq9ejeeffx6ffvoppk+fDgcHh2LJV4Gy9mFFt8vVq1fxwgsvoGfPnli2bBnc3NwwcuRIraR4/vz5WLBgAbp3746VK1finXfeQd26dbUSQSKzIIjIqqSlpQkAon///rI/U69ePTFixAjp/bx584Sun4f169cLACIhIUEIIcS2bdsEAHH8+PES675z544AIObNm1dsXo8ePUSrVq3E48ePpWl5eXmiY8eOolGjRsWW27lzZ5GTkyNNv3//vnB1dRVjx47VqjcpKUm4uLhoTQ8ICBBeXl4iNTVVmrZ3714BQNSrV6/E+At069ZNtGjRQnofHx8vAIhXX31Vq9z06dMFALF//35pWr169QQA8b///U+alpaWJry8vESbNm3KXDYAMWbMGHHnzh2RkpIi4uLiRI8ePQQAsWzZMmn93N3dxd27d6XPnTlzRtjY2Ijhw4dL01xcXMSECRNKXd6IESO0tklp+7DosVKe7XLo0CFpWkpKilCr1WLatGnSNH9/f9GvX79SYyYyB7xSRWRl0tPTAQBOTk4GX5arqysAYOfOncjOztbrs3///Tf279+PQYMG4f79+/jrr7/w119/4e7duwgNDcWVK1dw69Ytrc+MHTsWtra20vvIyEikpqZi6NCh0uf/+usv2NraQqPR4MCBAwCAxMRExMfHY8SIEXBxcZE+37NnTzRv3rxc6757924AwNSpU7WmT5s2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",
175
+ "text/plain": [
176
+ "<Figure size 640x480 with 1 Axes>"
177
+ ]
178
+ },
179
+ "metadata": {},
180
+ "output_type": "display_data"
181
+ }
182
+ ],
183
+ "source": [
184
+ "# load the figure from the pickle file\n",
185
+ "with open('km_model.pkl', 'rb') as f:\n",
186
+ " fig = pickle.load(f)\n",
187
+ "\n",
188
+ "# save the figure as an image file\n",
189
+ "fig.savefig('../static/images/cluster.png', format='png')"
190
+ ]
191
+ }
192
+ ],
193
+ "metadata": {
194
+ "colab": {
195
+ "provenance": []
196
+ },
197
+ "interpreter": {
198
+ "hash": "e9abd7bf17300ee9df567d8d9580282ee75f9a695f2d1fb59e9523387a62f2ed"
199
+ },
200
+ "kernelspec": {
201
+ "display_name": "Python 3.11.2 64-bit",
202
+ "language": "python",
203
+ "name": "python3"
204
+ },
205
+ "language_info": {
206
+ "codemirror_mode": {
207
+ "name": "ipython",
208
+ "version": 3
209
+ },
210
+ "file_extension": ".py",
211
+ "mimetype": "text/x-python",
212
+ "name": "python",
213
+ "nbconvert_exporter": "python",
214
+ "pygments_lexer": "ipython3",
215
+ "version": "3.11.2"
216
+ }
217
+ },
218
+ "nbformat": 4,
219
+ "nbformat_minor": 0
220
+ }
Models/knn_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:60c2ba5b1b1610f028c58bd569d89f9256848a71bcd893dffb726dd71f54bd5a
3
+ size 7153
Models/knn_model_gen.ipynb ADDED
@@ -0,0 +1,207 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {
6
+ "id": "UQK1MhvbUiO1"
7
+ },
8
+ "source": [
9
+ "#KNN on the Iris Dataset"
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "code",
14
+ "execution_count": 10,
15
+ "metadata": {
16
+ "id": "CtfYG2yrQ0i-"
17
+ },
18
+ "outputs": [],
19
+ "source": [
20
+ "from sklearn import neighbors\n",
21
+ "from sklearn.datasets import load_iris\n",
22
+ "from sklearn.metrics import confusion_matrix\n",
23
+ "from sklearn.metrics import f1_score\n",
24
+ "from sklearn.metrics import accuracy_score\n",
25
+ "import pandas as pd"
26
+ ]
27
+ },
28
+ {
29
+ "cell_type": "code",
30
+ "execution_count": 11,
31
+ "metadata": {
32
+ "colab": {
33
+ "base_uri": "https://localhost:8080/"
34
+ },
35
+ "id": "BznYCXGPQ4dA",
36
+ "outputId": "4b30e9e8-2774-4870-9ff3-4f680d12b7c2"
37
+ },
38
+ "outputs": [],
39
+ "source": [
40
+ " # Load the dataset\n",
41
+ "data = pd.read_csv('indeed.csv')\n",
42
+ "\n",
43
+ "X = data.iloc[:, [0, 2]].values\n",
44
+ "y = data.iloc[:, 1].values"
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": 12,
50
+ "metadata": {
51
+ "id": "vICs_orGRMDG"
52
+ },
53
+ "outputs": [],
54
+ "source": [
55
+ "# Split data into training and testing sets\n",
56
+ "from sklearn.model_selection import train_test_split\n",
57
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": 13,
63
+ "metadata": {
64
+ "id": "ah1zLnrYRONr"
65
+ },
66
+ "outputs": [],
67
+ "source": [
68
+ "# Number of nearest neighbors\n",
69
+ "num_neighbors = 12\n",
70
+ "# Step size of the visualization grid\n",
71
+ "step_size = 0.01\n",
72
+ "# Create a K Nearest Neighbors classifier model\n",
73
+ "clfKNN = neighbors.KNeighborsClassifier()\n",
74
+ "\n",
75
+ "clfKNN.fit(X_train, y_train)\n",
76
+ "\n",
77
+ "y_test_pred = clfKNN.predict(X_test)"
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "code",
82
+ "execution_count": 14,
83
+ "metadata": {
84
+ "colab": {
85
+ "base_uri": "https://localhost:8080/"
86
+ },
87
+ "id": "wBfBd6dtSzIn",
88
+ "outputId": "89876b62-9471-4474-8d15-e60732565836"
89
+ },
90
+ "outputs": [
91
+ {
92
+ "name": "stdout",
93
+ "output_type": "stream",
94
+ "text": [
95
+ "f1_score: 0.8139534883720931\n"
96
+ ]
97
+ }
98
+ ],
99
+ "source": [
100
+ "f1_score = f1_score(y_test, y_test_pred, average='micro')\n",
101
+ "print(f'f1_score: {f1_score}')"
102
+ ]
103
+ },
104
+ {
105
+ "cell_type": "code",
106
+ "execution_count": 15,
107
+ "metadata": {
108
+ "colab": {
109
+ "base_uri": "https://localhost:8080/"
110
+ },
111
+ "id": "E4qA4gpUNH9X",
112
+ "outputId": "fbc9e502-a49e-422a-8863-86548187bfc2"
113
+ },
114
+ "outputs": [
115
+ {
116
+ "name": "stdout",
117
+ "output_type": "stream",
118
+ "text": [
119
+ "Accuracy: 81.3953488372093\n"
120
+ ]
121
+ }
122
+ ],
123
+ "source": [
124
+ "# Evaluate the model on the test data\n",
125
+ "accuracy = 100 * accuracy_score(y_test, y_test_pred)\n",
126
+ "print(f'Accuracy: {accuracy}')"
127
+ ]
128
+ },
129
+ {
130
+ "cell_type": "code",
131
+ "execution_count": 16,
132
+ "metadata": {
133
+ "colab": {
134
+ "base_uri": "https://localhost:8080/"
135
+ },
136
+ "id": "p0dObkPrSlEZ",
137
+ "outputId": "06d843c3-94ff-486c-d4c6-7a411edb0e40"
138
+ },
139
+ "outputs": [
140
+ {
141
+ "name": "stdout",
142
+ "output_type": "stream",
143
+ "text": [
144
+ "[[17 2 0 0]\n",
145
+ " [ 0 14 5 0]\n",
146
+ " [ 0 4 18 1]\n",
147
+ " [ 1 1 2 21]]\n"
148
+ ]
149
+ }
150
+ ],
151
+ "source": [
152
+ "cmKNN = confusion_matrix(y_test, y_test_pred)\n",
153
+ "print(cmKNN)"
154
+ ]
155
+ },
156
+ {
157
+ "cell_type": "code",
158
+ "execution_count": 19,
159
+ "metadata": {},
160
+ "outputs": [
161
+ {
162
+ "name": "stdout",
163
+ "output_type": "stream",
164
+ "text": [
165
+ "[1]\n"
166
+ ]
167
+ }
168
+ ],
169
+ "source": [
170
+ "import pickle\n",
171
+ "\n",
172
+ "pickle.dump(clfKNN, open('knn_model.pkl', 'wb'))\n",
173
+ "\n",
174
+ "knn_model_dump = pickle.load(open('knn_model.pkl', 'rb'))\n",
175
+ "\n",
176
+ "print(clfKNN.predict([[1.2, 100]]))"
177
+ ]
178
+ }
179
+ ],
180
+ "metadata": {
181
+ "colab": {
182
+ "provenance": []
183
+ },
184
+ "interpreter": {
185
+ "hash": "e9abd7bf17300ee9df567d8d9580282ee75f9a695f2d1fb59e9523387a62f2ed"
186
+ },
187
+ "kernelspec": {
188
+ "display_name": "Python 3.11.2 64-bit",
189
+ "language": "python",
190
+ "name": "python3"
191
+ },
192
+ "language_info": {
193
+ "codemirror_mode": {
194
+ "name": "ipython",
195
+ "version": 3
196
+ },
197
+ "file_extension": ".py",
198
+ "mimetype": "text/x-python",
199
+ "name": "python",
200
+ "nbconvert_exporter": "python",
201
+ "pygments_lexer": "ipython3",
202
+ "version": "3.11.2"
203
+ }
204
+ },
205
+ "nbformat": 4,
206
+ "nbformat_minor": 0
207
+ }
Models/linreg_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:24b6f9f0ed279298f30aa701e71eaa11b7ff670d088a53932f65de52d4c1aa9f
3
+ size 445
Models/linreg_model_gen.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
Models/nbB_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cca7539157a3ea721c45ffafa0d62c152149c43ab06391b3e023dd13f17f1c71
3
+ size 886
Models/nbG_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ba783ac46b66fc1206d940e9188f68915556d70478679f31344b1d8cdd633295
3
+ size 866
Models/nbM_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:90052f7a17c503036130ac744eacb5112ab890757499f2d178fa4a9f97943232
3
+ size 923
README.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Salary Prediction
3
+ emoji: 🐢
4
+ colorFrom: pink
5
+ colorTo: green
6
+ sdk: docker
7
+ pinned: false
8
+ license: unknown
9
+ ---
10
+
11
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
algos.html ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8 " />
6
+ <title>Classifiers</title>
7
+ <link rel="stylesheet" href="{{ url_for('static', filename='main.css')}}">
8
+ <link href="https://fonts.googleapis.com " rel="preconnect " />
9
+ <link href="https://fonts.gstatic.com " rel="preconnect " crossorigin="anonymous " />
10
+ <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js " type="text/javascript "></script>
11
+ <script type="text/javascript ">
12
+ WebFont.load({
13
+ google: {
14
+ families: ["Orbitron:regular,500,600,700,800,900 ", "Noto Sans Tamil:100,200,300,regular,500,600,700,800,900 ", "Inter:100,200,300,regular,500,600,700,800,900 "]
15
+ }
16
+ });
17
+ </script>
18
+ <script type="text/javascript ">
19
+ ! function(o, c) {
20
+ var n = c.documentElement,
21
+ t = " w-mod- ";
22
+ n.className += t + "js ", ("ontouchstart " in o || o.DocumentTouch && c instanceof DocumentTouch) && (n.className += t + "touch ")
23
+ }(window, document);
24
+ </script>
25
+ </head>
26
+
27
+ <body>
28
+ <div class="tab-container">
29
+ <!-- Left column (tab menu) -->
30
+ <div class="tab-menu">
31
+ <button class="tablinks active" onclick="openTab(event, 'knn')">KNN</button>
32
+ <button class="tablinks" onclick="openTab(event, 'linear')">Linear Regression</button>
33
+ <button class="tablinks" onclick="openTab(event, 'kmeans')">KMeans</button>
34
+ <button class="tablinks" onclick="openTab(event, 'naive-bayes')">Naive Bayes</button>
35
+ </div>
36
+
37
+ <!-- Right column (tab content) -->
38
+ <div class="tab-content">
39
+ <div id="linear" class="tabcontent">
40
+ <iframe src="{{ url_for('linear') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
41
+ </div>
42
+
43
+ <div id="knn" class="tabcontent">
44
+ <iframe src="{{ url_for('knn') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
45
+ </div>
46
+
47
+ <div id="kmeans" class="tabcontent">
48
+ <iframe src="{{ url_for('kmeans') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
49
+ </div>
50
+
51
+ <div id="naive-bayes" class="tabcontent">
52
+ <iframe src="{{ url_for('naive') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
53
+ </div>
54
+ </div>
55
+
56
+ <script>
57
+ document.getElementById("knn").style.display = "block";
58
+
59
+ function openTab(evt, tabName) {
60
+ var i, tabcontent, tablinks;
61
+
62
+ tabcontent = document.getElementsByClassName("tabcontent");
63
+ for (i = 0; i < tabcontent.length; i++) {
64
+ tabcontent[i].style.display = "none";
65
+ }
66
+
67
+ tablinks = document.getElementsByClassName("tablinks");
68
+ for (i = 0; i < tablinks.length; i++) {
69
+ tablinks[i].className = tablinks[i].className.replace(" active", "");
70
+ }
71
+
72
+ document.getElementById(tabName).style.display = "block";
73
+ evt.currentTarget.className += " active";
74
+ }
75
+ </script>
76
+ </body>
77
+
78
+ </html>
app.ipynb ADDED
@@ -0,0 +1,396 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 22,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "from flask import Flask, render_template, request, url_for\n",
10
+ "import pickle\n",
11
+ "import numpy as np\n",
12
+ "\n",
13
+ "linreg = pickle.load(open('Models/lr.pkl', 'rb'))\n",
14
+ "knn_model = pickle.load(open('Models/knn_model.pkl', 'rb'))\n",
15
+ "gaussian_nb = pickle.load(open('Models/nbG_model.pkl', 'rb'))\n",
16
+ "multinomial_nb = pickle.load(open('Models/nbM_model.pkl', 'rb'))\n",
17
+ "bernoulli_nb = pickle.load(open('Models/nbB_model.pkl', 'rb'))\n",
18
+ "\n",
19
+ "job_map = {\n",
20
+ " 1: 'Junior',\n",
21
+ " 2: 'Senior',\n",
22
+ " 3: 'Project Manager',\n",
23
+ " 4: 'CTO',\n",
24
+ "}"
25
+ ]
26
+ },
27
+ {
28
+ "cell_type": "code",
29
+ "execution_count": null,
30
+ "metadata": {},
31
+ "outputs": [],
32
+ "source": [
33
+ "from sklearn.model_selection import train_test_split\n",
34
+ "\n",
35
+ "while True:\n",
36
+ " salary = float(input(\"Enter salary: \"))\n",
37
+ " print(\"Salary entered: \", salary)\n",
38
+ "\n",
39
+ " experience = float(input(\"Enter experience: \"))\n",
40
+ " print(\"Experience entered: \", experience)\n",
41
+ "\n",
42
+ " with open('Models/tts.pkl', 'rb') as f:\n",
43
+ " data = pickle.load(f)\n",
44
+ "\n",
45
+ " X=data['X']\n",
46
+ " y=data['y']\n",
47
+ "\n",
48
+ " X = np.vstack((X, np.array([salary, experience])))\n",
49
+ " y= np.hstack((y, experience)) # use a new label for the user's input\n",
50
+ "\n",
51
+ " # Split the data into training and testing sets\n",
52
+ " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
53
+ "\n",
54
+ " # Fit the Naive Bayes models on the training data\n",
55
+ " gaussian_nb.fit(X_train, y_train)\n",
56
+ " multinomial_nb.fit(X_train, y_train)\n",
57
+ " bernoulli_nb.fit(X_train, y_train)\n",
58
+ "\n",
59
+ " # Evaluate the accuracy of the models on the testing set\n",
60
+ " gaussian_accuracy = gaussian_nb.score(X_test, y_test)\n",
61
+ " multinomial_accuracy = multinomial_nb.score(X_test, y_test)\n",
62
+ " bernoulli_accuracy = bernoulli_nb.score(X_test, y_test)\n",
63
+ "\n",
64
+ " # Use each Naive Bayes model to make a prediction based on the user's input values\n",
65
+ " gaussian_prediction = gaussian_nb.predict([[salary, experience]])[0]\n",
66
+ " multinomial_prediction = multinomial_nb.predict([[salary, experience]])[0]\n",
67
+ " bernoulli_prediction = bernoulli_nb.predict([[salary, experience]])[0]\n",
68
+ "\n",
69
+ " # Map the predicted job titles to their corresponding string values\n",
70
+ " gaussian_prediction = job_map.get(gaussian_prediction)\n",
71
+ " multinomial_prediction = job_map.get(multinomial_prediction)\n",
72
+ " bernoulli_prediction = job_map.get(bernoulli_prediction)\n",
73
+ "\n",
74
+ " # # Print the accuracy and predicted job title for each Naive Bayes model\n",
75
+ " # print(\"Gaussian Accuracy: {:.2f}%, Prediction: {}\".format(gaussian_accuracy * 100, gaussian_prediction))\n",
76
+ " # print(\"Multinomial Accuracy: {:.2f}%, Prediction: {}\".format(multinomial_accuracy * 100, multinomial_prediction))\n",
77
+ " # print(\"Bernoulli Accuracy: {:.2f}%, Prediction: {}\".format(bernoulli_accuracy * 100, bernoulli_prediction))\n",
78
+ " # print(\"\\n\")\n",
79
+ "\n",
80
+ " # # Evaluate the accuracy of the models on the new input\n",
81
+ " # gaussian_accuracy_new = gaussian_nb.score([[salary, experience]], [5])\n",
82
+ " # multinomial_accuracy_new = multinomial_nb.score([[salary, experience]], [5])\n",
83
+ " # bernoulli_accuracy_new = bernoulli_nb.score([[salary, experience]], [5])\n"
84
+ ]
85
+ },
86
+ {
87
+ "cell_type": "code",
88
+ "execution_count": null,
89
+ "metadata": {},
90
+ "outputs": [],
91
+ "source": [
92
+ " # X=data['X']\n",
93
+ " # y=data['y']\n",
94
+ "\n",
95
+ " # # Combine the user's input values with the existing data\n",
96
+ " # X_new = np.vstack((X, np.array([salary, experience])))\n",
97
+ " # y_new = np.hstack((y, 5)) # use a new label for the user's input\n",
98
+ "\n",
99
+ " # n_splits=10\n",
100
+ "\n",
101
+ " # # Use k-fold cross-validation to generate a new test set for each iteration\n",
102
+ " # kf = KFold(n_splits=n_splits, shuffle=False, random_state=None)\n",
103
+ "\n",
104
+ " # gaussian_accuracy = 0\n",
105
+ " # multinomial_accuracy = 0\n",
106
+ " # bernoulli_accuracy = 0\n",
107
+ "\n",
108
+ " # for train_index, test_index in kf.split(X_new):\n",
109
+ " # X_train, X_test = X_new[train_index], X_new[test_index]\n",
110
+ " # y_train, y_test = y_new[train_index], y_new[test_index]\n",
111
+ "\n",
112
+ " # # Fit the Naive Bayes models on the training data\n",
113
+ " # gaussian_nb.fit(X_train, y_train)\n",
114
+ " # multinomial_nb.fit(X_train, y_train)\n",
115
+ " # bernoulli_nb.fit(X_train, y_train)\n",
116
+ "\n",
117
+ " # # Use each Naive Bayes model to make a prediction based on the user's input values\n",
118
+ " # gaussian_prediction = gaussian_nb.predict([[salary, experience]])[0]\n",
119
+ " # multinomial_prediction = multinomial_nb.predict([[salary, experience]])[0]\n",
120
+ " # bernoulli_prediction = bernoulli_nb.predict([[salary, experience]])[0]\n",
121
+ "\n",
122
+ " # # Update the accuracy scores for each Naive Bayes model\n",
123
+ " # gaussian_accuracy += gaussian_nb.score(X_test, y_test)\n",
124
+ " # multinomial_accuracy += multinomial_nb.score(X_test, y_test)\n",
125
+ " # bernoulli_accuracy += bernoulli_nb.score(X_test, y_test)\n",
126
+ "\n",
127
+ " # # Calculate the mean accuracy for each Naive Bayes model over all folds\n",
128
+ " # gaussian_accuracy = round(gaussian_accuracy / n_splits * 100, 3)\n",
129
+ " # multinomial_accuracy = round(multinomial_accuracy / n_splits * 100, 3)\n",
130
+ " # bernoulli_accuracy = round(bernoulli_accuracy / n_splits * 100, 3)\n",
131
+ "\n",
132
+ " # # Map the predicted job titles to their corresponding string values\n",
133
+ " # gaussian_prediction = job_map.get(gaussian_prediction)\n",
134
+ " # multinomial_prediction = job_map.get(multinomial_prediction)\n",
135
+ " # bernoulli_prediction = job_map.get(bernoulli_prediction)\n",
136
+ "\n",
137
+ " # # Render the results template with the predicted job classification and accuracy scores\n",
138
+ " # return render_template('naive.html',\n",
139
+ " # gaussian_prediction=gaussian_prediction,\n",
140
+ " # multinomial_prediction=multinomial_prediction,\n",
141
+ " # bernoulli_prediction=bernoulli_prediction,\n",
142
+ " # gaussian_accuracy=str(gaussian_accuracy) + \"%\",\n",
143
+ " # multinomial_accuracy=str(multinomial_accuracy) + \"%\",\n",
144
+ " # bernoulli_accuracy=str(bernoulli_accuracy) + \"%\",\n",
145
+ " # salary=salary,\n",
146
+ " # experience=experience,\n",
147
+ " # reset=True)\n",
148
+ " # else:\n",
149
+ " # # Render the job classification form\n",
150
+ " # return render_template('naive.html')\n"
151
+ ]
152
+ },
153
+ {
154
+ "cell_type": "code",
155
+ "execution_count": null,
156
+ "metadata": {},
157
+ "outputs": [],
158
+ "source": [
159
+ " # if request.method == 'POST':\n",
160
+ " # # Get the user's input values\n",
161
+ " # salary = float(request.form['salary'])\n",
162
+ " # experience = float(request.form['experience'])\n",
163
+ "\n",
164
+ " # with open('Models/tts.pkl', 'rb') as f:\n",
165
+ " # data = pickle.load(f)\n",
166
+ "\n",
167
+ " # X=data['X']\n",
168
+ " # y=data['y']\n",
169
+ "\n",
170
+ "\n",
171
+ " # X = np.vstack((X, np.array([salary, experience])))\n",
172
+ " # y= np.hstack((y, 5)) # use a new label for the user's input\n",
173
+ "\n",
174
+ "\n",
175
+ " # # Split the data into training and testing sets\n",
176
+ " # X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=0)\n",
177
+ "\n",
178
+ " # # Fit the Naive Bayes models on the training data\n",
179
+ " # gaussian_nb.fit(X_train, y_train)\n",
180
+ " # multinomial_nb.fit(X_train, y_train)\n",
181
+ " # bernoulli_nb.fit(X_train, y_train)\n",
182
+ "\n",
183
+ " # # Use each Naive Bayes model to make a prediction based on the user's input values\n",
184
+ " # gaussian_prediction = gaussian_nb.predict([[salary, experience]])[0]\n",
185
+ " # multinomial_prediction = multinomial_nb.predict([[salary, experience]])[0]\n",
186
+ " # bernoulli_prediction = bernoulli_nb.predict([[salary, experience]])[0]\n",
187
+ "\n",
188
+ " # # Evaluate the accuracy of the models on the testing set\n",
189
+ " # gaussian_accuracy = round(gaussian_nb.score(X_test, y_test) * 100, 3) \n",
190
+ " # multinomial_accuracy = round(multinomial_nb.score(X_test, y_test) * 100, 3)\n",
191
+ " # bernoulli_accuracy = round(bernoulli_nb.score(X_test, y_test) * 100, 3)\n",
192
+ "\n",
193
+ " # # Map the predicted job titles to their corresponding string values\n",
194
+ " # gaussian_prediction = job_map.get(gaussian_prediction)\n",
195
+ " # multinomial_prediction = job_map.get(multinomial_prediction)\n",
196
+ " # bernoulli_prediction = job_map.get(bernoulli_prediction)\n",
197
+ "\n",
198
+ " # # Render the results template with the predicted job classification and accuracy scores\n",
199
+ " # return render_template('naive.html',\n",
200
+ " # gaussian_prediction=gaussian_prediction,\n",
201
+ " # multinomial_prediction=multinomial_prediction,\n",
202
+ " # bernoulli_prediction=bernoulli_prediction,\n",
203
+ " # gaussian_accuracy=str(gaussian_accuracy) + \"%\",\n",
204
+ " # multinomial_accuracy=str(multinomial_accuracy) + \"%\",\n",
205
+ " # bernoulli_accuracy=str(bernoulli_accuracy) + \"%\",\n",
206
+ " # salary=salary,\n",
207
+ " # experience=experience,\n",
208
+ " # reset=True)\n",
209
+ " # else:\n",
210
+ " # # Render the job classification form\n",
211
+ " # return render_template('naive.html')\n"
212
+ ]
213
+ },
214
+ {
215
+ "cell_type": "code",
216
+ "execution_count": null,
217
+ "metadata": {},
218
+ "outputs": [
219
+ {
220
+ "name": "stdout",
221
+ "output_type": "stream",
222
+ "text": [
223
+ "Salary entered: 5000.0\n",
224
+ "Experience entered: 5.0\n",
225
+ "Gaussian Accuracy: 82.81%, Prediction: None\n",
226
+ "Multinomial Accuracy: 26.67%, Prediction: None\n",
227
+ "Bernoulli Accuracy: 21.05%, Prediction: Junior\n",
228
+ "\n",
229
+ "\n",
230
+ "Salary entered: 4.0\n",
231
+ "Experience entered: 5.0\n",
232
+ "Gaussian Accuracy: 82.46%, Prediction: CTO\n",
233
+ "Multinomial Accuracy: 25.96%, Prediction: Junior\n",
234
+ "Bernoulli Accuracy: 20.70%, Prediction: Junior\n",
235
+ "\n",
236
+ "\n"
237
+ ]
238
+ },
239
+ {
240
+ "ename": "ValueError",
241
+ "evalue": "could not convert string to float: ''",
242
+ "output_type": "error",
243
+ "traceback": [
244
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
245
+ "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
246
+ "Cell \u001b[1;32mIn[3], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msklearn\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmodel_selection\u001b[39;00m \u001b[39mimport\u001b[39;00m KFold\n\u001b[0;32m 2\u001b[0m \u001b[39mwhile\u001b[39;00m \u001b[39mTrue\u001b[39;00m:\n\u001b[1;32m----> 3\u001b[0m salary \u001b[39m=\u001b[39m \u001b[39mfloat\u001b[39m(\u001b[39minput\u001b[39m(\u001b[39m\"\u001b[39m\u001b[39mEnter salary: \u001b[39m\u001b[39m\"\u001b[39m))\n\u001b[0;32m 4\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m\"\u001b[39m\u001b[39mSalary entered: \u001b[39m\u001b[39m\"\u001b[39m, salary)\n\u001b[0;32m 6\u001b[0m experience \u001b[39m=\u001b[39m \u001b[39mfloat\u001b[39m(\u001b[39minput\u001b[39m(\u001b[39m\"\u001b[39m\u001b[39mEnter experience: \u001b[39m\u001b[39m\"\u001b[39m))\n",
247
+ "\u001b[1;31mValueError\u001b[0m: could not convert string to float: ''"
248
+ ]
249
+ }
250
+ ],
251
+ "source": [
252
+ "# from sklearn.model_selection import KFold\n",
253
+ "# while True:\n",
254
+ "# salary = float(input(\"Enter salary: \"))\n",
255
+ "# print(\"Salary entered: \", salary)\n",
256
+ "\n",
257
+ "# experience = float(input(\"Enter experience: \"))\n",
258
+ "# print(\"Experience entered: \", experience)\n",
259
+ "\n",
260
+ "# with open('Models/tts.pkl', 'rb') as f:\n",
261
+ "# data = pickle.load(f)\n",
262
+ "\n",
263
+ "# X=data['X']\n",
264
+ "# y=data['y']\n",
265
+ "\n",
266
+ "# # Combine the user's input values with the existing data\n",
267
+ "# X_new = np.vstack((X, np.array([salary, experience])))\n",
268
+ "# y_new = np.hstack((y, 5)) # use a new label for the user's input\n",
269
+ "\n",
270
+ "# n_splits=5\n",
271
+ "\n",
272
+ "# # Use k-fold cross-validation to generate a new test set for each iteration\n",
273
+ "# kf = KFold(n_splits=n_splits, shuffle=True, random_state=None)\n",
274
+ "\n",
275
+ "# gaussian_accuracy = 0\n",
276
+ "# multinomial_accuracy = 0\n",
277
+ "# bernoulli_accuracy = 0\n",
278
+ "\n",
279
+ "# for train_index, test_index in kf.split(X_new):\n",
280
+ "# X_train, X_test = X_new[train_index], X_new[test_index]\n",
281
+ "# y_train, y_test = y_new[train_index], y_new[test_index]\n",
282
+ "\n",
283
+ "# # Fit the Naive Bayes models on the training data\n",
284
+ "# gaussian_nb.fit(X_train, y_train)\n",
285
+ "# multinomial_nb.fit(X_train, y_train)\n",
286
+ "# bernoulli_nb.fit(X_train, y_train)\n",
287
+ "\n",
288
+ "# # Use each Naive Bayes model to make a prediction based on the user's input values\n",
289
+ "# gaussian_prediction = gaussian_nb.predict([[salary, experience]])[0]\n",
290
+ "# multinomial_prediction = multinomial_nb.predict([[salary, experience]])[0]\n",
291
+ "# bernoulli_prediction = bernoulli_nb.predict([[salary, experience]])[0]\n",
292
+ "\n",
293
+ "# # Update the accuracy scores for each Naive Bayes model\n",
294
+ "# gaussian_accuracy += gaussian_nb.score(X_test, y_test)\n",
295
+ "# multinomial_accuracy += multinomial_nb.score(X_test, y_test)\n",
296
+ "# bernoulli_accuracy += bernoulli_nb.score(X_test, y_test)\n",
297
+ "\n",
298
+ "# # Calculate the mean accuracy for each Naive Bayes model over all folds\n",
299
+ "# gaussian_accuracy /= n_splits\n",
300
+ "# multinomial_accuracy /= n_splits\n",
301
+ "# bernoulli_accuracy /= n_splits\n",
302
+ "\n",
303
+ "# # Map the predicted job titles to their corresponding string values\n",
304
+ "# gaussian_prediction = job_map.get(gaussian_prediction)\n",
305
+ "# multinomial_prediction = job_map.get(multinomial_prediction)\n",
306
+ "# bernoulli_prediction = job_map.get(bernoulli_prediction)\n",
307
+ "\n",
308
+ "# # Print the accuracy and predicted job title for each Naive Bayes model\n",
309
+ "# print(\"Gaussian Accuracy: {:.2f}%, Prediction: {}\".format(gaussian_accuracy * 100, gaussian_prediction))\n",
310
+ "# print(\"Multinomial Accuracy: {:.2f}%, Prediction: {}\".format(multinomial_accuracy * 100, multinomial_prediction))\n",
311
+ "# print(\"Bernoulli Accuracy: {:.2f}%, Prediction: {}\".format(bernoulli_accuracy * 100, bernoulli_prediction))\n",
312
+ "# print(\"\\n\")\n",
313
+ "\n",
314
+ "\n"
315
+ ]
316
+ },
317
+ {
318
+ "cell_type": "code",
319
+ "execution_count": null,
320
+ "metadata": {},
321
+ "outputs": [],
322
+ "source": [
323
+ "# @app.route('/predictnaive', methods=['GET', 'POST'])\n",
324
+ "# def predictnaive():\n",
325
+ "# if request.method == 'POST':\n",
326
+ "# # Get the user's input values\n",
327
+ "# salary = float(request.form['salary'])\n",
328
+ "# experience = float(request.form['experience'])\n",
329
+ "\n",
330
+ "# # Load the data used to train and test the models\n",
331
+ "# with open('Models/tts.pkl', 'rb') as f:\n",
332
+ "# data = pickle.load(f)\n",
333
+ " \n",
334
+ "# # X_user = np.array([[salary, experience]])\n",
335
+ "# # y_user = np.array([5])\n",
336
+ "# # X_test_combined = np.concatenate((X_test, X_user))\n",
337
+ "# # y_test_combined = np.concatenate((y_test, y_user))\n",
338
+ "\n",
339
+ "# X = np.vstack((data['X'], np.array([salary, experience])))\n",
340
+ "# y = np.hstack((data['y'], 5)) # use a new label for the user's input\n",
341
+ " \n",
342
+ "# from sklearn.model_selection import train_test_split\n",
343
+ "# X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=0)\n",
344
+ "\n",
345
+ "# # Re-fit models on combined data\n",
346
+ "# gaussian_nb.fit(X_train, y_train) \n",
347
+ "# multinomial_nb.fit(X_train, y_train)\n",
348
+ "# bernoulli_nb.fit(X_train, y_train)\n",
349
+ "\n",
350
+ "# # Use each Naive Bayes model to make a prediction based on the user's input values\n",
351
+ "# gaussian_prediction = gaussian_nb.predict([[salary, experience]])[0]\n",
352
+ "# multinomial_prediction = multinomial_nb.predict([[salary, experience]])[0]\n",
353
+ "# bernoulli_prediction = bernoulli_nb.predict([[salary, experience]])[0]\n",
354
+ "\n",
355
+ "\n",
356
+ "# # Calculate the accuracy of each Naive Bayes model\n",
357
+ "# gaussian_accuracy = round(gaussian_nb.score(X_test, y_test), 3) * 100\n",
358
+ "# multinomial_accuracy = round(multinomial_nb.score(X_test, y_test), 3) * 100\n",
359
+ "# bernoulli_accuracy = round(bernoulli_nb.score(X_test, y_test), 3) * 100\n",
360
+ "\n",
361
+ "\n",
362
+ "# gaussian_prediction = job_map.get(gaussian_prediction)\n",
363
+ "# multinomial_prediction = job_map.get(multinomial_prediction)\n",
364
+ "# bernoulli_prediction = job_map.get(bernoulli_prediction)\n",
365
+ "\n",
366
+ "# # Render the results template with the predicted job classification and accuracy scores\n",
367
+ "# return render_template('naive.html', gaussian_prediction=gaussian_prediction, multinomial_prediction=multinomial_prediction, bernoulli_prediction=bernoulli_prediction, gaussian_accuracy=gaussian_accuracy, multinomial_accuracy=multinomial_accuracy, bernoulli_accuracy=bernoulli_accuracy, salary=salary, experience=experience, reset=True)\n",
368
+ "# else:\n",
369
+ "# # Render the job classification form\n",
370
+ "# return render_template('naive.html')"
371
+ ]
372
+ }
373
+ ],
374
+ "metadata": {
375
+ "kernelspec": {
376
+ "display_name": "Python 3",
377
+ "language": "python",
378
+ "name": "python3"
379
+ },
380
+ "language_info": {
381
+ "codemirror_mode": {
382
+ "name": "ipython",
383
+ "version": 3
384
+ },
385
+ "file_extension": ".py",
386
+ "mimetype": "text/x-python",
387
+ "name": "python",
388
+ "nbconvert_exporter": "python",
389
+ "pygments_lexer": "ipython3",
390
+ "version": "3.11.2"
391
+ },
392
+ "orig_nbformat": 4
393
+ },
394
+ "nbformat": 4,
395
+ "nbformat_minor": 2
396
+ }
app.py ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template, request, url_for
2
+ import pickle
3
+ import numpy as np
4
+
5
+ app = Flask(__name__, static_folder='static')
6
+
7
+ linreg = pickle.load(open('Models/linreg_model.pkl', 'rb'))
8
+ knn_model = pickle.load(open('Models/knn_model.pkl', 'rb'))
9
+ gaussian_nb = pickle.load(open('Models/nbG_model.pkl', 'rb'))
10
+ multinomial_nb = pickle.load(open('Models/nbM_model.pkl', 'rb'))
11
+ bernoulli_nb = pickle.load(open('Models/nbB_model.pkl', 'rb'))
12
+
13
+ job_map = {
14
+ 1: 'Junior',
15
+ 2: 'Senior',
16
+ 3: 'Project Manager',
17
+ 4: 'CTO',
18
+ }
19
+
20
+
21
+ @app.route('/')
22
+ def index():
23
+ return render_template('index.html')
24
+
25
+
26
+ @app.route('/about')
27
+ def about():
28
+ return render_template('about.html')
29
+
30
+
31
+ @app.route('/algos')
32
+ def algos():
33
+ return render_template('algos.html')
34
+
35
+
36
+ @app.route('/linear', methods=['GET', 'POST'])
37
+ def linear():
38
+ return render_template('linear.html')
39
+
40
+
41
+ @app.route('/knn', methods=['GET', 'POST'])
42
+ def knn():
43
+ return render_template('knn.html')
44
+
45
+
46
+ @app.route('/kmeans', methods=['GET', 'POST'])
47
+ def kmeans():
48
+ return render_template('kmeans.html')
49
+
50
+
51
+ @app.route('/naive', methods=['GET', 'POST'])
52
+ def naive():
53
+ return render_template('naive.html')
54
+
55
+
56
+ @app.route('/predict', methods=['POST'])
57
+ def predict():
58
+ position_level = request.form.get('comp_select')
59
+ experience_str = request.form.get('experience')
60
+ try:
61
+ experience = float(experience_str)
62
+ except ValueError:
63
+ return render_template('linear.html', prediction_text=f"Error: Invalid input value for experience: '{experience_str}'. Please enter a valid numerical value.")
64
+
65
+ if position_level in ['1', '2', '3', '4']:
66
+ int_position_level = int(position_level)
67
+ float_experience = float(experience)
68
+ int_features = [int_position_level, float_experience]
69
+ final_features = [np.array(int_features)]
70
+ prediction = linreg.predict(final_features)
71
+
72
+
73
+ int_position_level = job_map.get(int(position_level))
74
+ predicted_salary_f = round(float(prediction.item()), 3)
75
+ predicted_salary = "{:,.3f}".format(predicted_salary_f)
76
+
77
+ return render_template('linear.html', position_level=f'Position: {int_position_level}',experience=f'Experience: {experience}', prediction_text=f'Predicted Salary Rate: ₱{predicted_salary}')
78
+
79
+ else:
80
+ return render_template('linear.html', prediction_text='Error: Invalid input values. Please select a valid position level and enter a numerical value for experience.')
81
+
82
+
83
+ @app.route('/predictknn', methods=['POST'])
84
+ def predictknn():
85
+ experience_str = request.form.get('experience')
86
+ salary_str = request.form.get('salary')
87
+ try:
88
+ experience = float(experience_str)
89
+ salary = float(salary_str)
90
+ except ValueError:
91
+ return render_template('knn.html', prediction_text=f"Error: Invalid input value. Please enter a valid numerical value for both experience and salary.")
92
+
93
+ features = [[experience, salary]]
94
+ prediction = knn_model.predict(features)
95
+ predicted_job_num = int(prediction[0])
96
+ predicted_job = job_map[predicted_job_num]
97
+
98
+ return render_template('knn.html', prediction_text=f'Predicted job: {predicted_job}', experience=f'Experience: {experience}', salary=f'Salary: {salary}')
99
+
100
+ @app.route('/predictnaive', methods=['GET', 'POST'])
101
+ def predictnaive():
102
+ # Get the user's input values
103
+ salary = float(request.form['salary'])
104
+ experience = float(request.form['experience'])
105
+
106
+ try:
107
+ if float(experience) < 0 or float(salary) < 0:
108
+ raise ValueError()
109
+ int_features = [salary, experience]
110
+
111
+ features = np.array(int_features).reshape(1, -1)
112
+ gaussian_prediction = gaussian_nb.predict(features)
113
+ multinomial_prediction = multinomial_nb.predict(features)
114
+ bernoulli_prediction = bernoulli_nb.predict(features)
115
+
116
+ # # Map the predicted job titles to their corresponding string values
117
+ gaussian_prediction = job_map.get(int(gaussian_prediction))
118
+ multinomial_prediction = job_map.get(int(multinomial_prediction))
119
+ bernoulli_prediction = job_map.get(int(bernoulli_prediction))
120
+
121
+
122
+ # Render the results template with the predicted job classification and accuracy scores
123
+ return render_template('naive.html',
124
+ gaussian_prediction=gaussian_prediction,
125
+ multinomial_prediction=multinomial_prediction,
126
+ bernoulli_prediction=bernoulli_prediction,
127
+ salary=salary,
128
+ experience=experience,
129
+ reset=True)
130
+
131
+ except:
132
+ return render_template('naive.html')
133
+
134
+
135
+ @app.route('/predictkm', methods=['GET'])
136
+ def predictkm():
137
+
138
+ # render the HTML template
139
+ return render_template('kmeans.html')
140
+
141
+ # # convert the figure to a base64 string for embedding in the HTML template
142
+ # import io
143
+ # import base64
144
+ # buf = io.BytesIO()
145
+ # fig.savefig(buf, format='png')
146
+ # figdata = base64.b64encode(buf.getbuffer()).decode('utf-8')
147
+
148
+ # # render the HTML template and pass the figure data to it
149
+ # return render_template('kmeans.html', figdata=figdata)
150
+
151
+
152
+ if __name__ == '__main__':
153
+ app.run(debug=True, port=8000)
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ flask==2.2.3
2
+ numpy==1.24.2
3
+ pickle-mixin==1.0.2
4
+ scikit-learn==1.2.2
5
+ gunicorn
6
+ matplotlib
7
+ pandas
static/css/main.css ADDED
@@ -0,0 +1,3098 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
2
+ html {
3
+ -ms-text-size-adjust: 100%;
4
+ -webkit-text-size-adjust: 100%;
5
+ font-family: sans-serif;
6
+ }
7
+
8
+ body {
9
+ margin: 0;
10
+ }
11
+
12
+ article,
13
+ aside,
14
+ details,
15
+ figcaption,
16
+ figure,
17
+ footer,
18
+ header,
19
+ hgroup,
20
+ main,
21
+ menu,
22
+ nav,
23
+ section,
24
+ summary {
25
+ display: block;
26
+ }
27
+
28
+ audio,
29
+ canvas,
30
+ progress,
31
+ video {
32
+ vertical-align: baseline;
33
+ display: inline-block;
34
+ }
35
+
36
+ audio:not([controls]) {
37
+ height: 0;
38
+ display: none;
39
+ }
40
+
41
+ [hidden],
42
+ template {
43
+ display: none;
44
+ }
45
+
46
+ a {
47
+ background-color: rgba(0, 0, 0, 0);
48
+ }
49
+
50
+ a:active,
51
+ a:hover {
52
+ outline: 0;
53
+ }
54
+
55
+ abbr[title] {
56
+ border-bottom: 1px dotted;
57
+ }
58
+
59
+ b,
60
+ strong {
61
+ font-weight: bold;
62
+ }
63
+
64
+ dfn {
65
+ font-style: italic;
66
+ }
67
+
68
+ h1 {
69
+ margin: .67em 0;
70
+ font-size: 2em;
71
+ }
72
+
73
+ mark {
74
+ color: #000;
75
+ background: #ff0;
76
+ }
77
+
78
+ small {
79
+ font-size: 80%;
80
+ }
81
+
82
+ sub,
83
+ sup {
84
+ vertical-align: baseline;
85
+ font-size: 75%;
86
+ line-height: 0;
87
+ position: relative;
88
+ }
89
+
90
+ sup {
91
+ top: -.5em;
92
+ }
93
+
94
+ sub {
95
+ bottom: -.25em;
96
+ }
97
+
98
+ img {
99
+ border: 0;
100
+ }
101
+
102
+ svg:not(:root) {
103
+ overflow: hidden;
104
+ }
105
+
106
+ figure {
107
+ margin: 1em 40px;
108
+ }
109
+
110
+ hr {
111
+ box-sizing: content-box;
112
+ height: 0;
113
+ }
114
+
115
+ pre {
116
+ overflow: auto;
117
+ }
118
+
119
+ code,
120
+ kbd,
121
+ pre,
122
+ samp {
123
+ font-family: monospace;
124
+ font-size: 1em;
125
+ }
126
+
127
+ button,
128
+ input,
129
+ optgroup,
130
+ select,
131
+ textarea {
132
+ color: inherit;
133
+ font: inherit;
134
+ margin: 0;
135
+ }
136
+
137
+ button {
138
+ overflow: visible;
139
+ }
140
+
141
+ button,
142
+ select {
143
+ text-transform: none;
144
+ }
145
+
146
+ button[disabled],
147
+ html input[disabled] {
148
+ cursor: default;
149
+ }
150
+
151
+ button::-moz-focus-inner,
152
+ input::-moz-focus-inner {
153
+ border: 0;
154
+ padding: 0;
155
+ }
156
+
157
+ input {
158
+ line-height: normal;
159
+ }
160
+
161
+ input[type="checkbox"],
162
+ input[type="radio"] {
163
+ box-sizing: border-box;
164
+ padding: 0;
165
+ }
166
+
167
+ input[type="number"]::-webkit-inner-spin-button,
168
+ input[type="number"]::-webkit-outer-spin-button {
169
+ height: auto;
170
+ }
171
+
172
+ input[type="search"]::-webkit-search-cancel-button,
173
+ input[type="search"]::-webkit-search-decoration {
174
+ -webkit-appearance: none;
175
+ }
176
+
177
+ fieldset {
178
+ border: 1px solid silver;
179
+ margin: 0 2px;
180
+ padding: .35em .625em .75em;
181
+ }
182
+
183
+ legend {
184
+ border: 0;
185
+ padding: 0;
186
+ }
187
+
188
+ textarea {
189
+ overflow: auto;
190
+ }
191
+
192
+ optgroup {
193
+ font-weight: bold;
194
+ }
195
+
196
+ table {
197
+ border-collapse: collapse;
198
+ border-spacing: 0;
199
+ }
200
+
201
+ td,
202
+ th {
203
+ padding: 0;
204
+ }
205
+
206
+ @font-face {
207
+ font-family: webflow-icons;
208
+ src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");
209
+ font-weight: normal;
210
+ font-style: normal;
211
+ }
212
+
213
+ [class^="w-icon-"],
214
+ [class*=" w-icon-"] {
215
+ font-variant: normal;
216
+ text-transform: none;
217
+ -webkit-font-smoothing: antialiased;
218
+ -moz-osx-font-smoothing: grayscale;
219
+ font-style: normal;
220
+ font-weight: normal;
221
+ line-height: 1;
222
+ font-family: webflow-icons !important;
223
+ }
224
+
225
+ .w-icon-slider-right:before {
226
+ content: "";
227
+ }
228
+
229
+ .w-icon-slider-left:before {
230
+ content: "";
231
+ }
232
+
233
+ .w-icon-nav-menu:before {
234
+ content: "";
235
+ }
236
+
237
+ .w-icon-arrow-down:before,
238
+ .w-icon-dropdown-toggle:before {
239
+ content: "";
240
+ }
241
+
242
+ .w-icon-file-upload-remove:before {
243
+ content: "";
244
+ }
245
+
246
+ .w-icon-file-upload-icon:before {
247
+ content: "";
248
+ }
249
+
250
+ * {
251
+ box-sizing: border-box;
252
+ }
253
+
254
+ html {
255
+ height: 100%;
256
+ }
257
+
258
+ body {
259
+ min-height: 100%;
260
+ color: #333;
261
+ background-color: #fff;
262
+ margin: 0;
263
+ font-family: Arial, sans-serif;
264
+ font-size: 14px;
265
+ line-height: 20px;
266
+ }
267
+
268
+ img {
269
+ max-width: 100%;
270
+ vertical-align: middle;
271
+ display: inline-block;
272
+ }
273
+
274
+ html.w-mod-touch * {
275
+ background-attachment: scroll !important;
276
+ }
277
+
278
+ .w-block {
279
+ display: block;
280
+ }
281
+
282
+ .w-inline-block {
283
+ max-width: 100%;
284
+ display: inline-block;
285
+ }
286
+
287
+ .w-clearfix:before,
288
+ .w-clearfix:after {
289
+ content: " ";
290
+ grid-area: 1 / 1 / 2 / 2;
291
+ display: table;
292
+ }
293
+
294
+ .w-clearfix:after {
295
+ clear: both;
296
+ }
297
+
298
+ .w-hidden {
299
+ display: none;
300
+ }
301
+
302
+ .w-button {
303
+ color: #fff;
304
+ line-height: inherit;
305
+ cursor: pointer;
306
+ background-color: #3898ec;
307
+ border: 0;
308
+ border-radius: 0;
309
+ padding: 9px 15px;
310
+ text-decoration: none;
311
+ display: inline-block;
312
+ }
313
+
314
+ html[data-w-dynpage] [data-w-cloak] {
315
+ color: rgba(0, 0, 0, 0) !important;
316
+ }
317
+
318
+ h1,
319
+ h2,
320
+ h3,
321
+ h4,
322
+ h5,
323
+ h6 {
324
+ margin-bottom: 10px;
325
+ font-weight: bold;
326
+ }
327
+
328
+ h1 {
329
+ margin-top: 20px;
330
+ font-size: 38px;
331
+ line-height: 44px;
332
+ }
333
+
334
+ h2 {
335
+ margin-top: 20px;
336
+ font-size: 32px;
337
+ line-height: 36px;
338
+ }
339
+
340
+ h3 {
341
+ margin-top: 20px;
342
+ font-size: 24px;
343
+ line-height: 30px;
344
+ }
345
+
346
+ h4 {
347
+ margin-top: 10px;
348
+ font-size: 18px;
349
+ line-height: 24px;
350
+ }
351
+
352
+ h5 {
353
+ margin-top: 10px;
354
+ font-size: 14px;
355
+ line-height: 20px;
356
+ }
357
+
358
+ h6 {
359
+ margin-top: 10px;
360
+ font-size: 12px;
361
+ line-height: 18px;
362
+ }
363
+
364
+ p {
365
+ margin-top: 0;
366
+ margin-bottom: 10px;
367
+ }
368
+
369
+ blockquote {
370
+ border-left: 5px solid #e2e2e2;
371
+ margin: 0 0 10px;
372
+ padding: 10px 20px;
373
+ font-size: 18px;
374
+ line-height: 22px;
375
+ }
376
+
377
+ figure {
378
+ margin: 0 0 10px;
379
+ }
380
+
381
+ figcaption {
382
+ text-align: center;
383
+ margin-top: 5px;
384
+ }
385
+
386
+ ul,
387
+ ol {
388
+ margin-top: 0;
389
+ margin-bottom: 10px;
390
+ padding-left: 40px;
391
+ }
392
+
393
+ .w-list-unstyled {
394
+ padding-left: 0;
395
+ list-style: none;
396
+ }
397
+
398
+ .w-embed:before,
399
+ .w-embed:after {
400
+ content: " ";
401
+ grid-area: 1 / 1 / 2 / 2;
402
+ display: table;
403
+ }
404
+
405
+ .w-embed:after {
406
+ clear: both;
407
+ }
408
+
409
+ .w-video {
410
+ width: 100%;
411
+ padding: 0;
412
+ position: relative;
413
+ }
414
+
415
+ .w-video iframe,
416
+ .w-video object,
417
+ .w-video embed {
418
+ width: 100%;
419
+ height: 100%;
420
+ border: none;
421
+ position: absolute;
422
+ top: 0;
423
+ left: 0;
424
+ }
425
+
426
+ fieldset {
427
+ border: 0;
428
+ margin: 0;
429
+ padding: 0;
430
+ }
431
+
432
+ button,
433
+ [type="button"],
434
+ [type="reset"] {
435
+ cursor: pointer;
436
+ border: 0;
437
+ }
438
+
439
+ .w-form {
440
+ margin: 0 0 15px;
441
+ }
442
+
443
+ .w-form-done {
444
+ text-align: center;
445
+ background-color: #ddd;
446
+ padding: 20px;
447
+ display: none;
448
+ }
449
+
450
+ .w-form-fail {
451
+ background-color: #ffdede;
452
+ margin-top: 10px;
453
+ padding: 10px;
454
+ display: none;
455
+ }
456
+
457
+ label {
458
+ margin-bottom: 5px;
459
+ font-weight: bold;
460
+ display: block;
461
+ }
462
+
463
+ .w-input,
464
+ .w-select {
465
+ width: 100%;
466
+ height: 38px;
467
+ color: #333;
468
+ background-color: #fff;
469
+ border: 1px solid #ccc;
470
+ margin-bottom: 10px;
471
+ padding: 8px 12px;
472
+ font-size: 14px;
473
+ line-height: 1.42857;
474
+ display: block;
475
+ }
476
+
477
+ .w-input:-moz-placeholder,
478
+ .w-select:-moz-placeholder {
479
+ color: #999;
480
+ }
481
+
482
+ .w-input::-moz-placeholder,
483
+ .w-select::-moz-placeholder {
484
+ color: #999;
485
+ opacity: 1;
486
+ }
487
+
488
+ .w-input:-ms-input-placeholder,
489
+ .w-select:-ms-input-placeholder {
490
+ color: #999;
491
+ }
492
+
493
+ .w-input::-webkit-input-placeholder,
494
+ .w-select::-webkit-input-placeholder {
495
+ color: #999;
496
+ }
497
+
498
+ .w-input:focus,
499
+ .w-select:focus {
500
+ border-color: #3898ec;
501
+ outline: 0;
502
+ }
503
+
504
+ .w-input[disabled],
505
+ .w-select[disabled],
506
+ .w-input[readonly],
507
+ .w-select[readonly],
508
+ fieldset[disabled] .w-input,
509
+ fieldset[disabled] .w-select {
510
+ cursor: not-allowed;
511
+ }
512
+
513
+ .w-input[disabled]:not(.w-input-disabled),
514
+ .w-select[disabled]:not(.w-input-disabled),
515
+ .w-input[readonly],
516
+ .w-select[readonly],
517
+ fieldset[disabled]:not(.w-input-disabled) .w-input,
518
+ fieldset[disabled]:not(.w-input-disabled) .w-select {
519
+ background-color: #eee;
520
+ }
521
+
522
+ textarea.w-input,
523
+ textarea.w-select {
524
+ height: auto;
525
+ }
526
+
527
+ .w-select {
528
+ background-color: #f3f3f3;
529
+ }
530
+
531
+ .w-select[multiple] {
532
+ height: auto;
533
+ }
534
+
535
+ .w-form-label {
536
+ cursor: pointer;
537
+ margin-bottom: 0;
538
+ font-weight: normal;
539
+ display: inline-block;
540
+ }
541
+
542
+ .w-radio {
543
+ margin-bottom: 5px;
544
+ padding-left: 20px;
545
+ display: block;
546
+ }
547
+
548
+ .w-radio:before,
549
+ .w-radio:after {
550
+ content: " ";
551
+ grid-area: 1 / 1 / 2 / 2;
552
+ display: table;
553
+ }
554
+
555
+ .w-radio:after {
556
+ clear: both;
557
+ }
558
+
559
+ .w-radio-input {
560
+ margin: 4px 0 0;
561
+ margin-top: 1px \9;
562
+ float: left;
563
+ margin-top: 3px;
564
+ margin-left: -20px;
565
+ line-height: normal;
566
+ }
567
+
568
+ .w-file-upload {
569
+ margin-bottom: 10px;
570
+ display: block;
571
+ }
572
+
573
+ .w-file-upload-input {
574
+ width: .1px;
575
+ height: .1px;
576
+ opacity: 0;
577
+ z-index: -100;
578
+ position: absolute;
579
+ overflow: hidden;
580
+ }
581
+
582
+ .w-file-upload-default,
583
+ .w-file-upload-uploading,
584
+ .w-file-upload-success {
585
+ color: #333;
586
+ display: inline-block;
587
+ }
588
+
589
+ .w-file-upload-error {
590
+ margin-top: 10px;
591
+ display: block;
592
+ }
593
+
594
+ .w-file-upload-default.w-hidden,
595
+ .w-file-upload-uploading.w-hidden,
596
+ .w-file-upload-error.w-hidden,
597
+ .w-file-upload-success.w-hidden {
598
+ display: none;
599
+ }
600
+
601
+ .w-file-upload-uploading-btn {
602
+ cursor: pointer;
603
+ background-color: #fafafa;
604
+ border: 1px solid #ccc;
605
+ margin: 0;
606
+ padding: 8px 12px;
607
+ font-size: 14px;
608
+ font-weight: normal;
609
+ display: flex;
610
+ }
611
+
612
+ .w-file-upload-file {
613
+ background-color: #fafafa;
614
+ border: 1px solid #ccc;
615
+ flex-grow: 1;
616
+ justify-content: space-between;
617
+ margin: 0;
618
+ padding: 8px 9px 8px 11px;
619
+ display: flex;
620
+ }
621
+
622
+ .w-file-upload-file-name {
623
+ font-size: 14px;
624
+ font-weight: normal;
625
+ display: block;
626
+ }
627
+
628
+ .w-file-remove-link {
629
+ width: auto;
630
+ height: auto;
631
+ cursor: pointer;
632
+ margin-top: 3px;
633
+ margin-left: 10px;
634
+ padding: 3px;
635
+ display: block;
636
+ }
637
+
638
+ .w-icon-file-upload-remove {
639
+ margin: auto;
640
+ font-size: 10px;
641
+ }
642
+
643
+ .w-file-upload-error-msg {
644
+ color: #ea384c;
645
+ padding: 2px 0;
646
+ display: inline-block;
647
+ }
648
+
649
+ .w-file-upload-info {
650
+ padding: 0 12px;
651
+ line-height: 38px;
652
+ display: inline-block;
653
+ }
654
+
655
+ .w-file-upload-label {
656
+ cursor: pointer;
657
+ background-color: #fafafa;
658
+ border: 1px solid #ccc;
659
+ margin: 0;
660
+ padding: 8px 12px;
661
+ font-size: 14px;
662
+ font-weight: normal;
663
+ display: inline-block;
664
+ }
665
+
666
+ .w-icon-file-upload-icon,
667
+ .w-icon-file-upload-uploading {
668
+ width: 20px;
669
+ margin-right: 8px;
670
+ display: inline-block;
671
+ }
672
+
673
+ .w-icon-file-upload-uploading {
674
+ height: 20px;
675
+ }
676
+
677
+ .w-container {
678
+ max-width: 940px;
679
+ margin-left: auto;
680
+ margin-right: auto;
681
+ }
682
+
683
+ .w-container:before,
684
+ .w-container:after {
685
+ content: " ";
686
+ grid-area: 1 / 1 / 2 / 2;
687
+ display: table;
688
+ }
689
+
690
+ .w-container:after {
691
+ clear: both;
692
+ }
693
+
694
+ .w-container .w-row {
695
+ margin-left: -10px;
696
+ margin-right: -10px;
697
+ }
698
+
699
+ .w-row:before,
700
+ .w-row:after {
701
+ content: " ";
702
+ grid-area: 1 / 1 / 2 / 2;
703
+ display: table;
704
+ }
705
+
706
+ .w-row:after {
707
+ clear: both;
708
+ }
709
+
710
+ .w-row .w-row {
711
+ margin-left: 0;
712
+ margin-right: 0;
713
+ }
714
+
715
+ .w-col {
716
+ float: left;
717
+ width: 100%;
718
+ min-height: 1px;
719
+ padding-left: 10px;
720
+ padding-right: 10px;
721
+ position: relative;
722
+ }
723
+
724
+ .w-col .w-col {
725
+ padding-left: 0;
726
+ padding-right: 0;
727
+ }
728
+
729
+ .w-col-1 {
730
+ width: 8.33333%;
731
+ }
732
+
733
+ .w-col-2 {
734
+ width: 16.6667%;
735
+ }
736
+
737
+ .w-col-3 {
738
+ width: 25%;
739
+ }
740
+
741
+ .w-col-4 {
742
+ width: 33.3333%;
743
+ }
744
+
745
+ .w-col-5 {
746
+ width: 41.6667%;
747
+ }
748
+
749
+ .w-col-6 {
750
+ width: 50%;
751
+ }
752
+
753
+ .w-col-7 {
754
+ width: 58.3333%;
755
+ }
756
+
757
+ .w-col-8 {
758
+ width: 66.6667%;
759
+ }
760
+
761
+ .w-col-9 {
762
+ width: 75%;
763
+ }
764
+
765
+ .w-col-10 {
766
+ width: 83.3333%;
767
+ }
768
+
769
+ .w-col-11 {
770
+ width: 91.6667%;
771
+ }
772
+
773
+ .w-col-12 {
774
+ width: 100%;
775
+ }
776
+
777
+ .w-hidden-main {
778
+ display: none !important;
779
+ }
780
+
781
+ @media screen and (max-width: 991px) {
782
+ .w-container {
783
+ max-width: 728px;
784
+ }
785
+ .w-hidden-main {
786
+ display: inherit !important;
787
+ }
788
+ .w-hidden-medium {
789
+ display: none !important;
790
+ }
791
+ .w-col-medium-1 {
792
+ width: 8.33333%;
793
+ }
794
+ .w-col-medium-2 {
795
+ width: 16.6667%;
796
+ }
797
+ .w-col-medium-3 {
798
+ width: 25%;
799
+ }
800
+ .w-col-medium-4 {
801
+ width: 33.3333%;
802
+ }
803
+ .w-col-medium-5 {
804
+ width: 41.6667%;
805
+ }
806
+ .w-col-medium-6 {
807
+ width: 50%;
808
+ }
809
+ .w-col-medium-7 {
810
+ width: 58.3333%;
811
+ }
812
+ .w-col-medium-8 {
813
+ width: 66.6667%;
814
+ }
815
+ .w-col-medium-9 {
816
+ width: 75%;
817
+ }
818
+ .w-col-medium-10 {
819
+ width: 83.3333%;
820
+ }
821
+ .w-col-medium-11 {
822
+ width: 91.6667%;
823
+ }
824
+ .w-col-medium-12 {
825
+ width: 100%;
826
+ }
827
+ .w-col-stack {
828
+ width: 100%;
829
+ left: auto;
830
+ right: auto;
831
+ }
832
+ }
833
+
834
+ @media screen and (max-width: 767px) {
835
+ .w-hidden-main,
836
+ .w-hidden-medium {
837
+ display: inherit !important;
838
+ }
839
+ .w-hidden-small {
840
+ display: none !important;
841
+ }
842
+ .w-row,
843
+ .w-container .w-row {
844
+ margin-left: 0;
845
+ margin-right: 0;
846
+ }
847
+ .w-col {
848
+ width: 100%;
849
+ left: auto;
850
+ right: auto;
851
+ }
852
+ .w-col-small-1 {
853
+ width: 8.33333%;
854
+ }
855
+ .w-col-small-2 {
856
+ width: 16.6667%;
857
+ }
858
+ .w-col-small-3 {
859
+ width: 25%;
860
+ }
861
+ .w-col-small-4 {
862
+ width: 33.3333%;
863
+ }
864
+ .w-col-small-5 {
865
+ width: 41.6667%;
866
+ }
867
+ .w-col-small-6 {
868
+ width: 50%;
869
+ }
870
+ .w-col-small-7 {
871
+ width: 58.3333%;
872
+ }
873
+ .w-col-small-8 {
874
+ width: 66.6667%;
875
+ }
876
+ .w-col-small-9 {
877
+ width: 75%;
878
+ }
879
+ .w-col-small-10 {
880
+ width: 83.3333%;
881
+ }
882
+ .w-col-small-11 {
883
+ width: 91.6667%;
884
+ }
885
+ .w-col-small-12 {
886
+ width: 100%;
887
+ }
888
+ }
889
+
890
+ @media screen and (max-width: 479px) {
891
+ .w-container {
892
+ max-width: none;
893
+ }
894
+ .w-hidden-main,
895
+ .w-hidden-medium,
896
+ .w-hidden-small {
897
+ display: inherit !important;
898
+ }
899
+ .w-hidden-tiny {
900
+ display: none !important;
901
+ }
902
+ .w-col {
903
+ width: 100%;
904
+ }
905
+ .w-col-tiny-1 {
906
+ width: 8.33333%;
907
+ }
908
+ .w-col-tiny-2 {
909
+ width: 16.6667%;
910
+ }
911
+ .w-col-tiny-3 {
912
+ width: 25%;
913
+ }
914
+ .w-col-tiny-4 {
915
+ width: 33.3333%;
916
+ }
917
+ .w-col-tiny-5 {
918
+ width: 41.6667%;
919
+ }
920
+ .w-col-tiny-6 {
921
+ width: 50%;
922
+ }
923
+ .w-col-tiny-7 {
924
+ width: 58.3333%;
925
+ }
926
+ .w-col-tiny-8 {
927
+ width: 66.6667%;
928
+ }
929
+ .w-col-tiny-9 {
930
+ width: 75%;
931
+ }
932
+ .w-col-tiny-10 {
933
+ width: 83.3333%;
934
+ }
935
+ .w-col-tiny-11 {
936
+ width: 91.6667%;
937
+ }
938
+ .w-col-tiny-12 {
939
+ width: 100%;
940
+ }
941
+ }
942
+
943
+ .w-widget {
944
+ position: relative;
945
+ }
946
+
947
+ .w-widget-map {
948
+ width: 100%;
949
+ height: 400px;
950
+ }
951
+
952
+ .w-widget-map label {
953
+ width: auto;
954
+ display: inline;
955
+ }
956
+
957
+ .w-widget-map img {
958
+ max-width: inherit;
959
+ }
960
+
961
+ .w-widget-map .gm-style-iw {
962
+ text-align: center;
963
+ }
964
+
965
+ .w-widget-map .gm-style-iw>button {
966
+ display: none !important;
967
+ }
968
+
969
+ .w-widget-twitter {
970
+ overflow: hidden;
971
+ }
972
+
973
+ .w-widget-twitter-count-shim {
974
+ vertical-align: top;
975
+ width: 28px;
976
+ height: 20px;
977
+ text-align: center;
978
+ background: #fff;
979
+ border: 1px solid #758696;
980
+ border-radius: 3px;
981
+ display: inline-block;
982
+ position: relative;
983
+ }
984
+
985
+ .w-widget-twitter-count-shim * {
986
+ pointer-events: none;
987
+ -webkit-user-select: none;
988
+ -ms-user-select: none;
989
+ user-select: none;
990
+ }
991
+
992
+ .w-widget-twitter-count-shim .w-widget-twitter-count-inner {
993
+ text-align: center;
994
+ color: #999;
995
+ font-family: serif;
996
+ font-size: 15px;
997
+ line-height: 12px;
998
+ position: relative;
999
+ }
1000
+
1001
+ .w-widget-twitter-count-shim .w-widget-twitter-count-clear {
1002
+ display: block;
1003
+ position: relative;
1004
+ }
1005
+
1006
+ .w-widget-twitter-count-shim.w--large {
1007
+ width: 36px;
1008
+ height: 28px;
1009
+ }
1010
+
1011
+ .w-widget-twitter-count-shim.w--large .w-widget-twitter-count-inner {
1012
+ font-size: 18px;
1013
+ line-height: 18px;
1014
+ }
1015
+
1016
+ .w-widget-twitter-count-shim:not(.w--vertical) {
1017
+ margin-left: 5px;
1018
+ margin-right: 8px;
1019
+ }
1020
+
1021
+ .w-widget-twitter-count-shim:not(.w--vertical).w--large {
1022
+ margin-left: 6px;
1023
+ }
1024
+
1025
+ .w-widget-twitter-count-shim:not(.w--vertical):before,
1026
+ .w-widget-twitter-count-shim:not(.w--vertical):after {
1027
+ content: " ";
1028
+ height: 0;
1029
+ width: 0;
1030
+ pointer-events: none;
1031
+ border: solid rgba(0, 0, 0, 0);
1032
+ position: absolute;
1033
+ top: 50%;
1034
+ left: 0;
1035
+ }
1036
+
1037
+ .w-widget-twitter-count-shim:not(.w--vertical):before {
1038
+ border-width: 4px;
1039
+ border-color: rgba(117, 134, 150, 0) #5d6c7b rgba(117, 134, 150, 0) rgba(117, 134, 150, 0);
1040
+ margin-top: -4px;
1041
+ margin-left: -9px;
1042
+ }
1043
+
1044
+ .w-widget-twitter-count-shim:not(.w--vertical).w--large:before {
1045
+ border-width: 5px;
1046
+ margin-top: -5px;
1047
+ margin-left: -10px;
1048
+ }
1049
+
1050
+ .w-widget-twitter-count-shim:not(.w--vertical):after {
1051
+ border-width: 4px;
1052
+ border-color: rgba(255, 255, 255, 0) #fff rgba(255, 255, 255, 0) rgba(255, 255, 255, 0);
1053
+ margin-top: -4px;
1054
+ margin-left: -8px;
1055
+ }
1056
+
1057
+ .w-widget-twitter-count-shim:not(.w--vertical).w--large:after {
1058
+ border-width: 5px;
1059
+ margin-top: -5px;
1060
+ margin-left: -9px;
1061
+ }
1062
+
1063
+ .w-widget-twitter-count-shim.w--vertical {
1064
+ width: 61px;
1065
+ height: 33px;
1066
+ margin-bottom: 8px;
1067
+ }
1068
+
1069
+ .w-widget-twitter-count-shim.w--vertical:before,
1070
+ .w-widget-twitter-count-shim.w--vertical:after {
1071
+ content: " ";
1072
+ height: 0;
1073
+ width: 0;
1074
+ pointer-events: none;
1075
+ border: solid rgba(0, 0, 0, 0);
1076
+ position: absolute;
1077
+ top: 100%;
1078
+ left: 50%;
1079
+ }
1080
+
1081
+ .w-widget-twitter-count-shim.w--vertical:before {
1082
+ border-width: 5px;
1083
+ border-color: #5d6c7b rgba(117, 134, 150, 0) rgba(117, 134, 150, 0);
1084
+ margin-left: -5px;
1085
+ }
1086
+
1087
+ .w-widget-twitter-count-shim.w--vertical:after {
1088
+ border-width: 4px;
1089
+ border-color: #fff rgba(255, 255, 255, 0) rgba(255, 255, 255, 0);
1090
+ margin-left: -4px;
1091
+ }
1092
+
1093
+ .w-widget-twitter-count-shim.w--vertical .w-widget-twitter-count-inner {
1094
+ font-size: 18px;
1095
+ line-height: 22px;
1096
+ }
1097
+
1098
+ .w-widget-twitter-count-shim.w--vertical.w--large {
1099
+ width: 76px;
1100
+ }
1101
+
1102
+ .w-background-video {
1103
+ height: 500px;
1104
+ color: #fff;
1105
+ position: relative;
1106
+ overflow: hidden;
1107
+ }
1108
+
1109
+ .w-background-video>video {
1110
+ width: 100%;
1111
+ height: 100%;
1112
+ object-fit: cover;
1113
+ z-index: -100;
1114
+ background-position: 50%;
1115
+ background-size: cover;
1116
+ margin: auto;
1117
+ position: absolute;
1118
+ top: -100%;
1119
+ bottom: -100%;
1120
+ left: -100%;
1121
+ right: -100%;
1122
+ }
1123
+
1124
+ .w-background-video>video::-webkit-media-controls-start-playback-button {
1125
+ -webkit-appearance: none;
1126
+ display: none !important;
1127
+ }
1128
+
1129
+ .w-background-video--control {
1130
+ background-color: rgba(0, 0, 0, 0);
1131
+ padding: 0;
1132
+ position: absolute;
1133
+ bottom: 1em;
1134
+ right: 1em;
1135
+ }
1136
+
1137
+ .w-background-video--control>[hidden] {
1138
+ display: none !important;
1139
+ }
1140
+
1141
+ .w-slider {
1142
+ height: 300px;
1143
+ text-align: center;
1144
+ clear: both;
1145
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1146
+ background: #ddd;
1147
+ position: relative;
1148
+ }
1149
+
1150
+ .w-slider-mask {
1151
+ z-index: 1;
1152
+ height: 100%;
1153
+ white-space: nowrap;
1154
+ display: block;
1155
+ position: relative;
1156
+ left: 0;
1157
+ right: 0;
1158
+ overflow: hidden;
1159
+ }
1160
+
1161
+ .w-slide {
1162
+ vertical-align: top;
1163
+ width: 100%;
1164
+ height: 100%;
1165
+ white-space: normal;
1166
+ text-align: left;
1167
+ display: inline-block;
1168
+ position: relative;
1169
+ }
1170
+
1171
+ .w-slider-nav {
1172
+ z-index: 2;
1173
+ height: 40px;
1174
+ text-align: center;
1175
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1176
+ margin: auto;
1177
+ padding-top: 10px;
1178
+ position: absolute;
1179
+ top: auto;
1180
+ bottom: 0;
1181
+ left: 0;
1182
+ right: 0;
1183
+ }
1184
+
1185
+ .w-slider-nav.w-round>div {
1186
+ border-radius: 100%;
1187
+ }
1188
+
1189
+ .w-slider-nav.w-num>div {
1190
+ width: auto;
1191
+ height: auto;
1192
+ font-size: inherit;
1193
+ line-height: inherit;
1194
+ padding: .2em .5em;
1195
+ }
1196
+
1197
+ .w-slider-nav.w-shadow>div {
1198
+ box-shadow: 0 0 3px rgba(51, 51, 51, .4);
1199
+ }
1200
+
1201
+ .w-slider-nav-invert {
1202
+ color: #fff;
1203
+ }
1204
+
1205
+ .w-slider-nav-invert>div {
1206
+ background-color: rgba(34, 34, 34, .4);
1207
+ }
1208
+
1209
+ .w-slider-nav-invert>div.w-active {
1210
+ background-color: #222;
1211
+ }
1212
+
1213
+ .w-slider-dot {
1214
+ width: 1em;
1215
+ height: 1em;
1216
+ cursor: pointer;
1217
+ background-color: rgba(255, 255, 255, .4);
1218
+ margin: 0 3px .5em;
1219
+ transition: background-color .1s, color .1s;
1220
+ display: inline-block;
1221
+ position: relative;
1222
+ }
1223
+
1224
+ .w-slider-dot.w-active {
1225
+ background-color: #fff;
1226
+ }
1227
+
1228
+ .w-slider-dot:focus {
1229
+ outline: none;
1230
+ box-shadow: 0 0 0 2px #fff;
1231
+ }
1232
+
1233
+ .w-slider-dot:focus.w-active {
1234
+ box-shadow: none;
1235
+ }
1236
+
1237
+ .w-slider-arrow-left,
1238
+ .w-slider-arrow-right {
1239
+ width: 80px;
1240
+ cursor: pointer;
1241
+ color: #fff;
1242
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1243
+ -webkit-user-select: none;
1244
+ -ms-user-select: none;
1245
+ user-select: none;
1246
+ margin: auto;
1247
+ font-size: 40px;
1248
+ position: absolute;
1249
+ top: 0;
1250
+ bottom: 0;
1251
+ left: 0;
1252
+ right: 0;
1253
+ overflow: hidden;
1254
+ }
1255
+
1256
+ .w-slider-arrow-left [class^="w-icon-"],
1257
+ .w-slider-arrow-right [class^="w-icon-"],
1258
+ .w-slider-arrow-left [class*=" w-icon-"],
1259
+ .w-slider-arrow-right [class*=" w-icon-"] {
1260
+ position: absolute;
1261
+ }
1262
+
1263
+ .w-slider-arrow-left:focus,
1264
+ .w-slider-arrow-right:focus {
1265
+ outline: 0;
1266
+ }
1267
+
1268
+ .w-slider-arrow-left {
1269
+ z-index: 3;
1270
+ right: auto;
1271
+ }
1272
+
1273
+ .w-slider-arrow-right {
1274
+ z-index: 4;
1275
+ left: auto;
1276
+ }
1277
+
1278
+ .w-icon-slider-left,
1279
+ .w-icon-slider-right {
1280
+ width: 1em;
1281
+ height: 1em;
1282
+ margin: auto;
1283
+ top: 0;
1284
+ bottom: 0;
1285
+ left: 0;
1286
+ right: 0;
1287
+ }
1288
+
1289
+ .w-slider-aria-label {
1290
+ clip: rect(0 0 0 0);
1291
+ height: 1px;
1292
+ width: 1px;
1293
+ border: 0;
1294
+ margin: -1px;
1295
+ padding: 0;
1296
+ position: absolute;
1297
+ overflow: hidden;
1298
+ }
1299
+
1300
+ .w-slider-force-show {
1301
+ display: block !important;
1302
+ }
1303
+
1304
+ .w-dropdown {
1305
+ text-align: left;
1306
+ z-index: 900;
1307
+ margin-left: auto;
1308
+ margin-right: auto;
1309
+ display: inline-block;
1310
+ position: relative;
1311
+ }
1312
+
1313
+ .w-dropdown-btn,
1314
+ .w-dropdown-toggle,
1315
+ .w-dropdown-link {
1316
+ vertical-align: top;
1317
+ color: #222;
1318
+ text-align: left;
1319
+ white-space: nowrap;
1320
+ margin-left: auto;
1321
+ margin-right: auto;
1322
+ padding: 20px;
1323
+ text-decoration: none;
1324
+ position: relative;
1325
+ }
1326
+
1327
+ .w-dropdown-toggle {
1328
+ -webkit-user-select: none;
1329
+ -ms-user-select: none;
1330
+ user-select: none;
1331
+ cursor: pointer;
1332
+ padding-right: 40px;
1333
+ display: inline-block;
1334
+ }
1335
+
1336
+ .w-dropdown-toggle:focus {
1337
+ outline: 0;
1338
+ }
1339
+
1340
+ .w-icon-dropdown-toggle {
1341
+ width: 1em;
1342
+ height: 1em;
1343
+ margin: auto 20px auto auto;
1344
+ position: absolute;
1345
+ top: 0;
1346
+ bottom: 0;
1347
+ right: 0;
1348
+ }
1349
+
1350
+ .w-dropdown-list {
1351
+ min-width: 100%;
1352
+ background: #ddd;
1353
+ display: none;
1354
+ position: absolute;
1355
+ }
1356
+
1357
+ .w-dropdown-list.w--open {
1358
+ display: block;
1359
+ }
1360
+
1361
+ .w-dropdown-link {
1362
+ color: #222;
1363
+ padding: 10px 20px;
1364
+ display: block;
1365
+ }
1366
+
1367
+ .w-dropdown-link.w--current {
1368
+ color: #0082f3;
1369
+ }
1370
+
1371
+ .w-dropdown-link:focus {
1372
+ outline: 0;
1373
+ }
1374
+
1375
+ @media screen and (max-width: 767px) {
1376
+ .w-nav-brand {
1377
+ padding-left: 10px;
1378
+ }
1379
+ }
1380
+
1381
+ .w-lightbox-backdrop {
1382
+ cursor: auto;
1383
+ letter-spacing: normal;
1384
+ text-indent: 0;
1385
+ text-shadow: none;
1386
+ text-transform: none;
1387
+ visibility: visible;
1388
+ white-space: normal;
1389
+ word-break: normal;
1390
+ word-spacing: normal;
1391
+ word-wrap: normal;
1392
+ color: #fff;
1393
+ text-align: center;
1394
+ z-index: 2000;
1395
+ opacity: 0;
1396
+ -webkit-tap-highlight-color: transparent;
1397
+ background: rgba(0, 0, 0, .9);
1398
+ outline: 0;
1399
+ font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif;
1400
+ font-size: 17px;
1401
+ font-style: normal;
1402
+ font-weight: 300;
1403
+ line-height: 1.2;
1404
+ list-style: disc;
1405
+ position: fixed;
1406
+ top: 0;
1407
+ bottom: 0;
1408
+ left: 0;
1409
+ right: 0;
1410
+ }
1411
+
1412
+ .w-lightbox-backdrop,
1413
+ .w-lightbox-container {
1414
+ height: 100%;
1415
+ -webkit-overflow-scrolling: touch;
1416
+ overflow: auto;
1417
+ }
1418
+
1419
+ .w-lightbox-content {
1420
+ height: 100vh;
1421
+ position: relative;
1422
+ overflow: hidden;
1423
+ }
1424
+
1425
+ .w-lightbox-view {
1426
+ width: 100vw;
1427
+ height: 100vh;
1428
+ opacity: 0;
1429
+ position: absolute;
1430
+ }
1431
+
1432
+ .w-lightbox-view:before {
1433
+ content: "";
1434
+ height: 100vh;
1435
+ }
1436
+
1437
+ .w-lightbox-group,
1438
+ .w-lightbox-group .w-lightbox-view,
1439
+ .w-lightbox-group .w-lightbox-view:before {
1440
+ height: 86vh;
1441
+ }
1442
+
1443
+ .w-lightbox-frame,
1444
+ .w-lightbox-view:before {
1445
+ vertical-align: middle;
1446
+ display: inline-block;
1447
+ }
1448
+
1449
+ .w-lightbox-figure {
1450
+ margin: 0;
1451
+ position: relative;
1452
+ }
1453
+
1454
+ .w-lightbox-group .w-lightbox-figure {
1455
+ cursor: pointer;
1456
+ }
1457
+
1458
+ .w-lightbox-img {
1459
+ width: auto;
1460
+ height: auto;
1461
+ max-width: none;
1462
+ }
1463
+
1464
+ .w-lightbox-image {
1465
+ float: none;
1466
+ max-width: 100vw;
1467
+ max-height: 100vh;
1468
+ display: block;
1469
+ }
1470
+
1471
+ .w-lightbox-group .w-lightbox-image {
1472
+ max-height: 86vh;
1473
+ }
1474
+
1475
+ .w-lightbox-caption {
1476
+ text-align: left;
1477
+ text-overflow: ellipsis;
1478
+ white-space: nowrap;
1479
+ background: rgba(0, 0, 0, .4);
1480
+ padding: .5em 1em;
1481
+ position: absolute;
1482
+ bottom: 0;
1483
+ left: 0;
1484
+ right: 0;
1485
+ overflow: hidden;
1486
+ }
1487
+
1488
+ .w-lightbox-embed {
1489
+ width: 100%;
1490
+ height: 100%;
1491
+ position: absolute;
1492
+ top: 0;
1493
+ bottom: 0;
1494
+ left: 0;
1495
+ right: 0;
1496
+ }
1497
+
1498
+ .w-lightbox-control {
1499
+ width: 4em;
1500
+ cursor: pointer;
1501
+ background-position: center;
1502
+ background-repeat: no-repeat;
1503
+ background-size: 24px;
1504
+ transition: all .3s;
1505
+ position: absolute;
1506
+ top: 0;
1507
+ }
1508
+
1509
+ .w-lightbox-left {
1510
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==");
1511
+ display: none;
1512
+ bottom: 0;
1513
+ left: 0;
1514
+ }
1515
+
1516
+ .w-lightbox-right {
1517
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+");
1518
+ display: none;
1519
+ bottom: 0;
1520
+ right: 0;
1521
+ }
1522
+
1523
+ .w-lightbox-close {
1524
+ height: 2.6em;
1525
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4=");
1526
+ background-size: 18px;
1527
+ right: 0;
1528
+ }
1529
+
1530
+ .w-lightbox-strip {
1531
+ white-space: nowrap;
1532
+ padding: 0 1vh;
1533
+ line-height: 0;
1534
+ position: absolute;
1535
+ bottom: 0;
1536
+ left: 0;
1537
+ right: 0;
1538
+ overflow-x: auto;
1539
+ overflow-y: hidden;
1540
+ }
1541
+
1542
+ .w-lightbox-item {
1543
+ width: 10vh;
1544
+ box-sizing: content-box;
1545
+ cursor: pointer;
1546
+ padding: 2vh 1vh;
1547
+ display: inline-block;
1548
+ }
1549
+
1550
+ .w-lightbox-active {
1551
+ opacity: .3;
1552
+ }
1553
+
1554
+ .w-lightbox-thumbnail {
1555
+ height: 10vh;
1556
+ background: #222;
1557
+ position: relative;
1558
+ overflow: hidden;
1559
+ }
1560
+
1561
+ .w-lightbox-thumbnail-image {
1562
+ position: absolute;
1563
+ top: 0;
1564
+ left: 0;
1565
+ }
1566
+
1567
+ .w-lightbox-thumbnail .w-lightbox-tall {
1568
+ width: 100%;
1569
+ top: 50%;
1570
+ transform: translate(0, -50%);
1571
+ }
1572
+
1573
+ .w-lightbox-thumbnail .w-lightbox-wide {
1574
+ height: 100%;
1575
+ left: 50%;
1576
+ transform: translate(-50%);
1577
+ }
1578
+
1579
+ .w-lightbox-spinner {
1580
+ box-sizing: border-box;
1581
+ width: 40px;
1582
+ height: 40px;
1583
+ border: 5px solid rgba(0, 0, 0, .4);
1584
+ border-radius: 50%;
1585
+ margin-top: -20px;
1586
+ margin-left: -20px;
1587
+ animation: .8s linear infinite spin;
1588
+ position: absolute;
1589
+ top: 50%;
1590
+ left: 50%;
1591
+ }
1592
+
1593
+ .w-lightbox-spinner:after {
1594
+ content: "";
1595
+ border: 3px solid rgba(0, 0, 0, 0);
1596
+ border-bottom-color: #fff;
1597
+ border-radius: 50%;
1598
+ position: absolute;
1599
+ top: -4px;
1600
+ bottom: -4px;
1601
+ left: -4px;
1602
+ right: -4px;
1603
+ }
1604
+
1605
+ .w-lightbox-hide {
1606
+ display: none;
1607
+ }
1608
+
1609
+ .w-lightbox-noscroll {
1610
+ overflow: hidden;
1611
+ }
1612
+
1613
+ @media (min-width: 768px) {
1614
+ .w-lightbox-content {
1615
+ height: 96vh;
1616
+ margin-top: 2vh;
1617
+ }
1618
+ .w-lightbox-view,
1619
+ .w-lightbox-view:before {
1620
+ height: 96vh;
1621
+ }
1622
+ .w-lightbox-group,
1623
+ .w-lightbox-group .w-lightbox-view,
1624
+ .w-lightbox-group .w-lightbox-view:before {
1625
+ height: 84vh;
1626
+ }
1627
+ .w-lightbox-image {
1628
+ max-width: 96vw;
1629
+ max-height: 96vh;
1630
+ }
1631
+ .w-lightbox-group .w-lightbox-image {
1632
+ max-width: 82.3vw;
1633
+ max-height: 84vh;
1634
+ }
1635
+ .w-lightbox-left,
1636
+ .w-lightbox-right {
1637
+ opacity: .5;
1638
+ display: block;
1639
+ }
1640
+ .w-lightbox-close {
1641
+ opacity: .8;
1642
+ }
1643
+ .w-lightbox-control:hover {
1644
+ opacity: 1;
1645
+ }
1646
+ }
1647
+
1648
+ .w-lightbox-inactive,
1649
+ .w-lightbox-inactive:hover {
1650
+ opacity: 0;
1651
+ }
1652
+
1653
+ .w-richtext:before,
1654
+ .w-richtext:after {
1655
+ content: " ";
1656
+ grid-area: 1 / 1 / 2 / 2;
1657
+ display: table;
1658
+ }
1659
+
1660
+ .w-richtext:after {
1661
+ clear: both;
1662
+ }
1663
+
1664
+ .w-richtext[contenteditable="true"]:before,
1665
+ .w-richtext[contenteditable="true"]:after {
1666
+ white-space: initial;
1667
+ }
1668
+
1669
+ .w-richtext ol,
1670
+ .w-richtext ul {
1671
+ overflow: hidden;
1672
+ }
1673
+
1674
+ .w-richtext .w-richtext-figure-selected.w-richtext-figure-type-video div:after,
1675
+ .w-richtext .w-richtext-figure-selected[data-rt-type="video"] div:after,
1676
+ .w-richtext .w-richtext-figure-selected.w-richtext-figure-type-image div,
1677
+ .w-richtext .w-richtext-figure-selected[data-rt-type="image"] div {
1678
+ outline: 2px solid #2895f7;
1679
+ }
1680
+
1681
+ .w-richtext figure.w-richtext-figure-type-video>div:after,
1682
+ .w-richtext figure[data-rt-type="video"]>div:after {
1683
+ content: "";
1684
+ display: none;
1685
+ position: absolute;
1686
+ top: 0;
1687
+ bottom: 0;
1688
+ left: 0;
1689
+ right: 0;
1690
+ }
1691
+
1692
+ .w-richtext figure {
1693
+ max-width: 60%;
1694
+ position: relative;
1695
+ }
1696
+
1697
+ .w-richtext figure>div:before {
1698
+ cursor: default !important;
1699
+ }
1700
+
1701
+ .w-richtext figure img {
1702
+ width: 100%;
1703
+ }
1704
+
1705
+ .w-richtext figure figcaption.w-richtext-figcaption-placeholder {
1706
+ opacity: .6;
1707
+ }
1708
+
1709
+ .w-richtext figure div {
1710
+ color: rgba(0, 0, 0, 0);
1711
+ font-size: 0;
1712
+ }
1713
+
1714
+ .w-richtext figure.w-richtext-figure-type-image,
1715
+ .w-richtext figure[data-rt-type="image"] {
1716
+ display: table;
1717
+ }
1718
+
1719
+ .w-richtext figure.w-richtext-figure-type-image>div,
1720
+ .w-richtext figure[data-rt-type="image"]>div {
1721
+ display: inline-block;
1722
+ }
1723
+
1724
+ .w-richtext figure.w-richtext-figure-type-image>figcaption,
1725
+ .w-richtext figure[data-rt-type="image"]>figcaption {
1726
+ caption-side: bottom;
1727
+ display: table-caption;
1728
+ }
1729
+
1730
+ .w-richtext figure.w-richtext-figure-type-video,
1731
+ .w-richtext figure[data-rt-type="video"] {
1732
+ width: 60%;
1733
+ height: 0;
1734
+ }
1735
+
1736
+ .w-richtext figure.w-richtext-figure-type-video iframe,
1737
+ .w-richtext figure[data-rt-type="video"] iframe {
1738
+ width: 100%;
1739
+ height: 100%;
1740
+ position: absolute;
1741
+ top: 0;
1742
+ left: 0;
1743
+ }
1744
+
1745
+ .w-richtext figure.w-richtext-figure-type-video>div,
1746
+ .w-richtext figure[data-rt-type="video"]>div {
1747
+ width: 100%;
1748
+ }
1749
+
1750
+ .w-richtext figure.w-richtext-align-center {
1751
+ clear: both;
1752
+ margin-left: auto;
1753
+ margin-right: auto;
1754
+ }
1755
+
1756
+ .w-richtext figure.w-richtext-align-center.w-richtext-figure-type-image>div,
1757
+ .w-richtext figure.w-richtext-align-center[data-rt-type="image"]>div {
1758
+ max-width: 100%;
1759
+ }
1760
+
1761
+ .w-richtext figure.w-richtext-align-normal {
1762
+ clear: both;
1763
+ }
1764
+
1765
+ .w-richtext figure.w-richtext-align-fullwidth {
1766
+ width: 100%;
1767
+ max-width: 100%;
1768
+ text-align: center;
1769
+ clear: both;
1770
+ margin-left: auto;
1771
+ margin-right: auto;
1772
+ display: block;
1773
+ }
1774
+
1775
+ .w-richtext figure.w-richtext-align-fullwidth>div {
1776
+ padding-bottom: inherit;
1777
+ display: inline-block;
1778
+ }
1779
+
1780
+ .w-richtext figure.w-richtext-align-fullwidth>figcaption {
1781
+ display: block;
1782
+ }
1783
+
1784
+ .w-richtext figure.w-richtext-align-floatleft {
1785
+ float: left;
1786
+ clear: none;
1787
+ margin-right: 15px;
1788
+ }
1789
+
1790
+ .w-richtext figure.w-richtext-align-floatright {
1791
+ float: right;
1792
+ clear: none;
1793
+ margin-left: 15px;
1794
+ }
1795
+
1796
+ .w-nav {
1797
+ z-index: 1000;
1798
+ background: #ddd;
1799
+ position: relative;
1800
+ }
1801
+
1802
+ .w-nav:before,
1803
+ .w-nav:after {
1804
+ content: " ";
1805
+ grid-area: 1 / 1 / 2 / 2;
1806
+ display: table;
1807
+ }
1808
+
1809
+ .w-nav:after {
1810
+ clear: both;
1811
+ }
1812
+
1813
+ .w-nav-brand {
1814
+ float: left;
1815
+ color: #333;
1816
+ text-decoration: none;
1817
+ position: relative;
1818
+ }
1819
+
1820
+ .w-nav-link {
1821
+ vertical-align: top;
1822
+ color: #222;
1823
+ text-align: left;
1824
+ margin-left: auto;
1825
+ margin-right: auto;
1826
+ padding: 20px;
1827
+ text-decoration: none;
1828
+ display: inline-block;
1829
+ position: relative;
1830
+ }
1831
+
1832
+ .w-nav-link.w--current {
1833
+ color: #0082f3;
1834
+ }
1835
+
1836
+ .w-nav-menu {
1837
+ float: right;
1838
+ position: relative;
1839
+ }
1840
+
1841
+ [data-nav-menu-open] {
1842
+ text-align: center;
1843
+ min-width: 200px;
1844
+ background: #c8c8c8;
1845
+ position: absolute;
1846
+ top: 100%;
1847
+ left: 0;
1848
+ right: 0;
1849
+ overflow: visible;
1850
+ display: block !important;
1851
+ }
1852
+
1853
+ .w--nav-link-open {
1854
+ display: block;
1855
+ position: relative;
1856
+ }
1857
+
1858
+ .w-nav-overlay {
1859
+ width: 100%;
1860
+ display: none;
1861
+ position: absolute;
1862
+ top: 100%;
1863
+ left: 0;
1864
+ right: 0;
1865
+ overflow: hidden;
1866
+ }
1867
+
1868
+ .w-nav-overlay [data-nav-menu-open] {
1869
+ top: 0;
1870
+ }
1871
+
1872
+ .w-nav[data-animation="over-left"] .w-nav-overlay {
1873
+ width: auto;
1874
+ }
1875
+
1876
+ .w-nav[data-animation="over-left"] .w-nav-overlay,
1877
+ .w-nav[data-animation="over-left"] [data-nav-menu-open] {
1878
+ z-index: 1;
1879
+ top: 0;
1880
+ right: auto;
1881
+ }
1882
+
1883
+ .w-nav[data-animation="over-right"] .w-nav-overlay {
1884
+ width: auto;
1885
+ }
1886
+
1887
+ .w-nav[data-animation="over-right"] .w-nav-overlay,
1888
+ .w-nav[data-animation="over-right"] [data-nav-menu-open] {
1889
+ z-index: 1;
1890
+ top: 0;
1891
+ left: auto;
1892
+ }
1893
+
1894
+ .w-nav-button {
1895
+ float: right;
1896
+ cursor: pointer;
1897
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1898
+ -webkit-user-select: none;
1899
+ -ms-user-select: none;
1900
+ user-select: none;
1901
+ padding: 18px;
1902
+ font-size: 24px;
1903
+ display: none;
1904
+ position: relative;
1905
+ }
1906
+
1907
+ .w-nav-button:focus {
1908
+ outline: 0;
1909
+ }
1910
+
1911
+ .w-nav-button.w--open {
1912
+ color: #fff;
1913
+ background-color: #c8c8c8;
1914
+ }
1915
+
1916
+ .w-nav[data-collapse="all"] .w-nav-menu {
1917
+ display: none;
1918
+ }
1919
+
1920
+ .w-nav[data-collapse="all"] .w-nav-button,
1921
+ .w--nav-dropdown-open,
1922
+ .w--nav-dropdown-toggle-open {
1923
+ display: block;
1924
+ }
1925
+
1926
+ .w--nav-dropdown-list-open {
1927
+ position: static;
1928
+ }
1929
+
1930
+ @media screen and (max-width: 991px) {
1931
+ .w-nav[data-collapse="medium"] .w-nav-menu {
1932
+ display: none;
1933
+ }
1934
+ .w-nav[data-collapse="medium"] .w-nav-button {
1935
+ display: block;
1936
+ }
1937
+ }
1938
+
1939
+ @media screen and (max-width: 767px) {
1940
+ .w-nav[data-collapse="small"] .w-nav-menu {
1941
+ display: none;
1942
+ }
1943
+ .w-nav[data-collapse="small"] .w-nav-button {
1944
+ display: block;
1945
+ }
1946
+ .w-nav-brand {
1947
+ padding-left: 10px;
1948
+ }
1949
+ }
1950
+
1951
+ @media screen and (max-width: 479px) {
1952
+ .w-nav[data-collapse="tiny"] .w-nav-menu {
1953
+ display: none;
1954
+ }
1955
+ .w-nav[data-collapse="tiny"] .w-nav-button {
1956
+ display: block;
1957
+ }
1958
+ }
1959
+
1960
+ .w-tabs {
1961
+ position: relative;
1962
+ }
1963
+
1964
+ .w-tabs:before,
1965
+ .w-tabs:after {
1966
+ content: " ";
1967
+ grid-area: 1 / 1 / 2 / 2;
1968
+ display: table;
1969
+ }
1970
+
1971
+ .w-tabs:after {
1972
+ clear: both;
1973
+ }
1974
+
1975
+ .w-tab-menu {
1976
+ position: relative;
1977
+ }
1978
+
1979
+ .w-tab-link {
1980
+ vertical-align: top;
1981
+ text-align: left;
1982
+ cursor: pointer;
1983
+ color: #222;
1984
+ background-color: #ddd;
1985
+ padding: 9px 30px;
1986
+ text-decoration: none;
1987
+ display: inline-block;
1988
+ position: relative;
1989
+ }
1990
+
1991
+ .w-tab-link.w--current {
1992
+ background-color: #c8c8c8;
1993
+ }
1994
+
1995
+ .w-tab-link:focus {
1996
+ outline: 0;
1997
+ }
1998
+
1999
+ .w-tab-content {
2000
+ display: block;
2001
+ position: relative;
2002
+ overflow: hidden;
2003
+ }
2004
+
2005
+ .w-tab-pane {
2006
+ display: none;
2007
+ position: relative;
2008
+ }
2009
+
2010
+ .w--tab-active {
2011
+ display: block;
2012
+ }
2013
+
2014
+ @media screen and (max-width: 479px) {
2015
+ .w-tab-link {
2016
+ display: block;
2017
+ }
2018
+ }
2019
+
2020
+ .w-ix-emptyfix:after {
2021
+ content: "";
2022
+ }
2023
+
2024
+ @keyframes spin {
2025
+ 0% {
2026
+ transform: rotate(0);
2027
+ }
2028
+ 100% {
2029
+ transform: rotate(360deg);
2030
+ }
2031
+ }
2032
+
2033
+ .w-dyn-empty {
2034
+ background-color: #ddd;
2035
+ padding: 10px;
2036
+ }
2037
+
2038
+ .w-dyn-hide,
2039
+ .w-dyn-bind-empty,
2040
+ .w-condition-invisible {
2041
+ display: none !important;
2042
+ }
2043
+
2044
+ body {
2045
+ color: #333;
2046
+ font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
2047
+ font-size: 14px;
2048
+ line-height: 20px;
2049
+ }
2050
+
2051
+ .navbar-link {
2052
+ grid-column-gap: 0px;
2053
+ grid-row-gap: 0px;
2054
+ flex: 0 auto;
2055
+ justify-content: flex-start;
2056
+ align-items: flex-start;
2057
+ padding: 24px 12px;
2058
+ display: flex;
2059
+ }
2060
+
2061
+ .text {
2062
+ color: #000;
2063
+ font-size: 14px;
2064
+ font-weight: 400;
2065
+ line-height: 150%;
2066
+ }
2067
+
2068
+ .text-4 {
2069
+ color: #212121;
2070
+ font-size: 18px;
2071
+ font-weight: 400;
2072
+ line-height: 150%;
2073
+ }
2074
+
2075
+ .title {
2076
+ color: #000;
2077
+ font-size: 24px;
2078
+ font-weight: 700;
2079
+ line-height: 150%;
2080
+ }
2081
+
2082
+ .description {
2083
+ color: #000;
2084
+ font-size: 14px;
2085
+ font-weight: 400;
2086
+ line-height: 150%;
2087
+ }
2088
+
2089
+ .text-5 {
2090
+ color: #000;
2091
+ text-align: center;
2092
+ font-size: 32px;
2093
+ font-weight: 700;
2094
+ line-height: 120%;
2095
+ }
2096
+
2097
+ .text-6 {
2098
+ color: #000;
2099
+ text-align: center;
2100
+ font-size: 16px;
2101
+ font-weight: 400;
2102
+ line-height: 150%;
2103
+ }
2104
+
2105
+ .text-7 {
2106
+ color: #000;
2107
+ text-align: center;
2108
+ font-size: 20px;
2109
+ font-weight: 700;
2110
+ line-height: 150%;
2111
+ }
2112
+
2113
+ .text-8 {
2114
+ color: #000;
2115
+ text-align: center;
2116
+ font-size: 18px;
2117
+ font-weight: 400;
2118
+ line-height: 150%;
2119
+ }
2120
+
2121
+ .navbar-logo-left-2 {
2122
+ z-index: 2147483647;
2123
+ width: 100%;
2124
+ max-width: 100%;
2125
+ grid-column-gap: 0px;
2126
+ grid-row-gap: 0px;
2127
+ background-color: #fff;
2128
+ justify-content: center;
2129
+ align-items: center;
2130
+ padding-bottom: 10px;
2131
+ padding-left: 24px;
2132
+ padding-right: 24px;
2133
+ display: flex;
2134
+ position: -webkit-sticky;
2135
+ position: sticky;
2136
+ top: 0;
2137
+ bottom: 10px;
2138
+ }
2139
+
2140
+ .navbarcontainer-2 {
2141
+ width: 100%;
2142
+ max-width: 1200px;
2143
+ grid-column-gap: 0px;
2144
+ grid-row-gap: 0px;
2145
+ justify-content: center;
2146
+ align-items: center;
2147
+ padding-top: 10px;
2148
+ display: flex;
2149
+ }
2150
+
2151
+ .navbar-content-2 {
2152
+ width: 100%;
2153
+ max-width: 1200px;
2154
+ text-align: left;
2155
+ justify-content: center;
2156
+ align-items: center;
2157
+ margin-left: auto;
2158
+ margin-right: auto;
2159
+ display: flex;
2160
+ position: static;
2161
+ }
2162
+
2163
+ .frame-237640 {
2164
+ height: 53px;
2165
+ grid-column-gap: 5px;
2166
+ grid-row-gap: 5px;
2167
+ flex: 0 auto;
2168
+ justify-content: flex-start;
2169
+ align-items: center;
2170
+ margin-right: auto;
2171
+ display: flex;
2172
+ }
2173
+
2174
+ .frame-237642 {
2175
+ grid-column-gap: 7px;
2176
+ grid-row-gap: 7px;
2177
+ flex: 0 auto;
2178
+ justify-content: flex-start;
2179
+ align-items: center;
2180
+ display: flex;
2181
+ }
2182
+
2183
+ .vectors-wrapper {
2184
+ width: 65px;
2185
+ height: 65px;
2186
+ grid-column-gap: 0px;
2187
+ grid-row-gap: 0px;
2188
+ object-fit: cover;
2189
+ justify-content: center;
2190
+ align-items: center;
2191
+ display: flex;
2192
+ }
2193
+
2194
+ .text-11 {
2195
+ color: #000;
2196
+ letter-spacing: .1em;
2197
+ font-family: Orbitron, sans-serif;
2198
+ font-size: 24px;
2199
+ font-weight: 500;
2200
+ line-height: 150%;
2201
+ }
2202
+
2203
+ .navbar-menu-2 {
2204
+ grid-column-gap: 46px;
2205
+ grid-row-gap: 46px;
2206
+ text-align: left;
2207
+ flex: none;
2208
+ justify-content: space-between;
2209
+ align-self: center;
2210
+ align-items: center;
2211
+ font-family: Inter, sans-serif;
2212
+ font-size: 24px;
2213
+ display: flex;
2214
+ position: fixed;
2215
+ }
2216
+
2217
+ .hero-heading-left-2 {
2218
+ width: 100%;
2219
+ height: 600px;
2220
+ grid-column-gap: 80px;
2221
+ grid-row-gap: 80px;
2222
+ background-color: #f5f7fa;
2223
+ justify-content: center;
2224
+ align-items: flex-start;
2225
+ padding: 40px 24px 100px;
2226
+ display: flex;
2227
+ }
2228
+
2229
+ .container {
2230
+ overflow: hidden;
2231
+ }
2232
+
2233
+ .container-3 {
2234
+ width: 100%;
2235
+ max-width: 1200px;
2236
+ justify-content: flex-start;
2237
+ align-items: center;
2238
+ display: flex;
2239
+ margin-top: 8%;
2240
+ margin-left: 8%;
2241
+ overflow-x: hidden;
2242
+ }
2243
+
2244
+ .f2wf-columns-2 {
2245
+ flex-wrap: nowrap;
2246
+ align-self: auto;
2247
+ padding-left: 10px;
2248
+ padding-right: 10px;
2249
+ }
2250
+
2251
+ .column-4 {
2252
+ width: 100%;
2253
+ grid-column-gap: 24px;
2254
+ grid-row-gap: 24px;
2255
+ flex-direction: column;
2256
+ justify-content: flex-start;
2257
+ align-items: flex-start;
2258
+ display: flex;
2259
+ }
2260
+
2261
+ .title-copy {
2262
+ color: #000;
2263
+ font-family: Inter, sans-serif;
2264
+ font-size: 56px;
2265
+ font-weight: 700;
2266
+ line-height: 110%;
2267
+ }
2268
+
2269
+ .actions-2 {
2270
+ grid-column-gap: 16px;
2271
+ grid-row-gap: 16px;
2272
+ border-radius: 3px;
2273
+ flex-direction: column;
2274
+ justify-content: flex-start;
2275
+ align-items: flex-start;
2276
+ padding-top: 16px;
2277
+ display: flex;
2278
+ }
2279
+
2280
+ .button-4 {
2281
+ grid-column-gap: 8px;
2282
+ grid-row-gap: 8px;
2283
+ background-color: #000;
2284
+ border-radius: 3px;
2285
+ flex: 0 auto;
2286
+ justify-content: center;
2287
+ align-items: center;
2288
+ padding: 12px 24px;
2289
+ font-family: Inter, sans-serif;
2290
+ text-decoration: none;
2291
+ display: flex;
2292
+ }
2293
+
2294
+ .text-12 {
2295
+ color: #fff;
2296
+ letter-spacing: .03em;
2297
+ font-size: 12px;
2298
+ font-weight: 500;
2299
+ line-height: 140%;
2300
+ }
2301
+
2302
+ .column-5 {
2303
+ width: 100%;
2304
+ grid-column-gap: 10px;
2305
+ grid-row-gap: 10px;
2306
+ justify-content: flex-start;
2307
+ align-items: flex-start;
2308
+ display: flex;
2309
+ }
2310
+
2311
+ .image-wrapper-4 {
2312
+ width: 85%;
2313
+ grid-column-gap: 0px;
2314
+ grid-row-gap: 0px;
2315
+ flex-direction: column;
2316
+ justify-content: center;
2317
+ align-items: center;
2318
+ display: flex;
2319
+ }
2320
+
2321
+ .image-4 {
2322
+ width: 100%;
2323
+ height: 80%;
2324
+ max-height: 80%;
2325
+ grid-column-gap: 0px;
2326
+ grid-row-gap: 0px;
2327
+ object-fit: cover;
2328
+ justify-content: center;
2329
+ align-items: center;
2330
+ display: flex;
2331
+ }
2332
+
2333
+ .features-list-2 {
2334
+ width: 100%;
2335
+ height: 506px;
2336
+ grid-column-gap: 80px;
2337
+ grid-row-gap: 80px;
2338
+ background-color: #fff;
2339
+ justify-content: center;
2340
+ align-items: flex-start;
2341
+ padding: 64px 24px;
2342
+ display: flex;
2343
+ }
2344
+
2345
+ .columns-4 {
2346
+ width: 100%;
2347
+ max-width: 960px;
2348
+ grid-column-gap: 80px;
2349
+ grid-row-gap: 80px;
2350
+ justify-content: center;
2351
+ align-items: flex-start;
2352
+ display: flex;
2353
+ }
2354
+
2355
+ .content-4 {
2356
+ width: 100%;
2357
+ grid-column-gap: 24px;
2358
+ grid-row-gap: 24px;
2359
+ flex-direction: column;
2360
+ justify-content: flex-start;
2361
+ align-items: flex-start;
2362
+ padding-top: 24px;
2363
+ padding-bottom: 24px;
2364
+ display: flex;
2365
+ }
2366
+
2367
+ .intro-2 {
2368
+ width: 100%;
2369
+ grid-column-gap: 16px;
2370
+ grid-row-gap: 16px;
2371
+ flex-direction: column;
2372
+ justify-content: flex-start;
2373
+ align-items: flex-start;
2374
+ display: flex;
2375
+ }
2376
+
2377
+ .models-list {
2378
+ width: 100%;
2379
+ grid-column-gap: 24px;
2380
+ grid-row-gap: 24px;
2381
+ justify-content: flex-start;
2382
+ align-items: center;
2383
+ display: flex;
2384
+ }
2385
+
2386
+ .image-wrapper-5 {
2387
+ width: 80px;
2388
+ height: 80px;
2389
+ grid-column-gap: 0px;
2390
+ grid-row-gap: 0px;
2391
+ justify-content: center;
2392
+ align-items: center;
2393
+ display: flex;
2394
+ }
2395
+
2396
+ .image-5 {
2397
+ width: 80px;
2398
+ height: 80px;
2399
+ grid-column-gap: 0px;
2400
+ grid-row-gap: 0px;
2401
+ object-fit: contain;
2402
+ flex-direction: column;
2403
+ justify-content: center;
2404
+ align-items: center;
2405
+ display: flex;
2406
+ filter: grayscale(100%);
2407
+ }
2408
+
2409
+ .frame-237641 {
2410
+ width: 100%;
2411
+ height: 79px;
2412
+ max-width: 336px;
2413
+ grid-column-gap: 2px;
2414
+ grid-row-gap: 2px;
2415
+ flex-direction: column;
2416
+ justify-content: flex-start;
2417
+ align-items: flex-start;
2418
+ display: flex;
2419
+ }
2420
+
2421
+ .description-2 {
2422
+ color: #000;
2423
+ font-size: 20px;
2424
+ font-weight: 700;
2425
+ line-height: 150%;
2426
+ }
2427
+
2428
+ .team-circles-2 {
2429
+ width: 100%;
2430
+ grid-column-gap: 64px;
2431
+ grid-row-gap: 64px;
2432
+ background-color: #fff;
2433
+ flex-direction: column;
2434
+ justify-content: flex-start;
2435
+ align-items: center;
2436
+ padding: 64px 24px;
2437
+ display: flex;
2438
+ }
2439
+
2440
+ .container-4 {
2441
+ width: 100%;
2442
+ max-width: 1200px;
2443
+ grid-column-gap: 64px;
2444
+ grid-row-gap: 64px;
2445
+ flex-direction: column;
2446
+ justify-content: flex-start;
2447
+ align-items: center;
2448
+ display: flex;
2449
+ }
2450
+
2451
+ .title-section-2 {
2452
+ width: 100%;
2453
+ max-width: 530px;
2454
+ grid-column-gap: 16px;
2455
+ grid-row-gap: 16px;
2456
+ flex-direction: column;
2457
+ justify-content: flex-start;
2458
+ align-items: center;
2459
+ display: flex;
2460
+ }
2461
+
2462
+ .columns-5 {
2463
+ width: 100%;
2464
+ grid-column-gap: 48px;
2465
+ grid-row-gap: 48px;
2466
+ justify-content: center;
2467
+ align-items: flex-start;
2468
+ display: flex;
2469
+ }
2470
+
2471
+ .card-2 {
2472
+ width: 100%;
2473
+ grid-column-gap: 24px;
2474
+ grid-row-gap: 24px;
2475
+ flex-direction: column;
2476
+ justify-content: flex-start;
2477
+ align-items: center;
2478
+ display: flex;
2479
+ }
2480
+
2481
+ .image-wrapper-6 {
2482
+ width: 100%;
2483
+ height: 270px;
2484
+ max-width: 270px;
2485
+ grid-column-gap: 0px;
2486
+ grid-row-gap: 0px;
2487
+ justify-content: center;
2488
+ align-items: center;
2489
+ display: flex;
2490
+ }
2491
+
2492
+ .image-6 {
2493
+ width: 130%;
2494
+ height: 270px;
2495
+ max-width: 270px;
2496
+ grid-column-gap: 0px;
2497
+ grid-row-gap: 0px;
2498
+ object-fit: cover;
2499
+ justify-content: center;
2500
+ align-items: center;
2501
+ display: flex;
2502
+ }
2503
+
2504
+ .content-5 {
2505
+ width: 100%;
2506
+ grid-column-gap: 16px;
2507
+ grid-row-gap: 16px;
2508
+ flex-direction: column;
2509
+ justify-content: flex-start;
2510
+ align-items: center;
2511
+ display: flex;
2512
+ }
2513
+
2514
+ .info-2 {
2515
+ width: 100%;
2516
+ grid-column-gap: 0px;
2517
+ grid-row-gap: 0px;
2518
+ flex-direction: column;
2519
+ justify-content: flex-start;
2520
+ align-items: center;
2521
+ display: flex;
2522
+ }
2523
+
2524
+ .footer-2 {
2525
+ width: 100%;
2526
+ grid-column-gap: 40px;
2527
+ grid-row-gap: 40px;
2528
+ background-color: #f5f7fa;
2529
+ flex-direction: column;
2530
+ justify-content: flex-start;
2531
+ align-items: center;
2532
+ padding: 60px 24px;
2533
+ display: flex;
2534
+ }
2535
+
2536
+ .columns-6 {
2537
+ width: 100%;
2538
+ max-width: 960px;
2539
+ justify-content: center;
2540
+ align-items: center;
2541
+ display: flex;
2542
+ }
2543
+
2544
+ .column-6 {
2545
+ width: 100%;
2546
+ max-width: 320px;
2547
+ grid-column-gap: 24px;
2548
+ grid-row-gap: 24px;
2549
+ text-align: left;
2550
+ flex-direction: column;
2551
+ flex: 0 auto;
2552
+ justify-content: center;
2553
+ align-self: center;
2554
+ align-items: center;
2555
+ display: flex;
2556
+ }
2557
+
2558
+ .logo-wrapper-2 {
2559
+ grid-column-gap: 0px;
2560
+ grid-row-gap: 0px;
2561
+ text-align: left;
2562
+ flex: 0 auto;
2563
+ justify-content: center;
2564
+ align-self: center;
2565
+ align-items: center;
2566
+ padding-top: 16px;
2567
+ display: flex;
2568
+ }
2569
+
2570
+ .utility-page-wrap {
2571
+ width: 100vw;
2572
+ height: 100vh;
2573
+ max-height: 100%;
2574
+ max-width: 100%;
2575
+ justify-content: center;
2576
+ align-items: center;
2577
+ display: flex;
2578
+ }
2579
+
2580
+ .utility-page-content {
2581
+ width: 260px;
2582
+ text-align: center;
2583
+ flex-direction: column;
2584
+ display: flex;
2585
+ }
2586
+
2587
+ .utility-page-form {
2588
+ flex-direction: column;
2589
+ align-items: stretch;
2590
+ display: flex;
2591
+ }
2592
+
2593
+ .section {
2594
+ text-align: left;
2595
+ flex-flow: row;
2596
+ align-content: flex-end;
2597
+ justify-content: center;
2598
+ align-items: stretch;
2599
+ margin-top: 0;
2600
+ margin-left: 60px;
2601
+ margin-right: 60px;
2602
+ padding-top: 0;
2603
+ padding-bottom: 20px;
2604
+ display: flex;
2605
+ }
2606
+
2607
+ .div-block {
2608
+ padding-right: 0;
2609
+ }
2610
+
2611
+ .submit-button-2 {
2612
+ text-align: left;
2613
+ background-color: #333;
2614
+ }
2615
+
2616
+ .heading-3 {
2617
+ font-size: 24px;
2618
+ }
2619
+
2620
+ .button-5 {
2621
+ background-color: #333;
2622
+ border-radius: 10px;
2623
+ align-self: center;
2624
+ }
2625
+
2626
+ .button-6 {
2627
+ background-color: #333;
2628
+ border-radius: 10px;
2629
+ }
2630
+
2631
+ @media screen and (max-width: 991px) {
2632
+ .navbar-link {
2633
+ justify-content: center;
2634
+ }
2635
+ .navbar-logo-left-2 {
2636
+ padding-right: 0;
2637
+ }
2638
+ .navbar-menu-2 {
2639
+ max-width: unset;
2640
+ }
2641
+ .hero-heading-left-2 {
2642
+ height: 450px;
2643
+ }
2644
+ .f2wf-columns-2 {
2645
+ flex-direction: column;
2646
+ align-items: center;
2647
+ }
2648
+ .button-4 {
2649
+ text-align: left;
2650
+ justify-content: center;
2651
+ align-self: center;
2652
+ align-items: center;
2653
+ }
2654
+ .image-4 {
2655
+ width: 50%;
2656
+ height: 50%;
2657
+ flex-wrap: nowrap;
2658
+ display: none;
2659
+ overflow: auto;
2660
+ }
2661
+ .column-6 {
2662
+ align-items: center;
2663
+ }
2664
+ .tabs {
2665
+ margin-left: 10px;
2666
+ margin-right: 10px;
2667
+ }
2668
+ .tabs-menu-2 {
2669
+ justify-content: center;
2670
+ display: flex;
2671
+ }
2672
+ .tabs-content {
2673
+ padding-left: 0;
2674
+ }
2675
+ }
2676
+
2677
+ @media screen and (max-width: 767px) {
2678
+ .text-4 {
2679
+ font-size: 16px;
2680
+ }
2681
+ .hero-heading-left-2 {
2682
+ height: 380px;
2683
+ }
2684
+ .f2wf-columns-2 {
2685
+ height: 600px;
2686
+ }
2687
+ .title-copy {
2688
+ font-size: 45px;
2689
+ }
2690
+ .team-circles-2 {
2691
+ margin-top: auto;
2692
+ position: static;
2693
+ }
2694
+ .card-2 {
2695
+ flex-wrap: nowrap;
2696
+ align-content: space-between;
2697
+ justify-content: flex-start;
2698
+ align-items: flex-start;
2699
+ }
2700
+ .image-6 {
2701
+ width: 50%;
2702
+ height: 100%;
2703
+ }
2704
+ .tabs {
2705
+ flex-direction: column;
2706
+ justify-content: center;
2707
+ align-items: flex-start;
2708
+ margin-top: 10px;
2709
+ margin-left: 15px;
2710
+ margin-right: 15px;
2711
+ }
2712
+ .tabs-menu-2 {
2713
+ grid-column-gap: 10px;
2714
+ grid-row-gap: 10px;
2715
+ text-align: center;
2716
+ flex-direction: row;
2717
+ grid-template-rows: auto auto;
2718
+ grid-template-columns: 1fr 1fr;
2719
+ grid-auto-columns: 1fr;
2720
+ justify-content: center;
2721
+ align-self: stretch;
2722
+ align-items: stretch;
2723
+ display: grid;
2724
+ }
2725
+ .tab-link-tab-4 {
2726
+ width: auto;
2727
+ }
2728
+ .paragraph {
2729
+ font-size: 13px;
2730
+ }
2731
+ .heading {
2732
+ font-size: 30px;
2733
+ }
2734
+ .submit-button {
2735
+ text-align: center;
2736
+ object-position: 50% 50%;
2737
+ display: inline-block;
2738
+ position: static;
2739
+ overflow: visible;
2740
+ }
2741
+ }
2742
+
2743
+ @media screen and (max-width: 479px) {
2744
+ .text-4 {
2745
+ text-align: center;
2746
+ font-family: Inter, sans-serif;
2747
+ font-size: 14px;
2748
+ line-height: 120%;
2749
+ }
2750
+ .vectors-wrapper {
2751
+ width: 40px;
2752
+ height: 40px;
2753
+ }
2754
+ .text-11 {
2755
+ font-size: 15px;
2756
+ }
2757
+ .title-copy {
2758
+ font-size: 30px;
2759
+ }
2760
+ .tabs {
2761
+ margin-left: 16px;
2762
+ margin-right: 16px;
2763
+ }
2764
+ .tabs-menu-2 {
2765
+ grid-column-gap: 10px;
2766
+ grid-row-gap: 10px;
2767
+ flex: 1;
2768
+ grid-template-rows: auto auto;
2769
+ grid-template-columns: 1fr 1fr;
2770
+ grid-auto-columns: 1fr;
2771
+ grid-auto-flow: row;
2772
+ align-self: stretch;
2773
+ align-items: stretch;
2774
+ justify-items: stretch;
2775
+ font-size: 10px;
2776
+ line-height: 12px;
2777
+ display: grid;
2778
+ }
2779
+ .text-block-2 {
2780
+ text-align: center;
2781
+ }
2782
+ .text-block-3 {
2783
+ text-align: center;
2784
+ display: block;
2785
+ overflow: visible;
2786
+ }
2787
+ .tab-link-tab-4 {
2788
+ flex-direction: row;
2789
+ display: block;
2790
+ }
2791
+ .text-block-4 {
2792
+ text-align: center;
2793
+ }
2794
+ .paragraph {
2795
+ text-align: left;
2796
+ margin-bottom: 20px;
2797
+ font-size: 12px;
2798
+ line-height: 15px;
2799
+ }
2800
+ .heading {
2801
+ text-align: left;
2802
+ font-size: 28px;
2803
+ line-height: 24px;
2804
+ }
2805
+ .field-label,
2806
+ .field-label-2 {
2807
+ font-size: 15px;
2808
+ }
2809
+ .text-block-5 {
2810
+ text-align: center;
2811
+ }
2812
+ #w-node-bdfdfb5d-318b-f1c9-e2df-4b82621eca06-3afa01cf {
2813
+ align-self: stretch;
2814
+ justify-self: stretch;
2815
+ }
2816
+ }
2817
+
2818
+ .tab-container {
2819
+ display: flex;
2820
+ flex-wrap: wrap;
2821
+ margin: 0 auto;
2822
+ max-width: 800px;
2823
+ margin-left: 10%;
2824
+ margin-right: 10%;
2825
+ margin-top: 10%;
2826
+ }
2827
+
2828
+
2829
+ /* Style the left column (tab menu) */
2830
+
2831
+ .tab-menu {
2832
+ flex: 1;
2833
+ margin-right: 10px;
2834
+ padding-bottom: 10px;
2835
+ }
2836
+
2837
+
2838
+ /* Style the tab buttons inside the tab menu */
2839
+
2840
+ .tab-menu button {
2841
+ display: block;
2842
+ background-color: #ddd;
2843
+ border: none;
2844
+ outline: none;
2845
+ cursor: pointer;
2846
+ padding: 14px 16px;
2847
+ transition: 0.3s;
2848
+ font-size: 17px;
2849
+ margin: 0;
2850
+ width: 100%;
2851
+ text-align: center;
2852
+ border-radius: 10px;
2853
+ margin-bottom: 10px;
2854
+ }
2855
+
2856
+
2857
+ /* Change background color of buttons on hover */
2858
+
2859
+ .tab-menu button:hover {
2860
+ background-color: #ddd;
2861
+ }
2862
+
2863
+
2864
+ /* Create an active/current tablink class */
2865
+
2866
+ .tab-menu button.active {
2867
+ background-color: #ccc;
2868
+ }
2869
+
2870
+
2871
+ /* Style the right column (tab content) */
2872
+
2873
+ .tab-content {
2874
+ flex: 2;
2875
+ background-color: #fff;
2876
+ margin-left: 10px;
2877
+ border-radius: 10px;
2878
+ }
2879
+
2880
+
2881
+ /* Style the tab content */
2882
+
2883
+ .tabcontent {
2884
+ display: none;
2885
+ margin: 0 auto;
2886
+ max-width: 800px;
2887
+ padding: 0px 12px;
2888
+ border-top: none;
2889
+ }
2890
+
2891
+ iframe {
2892
+ border: none;
2893
+ overflow: hidden;
2894
+ }
2895
+
2896
+ body {
2897
+ margin: 0;
2898
+ padding: 0;
2899
+ font-family: Inter;
2900
+ }
2901
+
2902
+ .responsive-bar {
2903
+ display: none;
2904
+ }
2905
+
2906
+ nav {
2907
+ width: 100%;
2908
+ position: fixed;
2909
+ top: 0;
2910
+ left: 0;
2911
+ height: 80px;
2912
+ padding: 10px 100px;
2913
+ box-sizing: border-box;
2914
+ transition: .5s;
2915
+ font-family: Poppins;
2916
+ }
2917
+
2918
+ nav.black {
2919
+ background: rgba(0, 0, 0, 0.8);
2920
+ height: 80px;
2921
+ padding: 10px 50px;
2922
+ z-index: 10;
2923
+ }
2924
+
2925
+ nav .logo {
2926
+ float: left;
2927
+ display: flex;
2928
+ align-items: center;
2929
+ }
2930
+
2931
+ nav .logo img {
2932
+ height: 80px;
2933
+ transition: .5s;
2934
+ margin-right: 10px;
2935
+ }
2936
+
2937
+ nav .logo .logo-text {
2938
+ color: #000;
2939
+ letter-spacing: .1em;
2940
+ font-family: Orbitron, sans-serif;
2941
+ font-size: 24px;
2942
+ font-weight: regular;
2943
+ }
2944
+
2945
+ nav.black .logo img {
2946
+ height: 60px;
2947
+ filter: invert(100%);
2948
+ font-weight: regular;
2949
+ }
2950
+
2951
+ nav.black .logo .logo-text {
2952
+ color: #fff;
2953
+ }
2954
+
2955
+ nav>ul {
2956
+ width: 100%;
2957
+ margin: 0 auto;
2958
+ padding: 0;
2959
+ float: none;
2960
+ text-align: right;
2961
+ }
2962
+
2963
+ nav>ul>li {
2964
+ display: inline-block;
2965
+ margin: 0 10px;
2966
+ color: #000;
2967
+ }
2968
+
2969
+ nav>ul>li>a:hover {
2970
+ background: #000;
2971
+ color: #fff;
2972
+ }
2973
+
2974
+ nav>ul>li>a {
2975
+ color: #000;
2976
+ text-decoration: none;
2977
+ line-height: 80px;
2978
+ padding: 5px 20px;
2979
+ transition: .5s;
2980
+ }
2981
+
2982
+ nav.black>ul>li>a {
2983
+ color: #fff;
2984
+ line-height: 60px;
2985
+ }
2986
+
2987
+ nav.black>ul>li>a:hover {
2988
+ background: #fff;
2989
+ color: #000;
2990
+ }
2991
+
2992
+ .end-button {
2993
+ display: absolute;
2994
+ padding: 10px 15px;
2995
+ border: 2px solid #000;
2996
+ border-radius: 20px;
2997
+ background-color: #000;
2998
+ color: #fff;
2999
+ text-decoration: none;
3000
+ }
3001
+
3002
+ .end-button:hover {
3003
+ border: 2px solid #000;
3004
+ background-color: transparent;
3005
+ color: #000;
3006
+ }
3007
+
3008
+ section.sec1 {
3009
+ display: flex;
3010
+ align-items: flex-start;
3011
+ justify-content: flex-start;
3012
+ flex-direction: column;
3013
+ color: #fff;
3014
+ width: 100%;
3015
+ height: 100vh;
3016
+ background: url(https://i.pinimg.com/originals/7a/d0/c9/7ad0c9b192167fbeac6f53ff97a656df.gif);
3017
+ background-size: cover;
3018
+ }
3019
+
3020
+ section.content {
3021
+ margin: 0;
3022
+ padding: 0;
3023
+ font-size: 1.1em;
3024
+ }
3025
+
3026
+ @media(max-width:768px) {
3027
+ .responsive-bar {
3028
+ display: block;
3029
+ width: 100%;
3030
+ height: 60px;
3031
+ background: #262626;
3032
+ position: fixed;
3033
+ top: 0;
3034
+ left: 0;
3035
+ padding: 5px 20px;
3036
+ box-sizing: border-box;
3037
+ z-index: 1;
3038
+ }
3039
+ .responsive-bar .logo img {
3040
+ float: left;
3041
+ height: 50px;
3042
+ }
3043
+ .responsive-bar .menu h4 {
3044
+ float: right;
3045
+ color: #fff;
3046
+ margin: 0;
3047
+ padding: 0;
3048
+ line-height: 50px;
3049
+ cursor: pointer;
3050
+ text-transform: uppercase;
3051
+ }
3052
+ nav {
3053
+ padding: 0;
3054
+ }
3055
+ nav,
3056
+ nav.black {
3057
+ background: #262626;
3058
+ height: 60px;
3059
+ padding: 0;
3060
+ }
3061
+ nav .logo {
3062
+ display: none;
3063
+ }
3064
+ nav ul {
3065
+ position: absolute;
3066
+ width: 100%;
3067
+ top: 60px;
3068
+ left: 0;
3069
+ background: #262626;
3070
+ float: none;
3071
+ display: none;
3072
+ }
3073
+ nav ul.active {
3074
+ display: block;
3075
+ }
3076
+ nav ul li {
3077
+ width: 100%;
3078
+ }
3079
+ nav ul li a {
3080
+ display: block;
3081
+ padding: 0;
3082
+ width: 100%;
3083
+ text-align: center;
3084
+ line-height: 30px !important;
3085
+ color: #fff;
3086
+ }
3087
+ nav>ul {
3088
+ width: 100%;
3089
+ display: none;
3090
+ }
3091
+ nav>ul>li {
3092
+ display: block;
3093
+ text-align: center;
3094
+ }
3095
+ .active {
3096
+ display: block;
3097
+ }
3098
+ }
static/css/model.css ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
2
+ body {
3
+ font-family: 'Poppins', sans-serif;
4
+ margin: 20 px;
5
+ padding: 0;
6
+ }
7
+
8
+ .container {
9
+ max-width: 600px;
10
+ margin: 50px auto;
11
+ background-color: #fff;
12
+ border-radius: 8px;
13
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
14
+ padding: 20px;
15
+ }
16
+
17
+ h1 {
18
+ text-align: left;
19
+ color: #333;
20
+ font-weight: 600;
21
+ font-size: 24px;
22
+ margin-bottom: 20px;
23
+ }
24
+
25
+ form {
26
+ display: flex;
27
+ flex-wrap: wrap;
28
+ gap: 10px;
29
+ }
30
+
31
+ label {
32
+ margin-bottom: 8px;
33
+ color: #555;
34
+ font-weight: 500;
35
+ }
36
+
37
+ input[type="number"] {
38
+ border: 1px solid #ddd;
39
+ border-radius: 4px;
40
+ flex: 1;
41
+ min-width: 100px;
42
+ }
43
+
44
+ button {
45
+ padding: 8px 16px;
46
+ background-color: #4CAF50;
47
+ color: #fff;
48
+ border: none;
49
+ border-radius: 4px;
50
+ cursor: pointer;
51
+ font-weight: 600;
52
+ }
53
+
54
+ table {
55
+ width: 100%;
56
+ border-collapse: collapse;
57
+ margin-bottom: 20px;
58
+ }
59
+
60
+ th,
61
+ td {
62
+ padding: 8px;
63
+ text-align: left;
64
+ border-bottom: 1px solid #ddd;
65
+ }
66
+
67
+ th {
68
+ font-weight: 600;
69
+ background-color: #f9f9f9;
70
+ }
71
+
72
+ ul {
73
+ list-style-type: none;
74
+ padding: 0;
75
+ }
76
+
77
+ li {
78
+ margin-bottom: 10px;
79
+ color: #555;
80
+ }
81
+
82
+ p {
83
+ margin-bottom: 5px;
84
+ color: #333;
85
+ }
86
+
87
+ .logo {
88
+ width: 50px;
89
+ height: 50px;
90
+ margin-right: 10px;
91
+ }
92
+
93
+ .header {
94
+ display: flex;
95
+ align-items: center;
96
+ max-width: 100%;
97
+ }
98
+
99
+ .form-container {
100
+ display: flex;
101
+ flex-direction: row;
102
+ align-items: center;
103
+ justify-content: center;
104
+ }
105
+
106
+ .form-container .form-group {
107
+ display: flex;
108
+ flex-wrap: wrap;
109
+ gap: 2px;
110
+ }
111
+
112
+ .form-group label {
113
+ margin-bottom: 5px;
114
+ }
115
+
116
+ .form-group input[type="number"] {
117
+ padding: 8px;
118
+ border: 1px solid #ddd;
119
+ border-radius: 4px;
120
+ flex: 1;
121
+ min-width: 50px;
122
+ }
123
+
124
+ .submit-btn {
125
+ width: 200px;
126
+ margin-top: 10px;
127
+ align-self: center;
128
+ }
static/images/Model-Linear.png ADDED
static/images/Model-Naive.png ADDED
static/images/Model-kMeans.png ADDED
static/images/Model-kNN.png ADDED
static/images/cluster.png ADDED
static/images/gif3.webp ADDED
static/images/hero.png ADDED
static/images/logo.svg ADDED
static/js/js.js ADDED
The diff for this file is too large to render. See raw diff
 
templates/algos.html ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% extends 'base.html' %} {% block content %}
2
+ <!DOCTYPE html>
3
+ <html>
4
+
5
+ <head>
6
+ <meta charset="utf-8 " />
7
+ <title>Classifiers</title>
8
+ <link rel="stylesheet" href="{{ url_for('static', filename='main.css')}}">
9
+ <link href="https://fonts.googleapis.com " rel="preconnect " />
10
+ <link href="https://fonts.gstatic.com " rel="preconnect " crossorigin="anonymous " />
11
+ <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js " type="text/javascript "></script>
12
+ <script type="text/javascript ">
13
+ WebFont.load({
14
+ google: {
15
+ families: ["Orbitron:regular,500,600,700,800,900 ", "Noto Sans Tamil:100,200,300,regular,500,600,700,800,900 ", "Inter:100,200,300,regular,500,600,700,800,900 "]
16
+ }
17
+ });
18
+ </script>
19
+ <script type="text/javascript ">
20
+ ! function(o, c) {
21
+ var n = c.documentElement,
22
+ t = " w-mod- ";
23
+ n.className += t + "js ", ("ontouchstart " in o || o.DocumentTouch && c instanceof DocumentTouch) && (n.className += t + "touch ")
24
+ }(window, document);
25
+ </script>
26
+ </head>
27
+
28
+ <body>
29
+ <div class="tab-container">
30
+ <!-- Left column (tab menu) -->
31
+ <div class="tab-menu">
32
+ <button class="tablinks active" onclick="openTab(event, 'linear')">Linear Regression</button>
33
+ <button class="tablinks" onclick="openTab(event, 'knn')">KNN</button>
34
+ <button class="tablinks" onclick="openTab(event, 'kmeans')">KMeans</button>
35
+ <button class="tablinks" onclick="openTab(event, 'naive-bayes')">Naive Bayes</button>
36
+ </div>
37
+
38
+ <!-- Right column (tab content) -->
39
+ <div class="tab-content">
40
+ <div id="linear" class="tabcontent">
41
+ <iframe src="{{ url_for('linear') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
42
+ </div>
43
+
44
+ <div id="knn" class="tabcontent">
45
+ <iframe src="{{ url_for('knn') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
46
+ </div>
47
+
48
+ <div id="kmeans" class="tabcontent">
49
+ <iframe src="{{ url_for('kmeans') }}" style="width:100%; height:500px; display: flex;" scrolling="no"></iframe>
50
+ </div>
51
+
52
+ <div id="naive-bayes" class="tabcontent">
53
+ <iframe src="{{ url_for('naive') }}" style="width:100%; height:500px;" scrolling="no"></iframe>
54
+ </div>
55
+ </div>
56
+
57
+ <script>
58
+ document.getElementById("linear").style.display = "block";
59
+
60
+ function openTab(evt, tabName) {
61
+ var i, tabcontent, tablinks;
62
+
63
+ tabcontent = document.getElementsByClassName("tabcontent");
64
+ for (i = 0; i < tabcontent.length; i++) {
65
+ tabcontent[i].style.display = "none";
66
+ }
67
+
68
+ tablinks = document.getElementsByClassName("tablinks");
69
+ for (i = 0; i < tablinks.length; i++) {
70
+ tablinks[i].className = tablinks[i].className.replace(" active", "");
71
+ }
72
+
73
+ document.getElementById(tabName).style.display = "block";
74
+ evt.currentTarget.className += " active";
75
+ }
76
+ </script>
77
+ </body>
78
+
79
+ </html>{% endblock %}
templates/base.html ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1, user-scalable=no">
6
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/main.css')}}">
7
+ <link href="https://fonts.googleapis.com " rel="preconnect " />
8
+ <link rel="icon" type="image/png" href="{{ url_for('static', filename='images/logo.svg')}}"/>
9
+ <link href="https://fonts.gstatic.com " rel="preconnect " crossorigin="anonymous " />
10
+ <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
11
+ <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
12
+ <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js " type="text/javascript "></script>
13
+ <script type="text/javascript ">
14
+ WebFont.load({
15
+ google: {
16
+ families: ["Orbitron:regular,500,600,700,800,900 ", "Noto Sans Tamil:100,200,300,regular,500,600,700,800,900 ", "Inter:100,200,300,regular,500,600,700,800,900 "]
17
+ }
18
+ });
19
+ </script>
20
+
21
+ <script type="text/javascript">
22
+ $(window).on('scroll', function() {
23
+ if ($(window).scrollTop()) {
24
+ $('nav').addClass('black');
25
+ } else {
26
+ $('nav').removeClass('black');
27
+ }
28
+ })
29
+ /*menu button onclick function*/
30
+ $(document).ready(function() {
31
+ $('.menu h4').click(function() {
32
+ $("nav ul").toggleClass("active")
33
+ })
34
+ })
35
+ </script>
36
+ </head>
37
+
38
+ <body>
39
+ <div class="responsive-bar">
40
+ <div class="logo">
41
+ <img src="{{ url_for('static', filename='images/logo.svg') }}" alt="logo" />
42
+
43
+
44
+ </div>
45
+ <div class="menu">
46
+ <h4>Menu</h4>
47
+ </div>
48
+ </div>
49
+ <nav>
50
+ <div class="logo">
51
+ <img src="{{ url_for('static', filename='images/logo.svg') }}" alt="logo" />
52
+
53
+ <span class="logo-text">Quatro</span>
54
+ </div>
55
+ <ul>
56
+ <li><a href="{{ url_for('index')}}" class="menulink">Home</a></li>
57
+ <li><a href="{{ url_for('algos')}}" class="end-button">Classifiers</a></li>
58
+
59
+ </ul>
60
+ </nav>
61
+
62
+ <div class="container">
63
+ {% block content %} {% endblock %}
64
+ </div>
65
+ </body>
66
+
67
+ </html>
templates/draft.html ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1, user-scalable=no">
6
+ <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
7
+ <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
8
+ <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js " type="text/javascript "></script>
9
+ <script type="text/javascript ">
10
+ WebFont.load({
11
+ google: {
12
+ families: ["Orbitron:regular,500,600,700,800,900 ", "Noto Sans Tamil:100,200,300,regular,500,600,700,800,900 ", "Inter:100,200,300,regular,500,600,700,800,900 "]
13
+ }
14
+ });
15
+ </script>
16
+
17
+ <script type="text/javascript">
18
+ $(window).on('scroll', function() {
19
+ if ($(window).scrollTop()) {
20
+ $('nav').addClass('black');
21
+ } else {
22
+ $('nav').removeClass('black');
23
+ }
24
+ })
25
+ /*menu button onclick function*/
26
+ $(document).ready(function() {
27
+ $('.menu h4').click(function() {
28
+ $("nav ul").toggleClass("active")
29
+ })
30
+ })
31
+ </script>
32
+ <style>
33
+ body {
34
+ margin: 0;
35
+ padding: 0;
36
+ font-family: Inter;
37
+ }
38
+
39
+ .responsive-bar {
40
+ display: none;
41
+ }
42
+
43
+ nav {
44
+ width: 100%;
45
+ position: fixed;
46
+ top: 0;
47
+ left: 0;
48
+ height: 80px;
49
+ padding: 10px 100px;
50
+ box-sizing: border-box;
51
+ transition: .5s;
52
+ }
53
+
54
+ nav.black {
55
+ background: rgba(0, 0, 0, 0.8);
56
+ height: 80px;
57
+ padding: 10px 50px;
58
+ }
59
+
60
+ nav .logo {
61
+ float: left;
62
+ display: flex;
63
+ align-items: center;
64
+ }
65
+
66
+ nav .logo img {
67
+ height: 80px;
68
+ transition: .5s;
69
+ margin-right: 10px;
70
+ filter: invert(100%);
71
+ }
72
+
73
+ nav .logo .logo-text {
74
+ color: #fff;
75
+ letter-spacing: .1em;
76
+ font-family: Orbitron, sans-serif;
77
+ font-size: 24px;
78
+ font-weight: regular;
79
+ }
80
+
81
+ nav.black .logo img {
82
+ height: 60px;
83
+ filter: invert(100%);
84
+ font-weight: regular;
85
+ }
86
+
87
+ nav.black .logo .logo-text {
88
+ color: #fff;
89
+ }
90
+
91
+ nav>ul {
92
+ width: 80%;
93
+ margin: 0 auto;
94
+ padding: 0;
95
+ float: none;
96
+ text-align: center;
97
+ }
98
+
99
+ nav>ul>li {
100
+ display: inline-block;
101
+ margin: 0 10px;
102
+ }
103
+
104
+ nav>ul>li>a:hover {
105
+ background: #f00;
106
+ color: #fff;
107
+ }
108
+
109
+ nav>ul>li>a {
110
+ color: #ffffff;
111
+ text-decoration: none;
112
+ line-height: 80px;
113
+ padding: 5px 20px;
114
+ transition: .5s;
115
+ }
116
+
117
+ nav.black>ul>li>a {
118
+ color: #fff;
119
+ line-height: 60px;
120
+ }
121
+
122
+ section.sec1 {
123
+ display: flex;
124
+ align-items: flex-start;
125
+ justify-content: flex-start;
126
+ flex-direction: column;
127
+ color: #fff;
128
+ width: 100%;
129
+ height: 100vh;
130
+ background: url(https://i.pinimg.com/originals/7a/d0/c9/7ad0c9b192167fbeac6f53ff97a656df.gif);
131
+ background-size: cover;
132
+ }
133
+
134
+ section.content {
135
+ margin: 0;
136
+ padding: 0;
137
+ font-size: 1.1em;
138
+ }
139
+
140
+ @media(max-width:768px) {
141
+ .responsive-bar {
142
+ display: block;
143
+ width: 100%;
144
+ height: 60px;
145
+ background: #262626;
146
+ position: fixed;
147
+ top: 0;
148
+ left: 0;
149
+ padding: 5px 20px;
150
+ box-sizing: border-box;
151
+ z-index: 1;
152
+ }
153
+ .responsive-bar .logo img {
154
+ float: left;
155
+ height: 50px;
156
+ }
157
+ .responsive-bar .menu h4 {
158
+ float: right;
159
+ color: #fff;
160
+ margin: 0;
161
+ padding: 0;
162
+ line-height: 50px;
163
+ cursor: pointer;
164
+ text-transform: uppercase;
165
+ }
166
+ nav {
167
+ padding: 0;
168
+ }
169
+ nav,
170
+ nav.black {
171
+ background: #262626;
172
+ height: 60px;
173
+ padding: 0;
174
+ }
175
+ nav .logo {
176
+ display: none;
177
+ }
178
+ nav ul {
179
+ position: absolute;
180
+ width: 100%;
181
+ top: 60px;
182
+ left: 0;
183
+ background: #262626;
184
+ float: none;
185
+ display: none;
186
+ }
187
+ nav ul.active {
188
+ display: block;
189
+ }
190
+ nav ul li {
191
+ width: 100%;
192
+ }
193
+ nav ul li a {
194
+ display: block;
195
+ padding: 0;
196
+ width: 100%;
197
+ text-align: center;
198
+ line-height: 30px !important;
199
+ color: #fff;
200
+ }
201
+ nav>ul {
202
+ width: 100%;
203
+ display: none;
204
+ }
205
+ nav>ul>li {
206
+ display: block;
207
+ text-align: center;
208
+ }
209
+ .active {
210
+ display: block;
211
+ }
212
+ }
213
+ </style>
214
+ </head>
215
+
216
+ <body>
217
+ <div class="responsive-bar">
218
+ <div class="logo">
219
+ <img src="logo.svg" alt="logo" />
220
+
221
+ </div>
222
+ <div class="menu">
223
+ <h4>Menu</h4>
224
+ </div>
225
+ </div>
226
+ <nav>
227
+ <div class="logo">
228
+ <img src="logo.svg" alt="logo" />
229
+ <span class="logo-text">Quatro</span>
230
+ </div>
231
+ <ul>
232
+ <li><a href="#">Home</a></li>
233
+ <li> <a href="#">Classifiers</a></li>
234
+ <li><a href="#">About us</a></li>
235
+
236
+ </ul>
237
+ </nav>
238
+ </body>
239
+
240
+ </html>
templates/index.html ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% extends 'base.html' %} {% block content %}
2
+ <!DOCTYPE html>
3
+ <html>
4
+
5
+ <head>
6
+ <meta charset="utf-8" />
7
+ <title>Machine Learning Algorithms</title>
8
+ <meta content="width=device-width, initial-scale=1" name="viewport" />
9
+ <link rel="stylesheet" href="{{ url_for('static', filename='static/css/main.css')}}">
10
+ <link href="https://fonts.googleapis.com" rel="preconnect" />
11
+ <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous" />
12
+ <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
13
+ <script type="text/javascript">
14
+ WebFont.load({
15
+ google: {
16
+ families: ["Orbitron:regular,500,600,700,800,900", "Noto Sans Tamil:100,200,300,regular,500,600,700,800,900", "Inter:100,200,300,regular,500,600,700,800,900"]
17
+ }
18
+ });
19
+ </script>
20
+ <script type="text/javascript">
21
+ ! function(o, c) {
22
+ var n = c.documentElement,
23
+ t = " w-mod-";
24
+ n.className += t + "js", ("ontouchstart" in o || o.DocumentTouch && c instanceof DocumentTouch) && (n.className += t + "touch")
25
+ }(window, document);
26
+ </script>
27
+
28
+ </head>
29
+
30
+ <body>
31
+ <div class="container-3 f2wf-columns-2">
32
+ <div class="column-4">
33
+ <div class="column-4">
34
+ <h1 class="title-copy">Machine Learning Algorithms</h1>
35
+ <p class="text-4">Welcome to our Quatro Data Analysis Web App! Explore the power of machine learning models - Linear Regression, K-Nearest Neighbors, K-Means, and Naive Bayes - as we delve into job data extracted from the popular Indeed website. Our intuitive Flask-based web app empowers you to input data and obtain accurate predictions from these models. Unleash the potential of AI-driven insights. Start exploring now!</p>
36
+ </div>
37
+ <a href="{{ url_for('algos')}}" class="button-4">
38
+ <div class="text-12">CLASSIFY</div>
39
+ </a>
40
+ <div class="actions-2"></div>
41
+ </div>
42
+ <div class="column-5">
43
+ <div class="image-wrapper-4"><img src="{{ url_for('static', filename='images/hero1.gif') }}" width="100" height="100" class="image-4" />
44
+ </div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <div class="features-list-2">
49
+ <div class="columns-4 f2wf-columns-2">
50
+ <div class="column-4">
51
+ <div class="content-4">
52
+ <div class="intro-2">
53
+ <div class="title">Machine Learning Algorithms</div>
54
+ <div class="description">Machine learning is a branch of artificial intelligence that focuses on developing algorithms and models that enable computers to learn and make predictions or decisions without being explicitly programmed. It involves training machines on data to recognize patterns, extract insights, and improve performance over time.
55
+ </div>
56
+ </div>
57
+ <div class="description">
58
+ <a href="https://www.ibm.com/topics/machine-learning">Learn more →</a>
59
+ </div>
60
+
61
+ </div>
62
+ </div>
63
+ <div class="intro-2">
64
+ <div class="models-list">
65
+ <div class="image-wrapper-5"><img src="{{ url_for('static', filename='images/Model-Linear.png') }}" loading="lazy" width="80" height="80" alt="" class="image-5" /></div>
66
+ <div class="frame-237641">
67
+ <div class="description-2">K-Nearest Neighbor</div>
68
+ <div class="description">Classify data points based on the majority class of their nearest neighbors.</div>
69
+ </div>
70
+ </div>
71
+ <div class="models-list">
72
+ <div class="image-wrapper-5"><img src="{{ url_for('static', filename='images/Model-kNN.png') }}" loading="lazy" width="80" height="80" alt="" class="image-5" /></div>
73
+ <div class="frame-237641">
74
+ <div class="description-2">Linear Regression</div>
75
+ <div class="description">Predict numerical values based on input variables and establish linear relationships.</div>
76
+ </div>
77
+ </div>
78
+ <div class="models-list">
79
+ <div class="image-wrapper-5"><img src="{{ url_for('static', filename='images/Model-kMeans.png') }}" loading="lazy" width="80" height="80" alt="" class="image-5" /></div>
80
+ <div class="frame-237641">
81
+ <div class="description-2">K-Mean Clustering</div>
82
+ <div class="description">Group similar data points into clusters to identify patterns and similarities.</div>
83
+ </div>
84
+ </div>
85
+ <div class="models-list">
86
+ <div class="image-wrapper-5"><img src="{{ url_for('static', filename='images/Model-Naive.png') }}" loading="lazy" width="80" height="80" alt="" class="image-5" /></div>
87
+ <div class="frame-237641">
88
+ <div class="description-2">Naive Bayes </div>
89
+ <div class="description">Use probabilistic classification to predict the likelihood of a data point belonging to a specific class.</div>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <div class="team-circles-2">
96
+ <div class="container-4">
97
+ <div class="title-section-2">
98
+ <div class="text-5">Team section</div>
99
+ <div class="text-6">The team behind this web app is group of computer science students with a passion for machine learning and web development. Together, we leverage our expertise in data analysis, AI algorithms, and user experience to create a seamless and intuitive experience for our users.</div>
100
+ </div>
101
+ <div class="columns-5 f2wf-columns-2">
102
+ <div class="card-2">
103
+ <div class="image-wrapper-6"><img src="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png" loading="lazy" width="270" height="270" srcset="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image-p-500.png 500w, https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png 540w"
104
+ sizes="(max-width: 479px) 36vw, (max-width: 767px) 135px, (max-width: 991px) 35vw, 26vw" alt="" class="image-6" /></div>
105
+ <div class="content-5">
106
+ <div class="info-2">
107
+ <div class="text-7">Dave F. Fagarita</div>
108
+ <div class="text-8">BSCS 3A</div>
109
+ </div>
110
+ <div class="text-6">Developer</div>
111
+ </div>
112
+ </div>
113
+ <div class="card-2">
114
+ <div class="image-wrapper-6"><img src="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png" loading="lazy" width="270" height="270" srcset="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image-p-500.png 500w, https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png 540w"
115
+ sizes="(max-width: 479px) 36vw, (max-width: 767px) 135px, (max-width: 991px) 35vw, 26vw" alt="" class="image-6" /></div>
116
+ <div class="content-5">
117
+ <div class="info-2">
118
+ <div class="text-7">Jimuel S. Servandil</div>
119
+ <div class="text-8">BSCS 3A</div>
120
+ </div>
121
+ <div class="text-6">Developer</div>
122
+ </div>
123
+ </div>
124
+ <div class="card-2">
125
+ <div class="image-wrapper-6"><img src="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png" loading="lazy" width="270" height="270" srcset="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image-p-500.png 500w, https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png 540w"
126
+ sizes="(max-width: 479px) 36vw, (max-width: 767px) 135px, (max-width: 991px) 35vw, 26vw" alt="" class="image-6" /></div>
127
+ <div class="content-5">
128
+ <div class="info-2">
129
+ <div class="text-7">Jannica Mae Magno</div>
130
+ <div class="text-8">BSCS 3A</div>
131
+ </div>
132
+ <div class="text-6">Developer</div>
133
+ </div>
134
+ </div>
135
+ <div class="card-2">
136
+ <div class="image-wrapper-6"><img src="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png" loading="lazy" width="270" height="270" srcset="https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image-p-500.png 500w, https://uploads-ssl.webflow.com/642cba496c45ae8313f6671d/642cc12016271546649d87ad_Image.png 540w"
137
+ sizes="(max-width: 479px) 36vw, (max-width: 767px) 135px, (max-width: 991px) 35vw, 26vw" alt="" class="image-6" /></div>
138
+ <div class="content-5">
139
+ <div class="info-2">
140
+ <div class="text-7">Jeziah Lois Catanus</div>
141
+ <div class="text-8">BSCS 3A</div>
142
+ </div>
143
+ <div class="text-6">Developer</div>
144
+ </div>
145
+ </div>
146
+ </div>
147
+ </div>
148
+ <div class="footer-2">
149
+ <div class="columns-6 f2wf-columns-2">
150
+ <div class="column-6">
151
+ <div class="logo-wrapper-2"><img src="{{ url_for('static', filename='images/logo.svg') }}" loading="lazy" width="50" height="50" alt="" class="vectors-wrapper" />
152
+ <div class="text-11">Quatro</div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ <script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=642cba496c45ae8313f6671d" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
159
+ <script src="" type="text/javascript"></script>
160
+ </body>
161
+
162
+ </html>
163
+ {% endblock %}
templates/kmeans.html ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>K-Nearest Neighbor</title>
7
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/model.css')}}">
8
+ </head>
9
+
10
+ <body>
11
+ <div class="header">
12
+ <img src="{{ url_for('static', filename='images/Model-kMeans.png') }}" alt="Image" class="logo">
13
+ <h1>K-Means Clustering</h1>
14
+ </div>
15
+
16
+
17
+ <img src="{{ url_for('static', filename='images/cluster.png') }}" alt="Image" style="max-width: 100%; height: auto;">
18
+
19
+
20
+ </body>
21
+
22
+ </html>
templates/knn.html ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>K-Nearest Neighbor</title>
7
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/model.css')}}">
8
+ <script>
9
+ function validateForm() {
10
+ var experienceField = document.getElementById("experience");
11
+ var experienceValue = experienceField.value;
12
+ if (experienceValue < 0) {
13
+ alert("Experience cannot be negative.");
14
+ return false;
15
+ }
16
+
17
+ var salaryField = document.getElementById("salary");
18
+ var salaryValue = salaryField.value;
19
+ if (salaryValue < 0) {
20
+ alert("Salary cannot be negative.");
21
+ return false;
22
+ }
23
+
24
+ return true;
25
+ }
26
+ </script>
27
+ </head>
28
+
29
+ <body>
30
+ <div class="header">
31
+ <img src="{{ url_for('static', filename='images/Model-kNN.png') }}" alt="Image" class="logo">
32
+ <h1>K-Nearest Neighbor</h1>
33
+ </div>
34
+ <form method="POST" action="{{ url_for('predictknn') }}" onsubmit="return validateForm()">
35
+ <label for="experience">Experience:</label>
36
+ <input type="number" id="experience" name="experience" placeholder="Experience" required>
37
+
38
+ <label for="salary">Salary:</label>
39
+ <input type="number" id="salary" name="salary" placeholder="Salary" required>
40
+ <button type="submit" class="btn btn-primary">Classify</button>
41
+ </form>
42
+ <br>
43
+
44
+ <p>{{salary}}</p>
45
+ <p>{{experience}}</p>
46
+ <h3>{{ prediction_text }}</h3>
47
+
48
+ </body>
49
+
50
+ </html>
templates/linear.html ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>Linear Regression</title>
7
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/model.css')}}">
8
+ <script>
9
+ function validateForm() {
10
+ var experienceField = document.getElementById("experience");
11
+ var experienceValue = experienceField.value;
12
+ if (experienceValue < 0) {
13
+ alert("Experience cannot be negative.");
14
+ return false;
15
+ }
16
+ return true;
17
+ }
18
+ </script>
19
+ </head>
20
+
21
+ <body>
22
+ <div class="header">
23
+ <img src="{{ url_for('static', filename='images/Model-Linear.png') }}" alt="Image" class="logo">
24
+ <h1>Linear Regression</h1>
25
+ </div>
26
+
27
+ <!-- Main Input For Receiving Query to our ML -->
28
+ <form method="post" action="{{ url_for('predict') }}" onsubmit="return validateForm()">
29
+ <div class="form-container">
30
+ <div class="form-group">
31
+ <label for="exampleInputPassword1">Job Position:</label><br>
32
+ <select class="form-select" aria-label=".form-select-sm example" name="comp_select">
33
+ <option selected>Select Position</option>
34
+ <option value="1">Junior</option>
35
+ <option value="2">Senior</option>
36
+ <option value="3">Project Manager</option>
37
+ <option value="4">CTO</option>
38
+ </select><br><br>
39
+ <label for="experience">Experience:</label>
40
+ <input type="number" id="experience" class="form-control" name="experience" placeholder="Experience" required="required"><br><br>
41
+ </div>
42
+ </div>
43
+ <button type="submit" class="btn btn-primary">Predict</button>
44
+ </form>
45
+
46
+ <br>
47
+ <label for="exampleInputPassword1">{{ position_level }}</label><br>
48
+ <label for="exampleInputPassword1">{{ experience }}</label><br>
49
+ <label for="exampleInputPassword1">{{ prediction_text }}</label>
50
+
51
+ </body>
52
+
53
+ </html>
templates/naive.html ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <link rel="stylesheet" href="{{ url_for('static', filename='css/model.css')}}">
7
+ <script>
8
+ function validateForm() {
9
+ var experienceField = document.getElementById("experience");
10
+ var experienceValue = experienceField.value;
11
+ if (experienceValue < 0) {
12
+ alert("Experience cannot be negative.");
13
+ return false;
14
+ }
15
+
16
+ var salaryField = document.getElementById("salary");
17
+ var salaryValue = salaryField.value;
18
+ if (salaryValue < 0) {
19
+ alert("Salary cannot be negative.");
20
+ return false;
21
+ }
22
+
23
+ return true;
24
+ }
25
+ </script>
26
+ </head>
27
+
28
+ <body>
29
+ <div class="header">
30
+ <img src="{{ url_for('static', filename='images/Model-Naive.png') }}" alt="Image" class="logo">
31
+ <h1>Naive Bayes</h1>
32
+ </div>
33
+ <form action="{{ url_for('predictnaive') }}" method="POST" onsubmit="return validateForm()">
34
+ <label for="experience">Experience:</label>
35
+ <input type="number" id="experience" name="experience" placeholder="Experience" required>
36
+
37
+ <label for="salary">Salary:</label>
38
+ <input type="number" id="salary" name="salary" placeholder="Salary" required>
39
+
40
+ <button type="submit">Classify</button>
41
+ </form>
42
+
43
+ <ul>
44
+ <li>Salary: {{ salary }}</li>
45
+ <li>Experience: {{ experience }}</li>
46
+ </ul>
47
+ <table>
48
+ <tr>
49
+ <th>Naive Bayes Type</th>
50
+ <th>Prediction</th>
51
+ </tr>
52
+ <tr>
53
+ <td>Multinomial Naive Bayes</td>
54
+ <td>{{ multinomial_accuracy }}</td>
55
+ <td>{{ multinomial_prediction }}</td>
56
+ </tr>
57
+ <tr>
58
+ <td>Gaussian Naive Bayes</td>
59
+ <td>{{ gaussian_accuracy }}</td>
60
+ <td>{{ gaussian_prediction }}</td>
61
+ </tr>
62
+ <tr>
63
+ <td>Bernoulli Naive Bayes</td>
64
+ <td>{{ bernoulli_accuracy }}</td>
65
+ <td>{{ bernoulli_prediction }}</td>
66
+ </tr>
67
+ </table>
68
+ </body>
69
+
70
+ </html>