ravinder2024 commited on
Commit
49caeb4
·
verified ·
1 Parent(s): 1a41af1

Upload 13 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* 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
 
 
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
+ sc1.png filter=lfs diff=lfs merge=lfs -text
App.py ADDED
@@ -0,0 +1,435 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import nltk
3
+ import spacy
4
+ nltk.download('stopwords')
5
+ spacy.load('en_core_web_sm')
6
+
7
+ import pandas as pd
8
+ import base64, random
9
+ import time, datetime
10
+ from pyresparser import ResumeParser
11
+ from pdfminer3.layout import LAParams, LTTextBox
12
+ from pdfminer3.pdfpage import PDFPage
13
+ from pdfminer3.pdfinterp import PDFResourceManager
14
+ from pdfminer3.pdfinterp import PDFPageInterpreter
15
+ from pdfminer3.converter import TextConverter
16
+ import io, random
17
+ from streamlit_tags import st_tags
18
+ from PIL import Image
19
+ import pymysql
20
+ from Courses import ds_course, web_course, android_course, ios_course, uiux_course, resume_videos, interview_videos
21
+ import pafy
22
+ import plotly.express as px
23
+ import youtube_dl
24
+
25
+ def fetch_yt_video(link):
26
+ video = pafy.new(link)
27
+ return video.title
28
+
29
+
30
+ def get_table_download_link(df, filename, text):
31
+ """Generates a link allowing the data in a given panda dataframe to be downloaded
32
+ in: dataframe
33
+ out: href string
34
+ """
35
+ csv = df.to_csv(index=False)
36
+ b64 = base64.b64encode(csv.encode()).decode() # some strings <-> bytes conversions necessary here
37
+ # href = f'<a href="data:file/csv;base64,{b64}">Download Report</a>'
38
+ href = f'<a href="data:file/csv;base64,{b64}" download="{filename}">{text}</a>'
39
+ return href
40
+
41
+
42
+ def pdf_reader(file):
43
+ resource_manager = PDFResourceManager()
44
+ fake_file_handle = io.StringIO()
45
+ converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
46
+ page_interpreter = PDFPageInterpreter(resource_manager, converter)
47
+ with open(file, 'rb') as fh:
48
+ for page in PDFPage.get_pages(fh,
49
+ caching=True,
50
+ check_extractable=True):
51
+ page_interpreter.process_page(page)
52
+ print(page)
53
+ text = fake_file_handle.getvalue()
54
+
55
+ # close open handles
56
+ converter.close()
57
+ fake_file_handle.close()
58
+ return text
59
+
60
+
61
+ def show_pdf(file_path):
62
+ with open(file_path, "rb") as f:
63
+ base64_pdf = base64.b64encode(f.read()).decode('utf-8')
64
+ # pdf_display = f'<embed src="data:application/pdf;base64,{base64_pdf}" width="700" height="1000" type="application/pdf">'
65
+ pdf_display = F'<iframe src="data:application/pdf;base64,{base64_pdf}" width="700" height="1000" type="application/pdf"></iframe>'
66
+ st.markdown(pdf_display, unsafe_allow_html=True)
67
+
68
+
69
+ def course_recommender(course_list):
70
+ st.subheader("**Courses & Certificates🎓 Recommendations**")
71
+ c = 0
72
+ rec_course = []
73
+ no_of_reco = st.slider('Choose Number of Course Recommendations:', 1, 10, 4)
74
+ random.shuffle(course_list)
75
+ for c_name, c_link in course_list:
76
+ c += 1
77
+ st.markdown(f"({c}) [{c_name}]({c_link})")
78
+ rec_course.append(c_name)
79
+ if c == no_of_reco:
80
+ break
81
+ return rec_course
82
+
83
+
84
+ connection = pymysql.connect(host='localhost', user='root', password='')
85
+ cursor = connection.cursor()
86
+
87
+
88
+ def insert_data(name, email, res_score, timestamp, no_of_pages, reco_field, cand_level, skills, recommended_skills,
89
+ courses):
90
+ DB_table_name = 'user_data'
91
+ insert_sql = "insert into " + DB_table_name + """
92
+ values (0,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"""
93
+ rec_values = (
94
+ name, email, str(res_score), timestamp, str(no_of_pages), reco_field, cand_level, skills, recommended_skills,
95
+ courses)
96
+ cursor.execute(insert_sql, rec_values)
97
+ connection.commit()
98
+
99
+
100
+ st.set_page_config(
101
+ page_title="Smart Resume Analyzer",
102
+ page_icon='./Logo/SRA_Logo.ico',
103
+ )
104
+
105
+
106
+ def run():
107
+ st.title("Smart Resume Analyser")
108
+ st.sidebar.markdown("# Choose User")
109
+ activities = ["Normal User", "Admin"]
110
+ choice = st.sidebar.selectbox("Choose among the given options:", activities)
111
+ # link = '[©Developed by Spidy20](http://github.com/spidy20)'
112
+ # st.sidebar.markdown(link, unsafe_allow_html=True)
113
+ img = Image.open('./Logo/SRA_Logo.jpg')
114
+ img = img.resize((250, 250))
115
+ st.image(img)
116
+
117
+ # Create the DB
118
+ db_sql = """CREATE DATABASE IF NOT EXISTS SRA;"""
119
+ cursor.execute(db_sql)
120
+ connection.select_db("sra")
121
+
122
+ # Create table
123
+ DB_table_name = 'user_data'
124
+ table_sql = "CREATE TABLE IF NOT EXISTS " + DB_table_name + """
125
+ (ID INT NOT NULL AUTO_INCREMENT,
126
+ Name varchar(100) NOT NULL,
127
+ Email_ID VARCHAR(50) NOT NULL,
128
+ resume_score VARCHAR(8) NOT NULL,
129
+ Timestamp VARCHAR(50) NOT NULL,
130
+ Page_no VARCHAR(5) NOT NULL,
131
+ Predicted_Field VARCHAR(25) NOT NULL,
132
+ User_level VARCHAR(30) NOT NULL,
133
+ Actual_skills VARCHAR(300) NOT NULL,
134
+ Recommended_skills VARCHAR(300) NOT NULL,
135
+ Recommended_courses VARCHAR(600) NOT NULL,
136
+ PRIMARY KEY (ID));
137
+ """
138
+ cursor.execute(table_sql)
139
+ if choice == 'Normal User':
140
+ # st.markdown('''<h4 style='text-align: left; color: #d73b5c;'>* Upload your resume, and get smart recommendation based on it."</h4>''',
141
+ # unsafe_allow_html=True)
142
+ pdf_file = st.file_uploader("Choose your Resume", type=["pdf"])
143
+ if pdf_file is not None:
144
+ # with st.spinner('Uploading your Resume....'):
145
+ # time.sleep(4)
146
+ save_image_path = './Uploaded_Resumes/' + pdf_file.name
147
+ with open(save_image_path, "wb") as f:
148
+ f.write(pdf_file.getbuffer())
149
+ show_pdf(save_image_path)
150
+ resume_data = ResumeParser(save_image_path).get_extracted_data()
151
+ if resume_data:
152
+ ## Get the whole resume data
153
+ resume_text = pdf_reader(save_image_path)
154
+
155
+ st.header("**Resume Analysis**")
156
+ st.success("Hello " + resume_data['name'])
157
+ st.subheader("**Your Basic info**")
158
+ try:
159
+ st.text('Name: ' + resume_data['name'])
160
+ st.text('Email: ' + resume_data['email'])
161
+ st.text('Contact: ' + resume_data['mobile_number'])
162
+ st.text('Resume pages: ' + str(resume_data['no_of_pages']))
163
+ except:
164
+ pass
165
+ cand_level = ''
166
+ if resume_data['no_of_pages'] == 1:
167
+ cand_level = "Fresher"
168
+ st.markdown('''<h4 style='text-align: left; color: #d73b5c;'>You are looking Fresher.</h4>''',
169
+ unsafe_allow_html=True)
170
+ elif resume_data['no_of_pages'] == 2:
171
+ cand_level = "Intermediate"
172
+ st.markdown('''<h4 style='text-align: left; color: #1ed760;'>You are at intermediate level!</h4>''',
173
+ unsafe_allow_html=True)
174
+ elif resume_data['no_of_pages'] >= 3:
175
+ cand_level = "Experienced"
176
+ st.markdown('''<h4 style='text-align: left; color: #fba171;'>You are at experience level!''',
177
+ unsafe_allow_html=True)
178
+
179
+ st.subheader("**Skills Recommendation💡**")
180
+ ## Skill shows
181
+ keywords = st_tags(label='### Skills that you have',
182
+ text='See our skills recommendation',
183
+ value=resume_data['skills'], key='1')
184
+
185
+ ## recommendation
186
+ ds_keyword = ['tensorflow', 'keras', 'pytorch', 'machine learning', 'deep Learning', 'flask',
187
+ 'streamlit']
188
+ web_keyword = ['react', 'django', 'node jS', 'react js', 'php', 'laravel', 'magento', 'wordpress',
189
+ 'javascript', 'angular js', 'c#', 'flask']
190
+ android_keyword = ['android', 'android development', 'flutter', 'kotlin', 'xml', 'kivy']
191
+ ios_keyword = ['ios', 'ios development', 'swift', 'cocoa', 'cocoa touch', 'xcode']
192
+ uiux_keyword = ['ux', 'adobe xd', 'figma', 'zeplin', 'balsamiq', 'ui', 'prototyping', 'wireframes',
193
+ 'storyframes', 'adobe photoshop', 'photoshop', 'editing', 'adobe illustrator',
194
+ 'illustrator', 'adobe after effects', 'after effects', 'adobe premier pro',
195
+ 'premier pro', 'adobe indesign', 'indesign', 'wireframe', 'solid', 'grasp',
196
+ 'user research', 'user experience']
197
+
198
+ recommended_skills = []
199
+ reco_field = ''
200
+ rec_course = ''
201
+ ## Courses recommendation
202
+ for i in resume_data['skills']:
203
+ ## Data science recommendation
204
+ if i.lower() in ds_keyword:
205
+ print(i.lower())
206
+ reco_field = 'Data Science'
207
+ st.success("** Our analysis says you are looking for Data Science Jobs.**")
208
+ recommended_skills = ['Data Visualization', 'Predictive Analysis', 'Statistical Modeling',
209
+ 'Data Mining', 'Clustering & Classification', 'Data Analytics',
210
+ 'Quantitative Analysis', 'Web Scraping', 'ML Algorithms', 'Keras',
211
+ 'Pytorch', 'Probability', 'Scikit-learn', 'Tensorflow', "Flask",
212
+ 'Streamlit']
213
+ recommended_keywords = st_tags(label='### Recommended skills for you.',
214
+ text='Recommended skills generated from System',
215
+ value=recommended_skills, key='2')
216
+ st.markdown(
217
+ '''<h4 style='text-align: left; color: #1ed760;'>Adding this skills to resume will boost🚀 the chances of getting a Job💼</h4>''',
218
+ unsafe_allow_html=True)
219
+ rec_course = course_recommender(ds_course)
220
+ break
221
+
222
+ ## Web development recommendation
223
+ elif i.lower() in web_keyword:
224
+ print(i.lower())
225
+ reco_field = 'Web Development'
226
+ st.success("** Our analysis says you are looking for Web Development Jobs **")
227
+ recommended_skills = ['React', 'Django', 'Node JS', 'React JS', 'php', 'laravel', 'Magento',
228
+ 'wordpress', 'Javascript', 'Angular JS', 'c#', 'Flask', 'SDK']
229
+ recommended_keywords = st_tags(label='### Recommended skills for you.',
230
+ text='Recommended skills generated from System',
231
+ value=recommended_skills, key='3')
232
+ st.markdown(
233
+ '''<h4 style='text-align: left; color: #1ed760;'>Adding this skills to resume will boost🚀 the chances of getting a Job💼</h4>''',
234
+ unsafe_allow_html=True)
235
+ rec_course = course_recommender(web_course)
236
+ break
237
+
238
+ ## Android App Development
239
+ elif i.lower() in android_keyword:
240
+ print(i.lower())
241
+ reco_field = 'Android Development'
242
+ st.success("** Our analysis says you are looking for Android App Development Jobs **")
243
+ recommended_skills = ['Android', 'Android development', 'Flutter', 'Kotlin', 'XML', 'Java',
244
+ 'Kivy', 'GIT', 'SDK', 'SQLite']
245
+ recommended_keywords = st_tags(label='### Recommended skills for you.',
246
+ text='Recommended skills generated from System',
247
+ value=recommended_skills, key='4')
248
+ st.markdown(
249
+ '''<h4 style='text-align: left; color: #1ed760;'>Adding this skills to resume will boost🚀 the chances of getting a Job💼</h4>''',
250
+ unsafe_allow_html=True)
251
+ rec_course = course_recommender(android_course)
252
+ break
253
+
254
+ ## IOS App Development
255
+ elif i.lower() in ios_keyword:
256
+ print(i.lower())
257
+ reco_field = 'IOS Development'
258
+ st.success("** Our analysis says you are looking for IOS App Development Jobs **")
259
+ recommended_skills = ['IOS', 'IOS Development', 'Swift', 'Cocoa', 'Cocoa Touch', 'Xcode',
260
+ 'Objective-C', 'SQLite', 'Plist', 'StoreKit', "UI-Kit", 'AV Foundation',
261
+ 'Auto-Layout']
262
+ recommended_keywords = st_tags(label='### Recommended skills for you.',
263
+ text='Recommended skills generated from System',
264
+ value=recommended_skills, key='5')
265
+ st.markdown(
266
+ '''<h4 style='text-align: left; color: #1ed760;'>Adding this skills to resume will boost🚀 the chances of getting a Job💼</h4>''',
267
+ unsafe_allow_html=True)
268
+ rec_course = course_recommender(ios_course)
269
+ break
270
+
271
+ ## Ui-UX Recommendation
272
+ elif i.lower() in uiux_keyword:
273
+ print(i.lower())
274
+ reco_field = 'UI-UX Development'
275
+ st.success("** Our analysis says you are looking for UI-UX Development Jobs **")
276
+ recommended_skills = ['UI', 'User Experience', 'Adobe XD', 'Figma', 'Zeplin', 'Balsamiq',
277
+ 'Prototyping', 'Wireframes', 'Storyframes', 'Adobe Photoshop', 'Editing',
278
+ 'Illustrator', 'After Effects', 'Premier Pro', 'Indesign', 'Wireframe',
279
+ 'Solid', 'Grasp', 'User Research']
280
+ recommended_keywords = st_tags(label='### Recommended skills for you.',
281
+ text='Recommended skills generated from System',
282
+ value=recommended_skills, key='6')
283
+ st.markdown(
284
+ '''<h4 style='text-align: left; color: #1ed760;'>Adding this skills to resume will boost🚀 the chances of getting a Job💼</h4>''',
285
+ unsafe_allow_html=True)
286
+ rec_course = course_recommender(uiux_course)
287
+ break
288
+
289
+ #
290
+ ## Insert into table
291
+ ts = time.time()
292
+ cur_date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
293
+ cur_time = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
294
+ timestamp = str(cur_date + '_' + cur_time)
295
+
296
+ ### Resume writing recommendation
297
+ st.subheader("**Resume Tips & Ideas💡**")
298
+ resume_score = 0
299
+ if 'Objective' in resume_text:
300
+ resume_score = resume_score + 20
301
+ st.markdown(
302
+ '''<h4 style='text-align: left; color: #1ed760;'>[+] Awesome! You have added Objective</h4>''',
303
+ unsafe_allow_html=True)
304
+ else:
305
+ st.markdown(
306
+ '''<h4 style='text-align: left; color: #fabc10;'>[-] According to our recommendation please add your career objective, it will give your career intension to the Recruiters.</h4>''',
307
+ unsafe_allow_html=True)
308
+
309
+ if 'Declaration' in resume_text:
310
+ resume_score = resume_score + 20
311
+ st.markdown(
312
+ '''<h4 style='text-align: left; color: #1ed760;'>[+] Awesome! You have added Delcaration✍/h4>''',
313
+ unsafe_allow_html=True)
314
+ else:
315
+ st.markdown(
316
+ '''<h4 style='text-align: left; color: #fabc10;'>[-] According to our recommendation please add Declaration✍. It will give the assurance that everything written on your resume is true and fully acknowledged by you</h4>''',
317
+ unsafe_allow_html=True)
318
+
319
+ if 'Hobbies' or 'Interests' in resume_text:
320
+ resume_score = resume_score + 20
321
+ st.markdown(
322
+ '''<h4 style='text-align: left; color: #1ed760;'>[+] Awesome! You have added your Hobbies⚽</h4>''',
323
+ unsafe_allow_html=True)
324
+ else:
325
+ st.markdown(
326
+ '''<h4 style='text-align: left; color: #fabc10;'>[-] According to our recommendation please add Hobbies⚽. It will show your persnality to the Recruiters and give the assurance that you are fit for this role or not.</h4>''',
327
+ unsafe_allow_html=True)
328
+
329
+ if 'Achievements' in resume_text:
330
+ resume_score = resume_score + 20
331
+ st.markdown(
332
+ '''<h4 style='text-align: left; color: #1ed760;'>[+] Awesome! You have added your Achievements🏅 </h4>''',
333
+ unsafe_allow_html=True)
334
+ else:
335
+ st.markdown(
336
+ '''<h4 style='text-align: left; color: #fabc10;'>[-] According to our recommendation please add Achievements🏅. It will show that you are capable for the required position.</h4>''',
337
+ unsafe_allow_html=True)
338
+
339
+ if 'Projects' in resume_text:
340
+ resume_score = resume_score + 20
341
+ st.markdown(
342
+ '''<h4 style='text-align: left; color: #1ed760;'>[+] Awesome! You have added your Projects👨‍💻 </h4>''',
343
+ unsafe_allow_html=True)
344
+ else:
345
+ st.markdown(
346
+ '''<h4 style='text-align: left; color: #fabc10;'>[-] According to our recommendation please add Projects👨‍💻. It will show that you have done work related the required position or not.</h4>''',
347
+ unsafe_allow_html=True)
348
+
349
+ st.subheader("**Resume Score📝**")
350
+ st.markdown(
351
+ """
352
+ <style>
353
+ .stProgress > div > div > div > div {
354
+ background-color: #d73b5c;
355
+ }
356
+ </style>""",
357
+ unsafe_allow_html=True,
358
+ )
359
+ my_bar = st.progress(0)
360
+ score = 0
361
+ for percent_complete in range(resume_score):
362
+ score += 1
363
+ time.sleep(0.1)
364
+ my_bar.progress(percent_complete + 1)
365
+ st.success('** Your Resume Writing Score: ' + str(score) + '**')
366
+ st.warning(
367
+ "** Note: This score is calculated based on the content that you have added in your Resume. **")
368
+ st.balloons()
369
+
370
+ insert_data(resume_data['name'], resume_data['email'], str(resume_score), timestamp,
371
+ str(resume_data['no_of_pages']), reco_field, cand_level, str(resume_data['skills']),
372
+ str(recommended_skills), str(rec_course))
373
+
374
+ ## Resume writing video
375
+ st.header("**Bonus Video for Resume Writing Tips💡**")
376
+ resume_vid = random.choice(resume_videos)
377
+ res_vid_title = fetch_yt_video(resume_vid)
378
+ st.subheader("✅ **" + res_vid_title + "**")
379
+ st.video(resume_vid)
380
+
381
+ ## Interview Preparation Video
382
+ st.header("**Bonus Video for Interview👨‍💼 Tips💡**")
383
+ interview_vid = random.choice(interview_videos)
384
+ int_vid_title = fetch_yt_video(interview_vid)
385
+ st.subheader("✅ **" + int_vid_title + "**")
386
+ st.video(interview_vid)
387
+
388
+ connection.commit()
389
+ else:
390
+ st.error('Something went wrong..')
391
+ else:
392
+ ## Admin Side
393
+ st.success('Welcome to Admin Side')
394
+ # st.sidebar.subheader('**ID / Password Required!**')
395
+
396
+ ad_user = st.text_input("Username")
397
+ ad_password = st.text_input("Password", type='password')
398
+ if st.button('Login'):
399
+ if ad_user == 'machine_learning_hub' and ad_password == 'mlhub123':
400
+ st.success("Welcome Kushal")
401
+ # Display Data
402
+ cursor.execute('''SELECT*FROM user_data''')
403
+ data = cursor.fetchall()
404
+ st.header("**User's👨‍💻 Data**")
405
+ df = pd.DataFrame(data, columns=['ID', 'Name', 'Email', 'Resume Score', 'Timestamp', 'Total Page',
406
+ 'Predicted Field', 'User Level', 'Actual Skills', 'Recommended Skills',
407
+ 'Recommended Course'])
408
+ st.dataframe(df)
409
+ st.markdown(get_table_download_link(df, 'User_Data.csv', 'Download Report'), unsafe_allow_html=True)
410
+ ## Admin Side Data
411
+ query = 'select * from user_data;'
412
+ plot_data = pd.read_sql(query, connection)
413
+
414
+ ## Pie chart for predicted field recommendations
415
+ labels = plot_data.Predicted_Field.unique()
416
+ print(labels)
417
+ values = plot_data.Predicted_Field.value_counts()
418
+ print(values)
419
+ st.subheader("📈 **Pie-Chart for Predicted Field Recommendations**")
420
+ fig = px.pie(df, values=values, names=labels, title='Predicted Field according to the Skills')
421
+ st.plotly_chart(fig)
422
+
423
+ ### Pie chart for User's👨‍💻 Experienced Level
424
+ labels = plot_data.User_level.unique()
425
+ values = plot_data.User_level.value_counts()
426
+ st.subheader("📈 ** Pie-Chart for User's👨‍💻 Experienced Level**")
427
+ fig = px.pie(df, values=values, names=labels, title="Pie-Chart📈 for User's👨‍💻 Experienced Level")
428
+ st.plotly_chart(fig)
429
+
430
+
431
+ else:
432
+ st.error("Wrong ID & Password Provided")
433
+
434
+
435
+ run()
Courses.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ds_course = [['Machine Learning Crash Course by Google [Free]', 'https://developers.google.com/machine-learning/crash-course'],
2
+ ['Machine Learning A-Z by Udemy','https://www.udemy.com/course/machinelearning/'],
3
+ ['Machine Learning by Andrew NG','https://www.coursera.org/learn/machine-learning'],
4
+ ['Data Scientist Master Program of Simplilearn (IBM)','https://www.simplilearn.com/big-data-and-analytics/senior-data-scientist-masters-program-training'],
5
+ ['Data Science Foundations: Fundamentals by LinkedIn','https://www.linkedin.com/learning/data-science-foundations-fundamentals-5'],
6
+ ['Data Scientist with Python','https://www.datacamp.com/tracks/data-scientist-with-python'],
7
+ ['Programming for Data Science with Python','https://www.udacity.com/course/programming-for-data-science-nanodegree--nd104'],
8
+ ['Programming for Data Science with R','https://www.udacity.com/course/programming-for-data-science-nanodegree-with-R--nd118'],
9
+ ['Introduction to Data Science','https://www.udacity.com/course/introduction-to-data-science--cd0017'],
10
+ ['Intro to Machine Learning with TensorFlow','https://www.udacity.com/course/intro-to-machine-learning-with-tensorflow-nanodegree--nd230']]
11
+
12
+ web_course = [['Django Crash course [Free]','https://youtu.be/e1IyzVyrLSU'],
13
+ ['Python and Django Full Stack Web Developer Bootcamp','https://www.udemy.com/course/python-and-django-full-stack-web-developer-bootcamp'],
14
+ ['React Crash Course [Free]','https://youtu.be/Dorf8i6lCuk'],
15
+ ['ReactJS Project Development Training','https://www.dotnettricks.com/training/masters-program/reactjs-certification-training'],
16
+ ['Full Stack Web Developer - MEAN Stack','https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training'],
17
+ ['Node.js and Express.js [Free]','https://youtu.be/Oe421EPjeBE'],
18
+ ['Flask: Develop Web Applications in Python','https://www.educative.io/courses/flask-develop-web-applications-in-python'],
19
+ ['Full Stack Web Developer by Udacity','https://www.udacity.com/course/full-stack-web-developer-nanodegree--nd0044'],
20
+ ['Front End Web Developer by Udacity','https://www.udacity.com/course/front-end-web-developer-nanodegree--nd0011'],
21
+ ['Become a React Developer by Udacity','https://www.udacity.com/course/react-nanodegree--nd019']]
22
+
23
+ android_course = [['Android Development for Beginners [Free]','https://youtu.be/fis26HvvDII'],
24
+ ['Android App Development Specialization','https://www.coursera.org/specializations/android-app-development'],
25
+ ['Associate Android Developer Certification','https://grow.google/androiddev/#?modal_active=none'],
26
+ ['Become an Android Kotlin Developer by Udacity','https://www.udacity.com/course/android-kotlin-developer-nanodegree--nd940'],
27
+ ['Android Basics by Google','https://www.udacity.com/course/android-basics-nanodegree-by-google--nd803'],
28
+ ['The Complete Android Developer Course','https://www.udemy.com/course/complete-android-n-developer-course/'],
29
+ ['Building an Android App with Architecture Components','https://www.linkedin.com/learning/building-an-android-app-with-architecture-components'],
30
+ ['Android App Development Masterclass using Kotlin','https://www.udemy.com/course/android-oreo-kotlin-app-masterclass/'],
31
+ ['Flutter & Dart - The Complete Flutter App Development Course','https://www.udemy.com/course/flutter-dart-the-complete-flutter-app-development-course/'],
32
+ ['Flutter App Development Course [Free]','https://youtu.be/rZLR5olMR64']]
33
+
34
+ ios_course = [['IOS App Development by LinkedIn','https://www.linkedin.com/learning/subscription/topics/ios'],
35
+ ['iOS & Swift - The Complete iOS App Development Bootcamp','https://www.udemy.com/course/ios-13-app-development-bootcamp/'],
36
+ ['Become an iOS Developer','https://www.udacity.com/course/ios-developer-nanodegree--nd003'],
37
+ ['iOS App Development with Swift Specialization','https://www.coursera.org/specializations/app-development'],
38
+ ['Mobile App Development with Swift','https://www.edx.org/professional-certificate/curtinx-mobile-app-development-with-swift'],
39
+ ['Swift Course by LinkedIn','https://www.linkedin.com/learning/subscription/topics/swift-2'],
40
+ ['Objective-C Crash Course for Swift Developers','https://www.udemy.com/course/objectivec/'],
41
+ ['Learn Swift by Codecademy','https://www.codecademy.com/learn/learn-swift'],
42
+ ['Swift Tutorial - Full Course for Beginners [Free]','https://youtu.be/comQ1-x2a1Q'],
43
+ ['Learn Swift Fast - [Free]','https://youtu.be/FcsY1YPBwzQ']]
44
+ uiux_course = [['Google UX Design Professional Certificate','https://www.coursera.org/professional-certificates/google-ux-design'],
45
+ ['UI / UX Design Specialization','https://www.coursera.org/specializations/ui-ux-design'],
46
+ ['The Complete App Design Course - UX, UI and Design Thinking','https://www.udemy.com/course/the-complete-app-design-course-ux-and-ui-design/'],
47
+ ['UX & Web Design Master Course: Strategy, Design, Development','https://www.udemy.com/course/ux-web-design-master-course-strategy-design-development/'],
48
+ ['The Complete App Design Course - UX, UI and Design Thinking','https://www.udemy.com/course/the-complete-app-design-course-ux-and-ui-design/'],
49
+ ['DESIGN RULES: Principles + Practices for Great UI Design','https://www.udemy.com/course/design-rules/'],
50
+ ['Become a UX Designer by Udacity','https://www.udacity.com/course/ux-designer-nanodegree--nd578'],
51
+ ['Adobe XD Tutorial: User Experience Design Course [Free]','https://youtu.be/68w2VwalD5w'],
52
+ ['Adobe XD for Beginners [Free]','https://youtu.be/WEljsc2jorI'],
53
+ ['Adobe XD in Simple Way','https://learnux.io/course/adobe-xd']]
54
+
55
+ resume_videos = ['https://youtu.be/y8YH0Qbu5h4','https://youtu.be/J-4Fv8nq1iA',
56
+ 'https://youtu.be/yp693O87GmM','https://youtu.be/UeMmCex9uTU',
57
+ 'https://youtu.be/dQ7Q8ZdnuN0','https://youtu.be/HQqqQx5BCFY',
58
+ 'https://youtu.be/CLUsplI4xMU','https://youtu.be/pbczsLkv7Cc']
59
+
60
+ interview_videos = ['https://youtu.be/Ji46s5BHdr0','https://youtu.be/seVxXHi2YMs',
61
+ 'https://youtu.be/9FgfsLa_SmY','https://youtu.be/2HQmjLu-6RQ',
62
+ 'https://youtu.be/DQd_AlIvHUw','https://youtu.be/oVVdezJ0e7w'
63
+ 'https://youtu.be/JZK1MZwUyUU','https://youtu.be/CyXLhHQS3KY']
Logo/SRA_Logo.ico ADDED
Logo/SRA_Logo.jpg ADDED
README.md CHANGED
@@ -1,14 +1,54 @@
1
- ---
2
- title: Resume Analyser
3
- emoji: 🦀
4
- colorFrom: pink
5
- colorTo: pink
6
- sdk: streamlit
7
- sdk_version: 1.41.1
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- short_description: resume analyser
12
- ---
13
-
14
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Smart Resume Analyser App
2
+
3
+ [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)
4
+ [![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/)
5
+
6
+ ## [Watch Tutorial for this project](https://youtu.be/hqu5EYMLCUw)
7
+ <img src="https://github.com/Spidy20/Smart_Resume_Analyser_App/blob/master/yt_thumb.jpg">
8
+
9
+ ## [Get the project Report, PPT, and Diagrams](https://kushalbhavsar1820.stores.instamojo.com/product/864991/smart-resume-analyzer-ppt-report-and-diagram-c091f/)
10
+ ## Source
11
+ - Extracting user's information from the Resume, I used [PyResparser](https://omkarpathak.in/pyresparser/)
12
+ - Extracting Resume PDF into Text, I used [PDFMiner](https://pypi.org/project/pdfminer/).
13
+
14
+ ## Features
15
+ - User's & Admin Section
16
+ - Resume Score
17
+ - Career Recommendations
18
+ - Resume writing Tips suggestions
19
+ - Courses Recommendations
20
+ - Skills Recommendations
21
+ - Youtube video recommendations
22
+
23
+ ## Usage
24
+ - Clone my repository.
25
+ - Open CMD in working directory.
26
+ - Run following command.
27
+ ```
28
+ pip install -r requirements.txt
29
+ ```
30
+ - `App.py` is the main Python file of Streamlit Web-Application.
31
+ - `Courses.py` is the Python file that contains courses and youtube video links.
32
+ - Download XAMP or any other control panel, and turn on the Apache & SQL service.
33
+ - To run app, write following command in CMD. or use any IDE.
34
+ ```
35
+ streamlit run App.py
36
+ ```
37
+ - `Uploaded_Resumes` folder is contaning the user's uploaded resumes.
38
+ - `Classifier.py` is the main file which is containing a KNN Algorithm.
39
+ - For more explanation of this project see the tutorial on Machine Learning Hub YouTube channel.
40
+ - Admin side credentials is `machine_learning_hub` and password is `mlhub123`.
41
+
42
+ ## Screenshots
43
+
44
+ ## User side
45
+ <img src="https://github.com/Spidy20/Smart_Resume_Analyser_App/blob/master/sc1.png">
46
+
47
+ ## Admin Side
48
+ <img src="https://github.com/Spidy20/Smart_Resume_Analyser_App/blob/master/sc2.png">
49
+
50
+
51
+ ## Just follow☝️ me and Star⭐ my repository
52
+
53
+ # [Buy me a Coffee☕](https://www.buymeacoffee.com/spidy20)
54
+ ## [Donate me on PayPal(It will inspire me to do more projects)](https://www.paypal.me/spidy1820)
Uploaded_Resumes/IOS1.pdf ADDED
Binary file (74.3 kB). View file
 
Uploaded_Resumes/UIUX_Resume1.pdf ADDED
Binary file (44.6 kB). View file
 
Uploaded_Resumes/android-developer-1559034496.pdf ADDED
Binary file (249 kB). View file
 
Uploaded_Resumes/data-scientist-1559725114.pdf ADDED
Binary file (250 kB). View file
 
requirements.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ pdfminer3
2
+ pyresparser
3
+ streamlit
4
+ pandas
5
+ pafy
6
+ plotly
7
+ pymysql
8
+ streamlit-tags
9
+ Pillow
10
+ youtube-dl
11
+ nltk
12
+ pdfminer3
13
+ spacy==2.3.5
sc1.png ADDED

Git LFS Details

  • SHA256: 06d96796690b16ec2da3f44210913447007ef025db032557765e53bc804632a0
  • Pointer size: 132 Bytes
  • Size of remote file: 3.09 MB
sc2.png ADDED
yt_thumb.jpg ADDED