husseinelsaadi commited on
Commit
e83166d
·
1 Parent(s): f8bfc75
.gitattributes CHANGED
@@ -1,2 +1,3 @@
1
  *.png filter=lfs diff=lfs merge=lfs -text
2
  backend/static/images/LUNA.png filter=lfs diff=lfs merge=lfs -text
 
 
1
  *.png filter=lfs diff=lfs merge=lfs -text
2
  backend/static/images/LUNA.png filter=lfs diff=lfs merge=lfs -text
3
+ *.mp4 filter=lfs diff=lfs merge=lfs -text
backend/routes/interview_api.py CHANGED
@@ -319,7 +319,8 @@ def process_answer():
319
  "next_question": next_question_text,
320
  "audio_url": audio_url,
321
  "evaluation": evaluation_result,
322
- "is_complete": is_complete
 
323
  })
324
 
325
  except Exception as e:
@@ -355,4 +356,11 @@ def get_audio(filename: str):
355
 
356
  except Exception as e:
357
  logging.error(f"Error serving audio file {filename}: {e}")
358
- return jsonify({"error": "Error serving audio file."}), 500
 
 
 
 
 
 
 
 
319
  "next_question": next_question_text,
320
  "audio_url": audio_url,
321
  "evaluation": evaluation_result,
322
+ "is_complete": is_complete,
323
+ "redirect_url": url_for("interview_api.interview_complete") if is_complete else None
324
  })
325
 
326
  except Exception as e:
 
356
 
357
  except Exception as e:
358
  logging.error(f"Error serving audio file {filename}: {e}")
359
+ return jsonify({"error": "Error serving audio file."}), 500
360
+
361
+ from flask import render_template
362
+
363
+ @interview_api.route("/interview/complete", methods=["GET"])
364
+ @login_required
365
+ def interview_complete():
366
+ return render_template("closing.html")
backend/static/videos/AI_Recruiter_Video_Generation.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c36a72c309030808fe64eff4f005891b98a48210fa75d2f3e6639623cc8cf7d
3
+ size 946136
backend/templates/base.html CHANGED
@@ -405,6 +405,14 @@
405
  left: 0;
406
  }
407
 
 
 
 
 
 
 
 
 
408
  .hero-buttons {
409
  display: flex;
410
  justify-content: center;
 
405
  left: 0;
406
  }
407
 
408
+ .luna-avatar video {
409
+ width: 100%;
410
+ height: 100%;
411
+ object-fit: cover;
412
+ border-radius: 50%;
413
+ }
414
+
415
+
416
  .hero-buttons {
417
  display: flex;
418
  justify-content: center;
backend/templates/closing.html ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% extends "base.html" %}
2
+
3
+ {% block title %}Interview Complete - Codingo{% endblock %}
4
+
5
+ {% block hero %}
6
+ <section class="hero">
7
+ <div class="container">
8
+ <div class="hero-content">
9
+ <!-- Rounded Video Container -->
10
+ <div class="luna-avatar-container">
11
+ <div class="luna-glow"></div>
12
+ <div class="luna-avatar">
13
+ <video id="closingVideo" autoplay playsinline>
14
+ <source src="{{ url_for('static', filename='videos/AI_Interview_Closing_Statement_Video.mp4') }}" type="video/mp4">
15
+ Your browser does not support the video tag.
16
+ </video>
17
+ </div>
18
+ </div>
19
+ <h2 style="margin-top: 1rem;">Thank you for your time,<br>we will get back to you if shortlisted.</h2>
20
+ </div>
21
+ </div>
22
+ </section>
23
+
24
+ <script>
25
+ const video = document.getElementById('closingVideo');
26
+ video.addEventListener('ended', function() {
27
+ window.location.href = "{{ url_for('index') }}";
28
+ });
29
+ </script>
30
+ {% endblock %}
backend/templates/interview.html CHANGED
@@ -887,6 +887,9 @@
887
 
888
  if (data.is_complete) {
889
  console.log('Interview completed');
 
 
 
890
  this.showInterviewSummary();
891
  } else {
892
  console.log('Moving to next question');
 
887
 
888
  if (data.is_complete) {
889
  console.log('Interview completed');
890
+ if (data.redirect_url) {
891
+ window.location.href = data.redirect_url;
892
+ }
893
  this.showInterviewSummary();
894
  } else {
895
  console.log('Moving to next question');