webcodelab commited on
Commit
6b8f5a1
·
verified ·
1 Parent(s): 26004d7

Update app/routes.py

Browse files
Files changed (1) hide show
  1. app/routes.py +31 -6
app/routes.py CHANGED
@@ -219,7 +219,6 @@ def resend_verification():
219
  return render_template('resend_verification.html')
220
 
221
 
222
-
223
  @auth.route('/dashboard')
224
  def dashboard():
225
  if 'user_id' not in session:
@@ -227,17 +226,43 @@ def dashboard():
227
  return redirect(url_for('auth.login'))
228
 
229
  user_id = session['user_id']
230
- res = requests.get(
 
 
231
  f"{SUPABASE_URL}/rest/v1/users?id=eq.{user_id}&select=*",
232
  headers=HEADERS
233
  )
234
-
235
- if res.status_code != 200 or not res.json():
236
  flash('User not found.')
237
  return redirect(url_for('auth.login'))
 
238
 
239
- user = res.json()[0]
240
- return render_template('dashboard.html', user=user)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
 
242
  @auth.route('/generate-api', methods=['GET', 'POST'])
243
  def generate_api():
 
219
  return render_template('resend_verification.html')
220
 
221
 
 
222
  @auth.route('/dashboard')
223
  def dashboard():
224
  if 'user_id' not in session:
 
226
  return redirect(url_for('auth.login'))
227
 
228
  user_id = session['user_id']
229
+
230
+ # Fetch user info
231
+ user_res = requests.get(
232
  f"{SUPABASE_URL}/rest/v1/users?id=eq.{user_id}&select=*",
233
  headers=HEADERS
234
  )
235
+ if user_res.status_code != 200 or not user_res.json():
 
236
  flash('User not found.')
237
  return redirect(url_for('auth.login'))
238
+ user = user_res.json()[0]
239
 
240
+ # Fetch user's resume uploads
241
+ uploads_res = requests.get(
242
+ f"{SUPABASE_URL}/rest/v1/resume-api?user_id=eq.{user_id}&select=*",
243
+ headers=HEADERS
244
+ )
245
+
246
+ analytics = {
247
+ 'average_score': None,
248
+ 'top_resume': None,
249
+ 'last_upload_date': None
250
+ }
251
+
252
+ if uploads_res.status_code == 200:
253
+ uploads = uploads_res.json()
254
+ if uploads:
255
+ scores = [u['score'] for u in uploads if u.get('score') is not None]
256
+ if scores:
257
+ analytics['average_score'] = round(sum(scores) / len(scores), 2)
258
+
259
+ top = max(uploads, key=lambda x: x.get('score', 0))
260
+ analytics['top_resume'] = top.get('resume_name', 'N/A')
261
+
262
+ last_upload = max(uploads, key=lambda x: x.get('upload_date', ''))
263
+ analytics['last_upload_date'] = last_upload.get('upload_date', '')[:16] # YYYY-MM-DD HH:MM
264
+
265
+ return render_template('dashboard.html', user=user, analytics=analytics)
266
 
267
  @auth.route('/generate-api', methods=['GET', 'POST'])
268
  def generate_api():