Spaces:
Paused
Paused
File size: 2,769 Bytes
2ae57cb d8acd61 2ae57cb d8acd61 2ae57cb d8acd61 2ae57cb d8acd61 2ae57cb d8acd61 2ae57cb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
from flask import Blueprint, render_template, redirect, url_for, flash, request, jsonify
from flask_login import login_user, logout_user, login_required, current_user
from werkzeug.utils import secure_filename
import os
import json
from datetime import datetime
from backend.form.AuthForms import LoginForm, SignupForm
from backend.models.user import User
from backend.models.database import db
auth_bp = Blueprint('auth', __name__)
def handle_resume_upload(file):
"""
Save uploaded file temporarily, extract features, then clean up.
Returns (features_dict, error_message, filename)
"""
if not file or file.filename == '':
return None, "No file uploaded", None
try:
# Get current directory for temp folder
current_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
filename = secure_filename(file.filename)
filepath = os.path.join(current_dir, 'temp', filename)
os.makedirs(os.path.dirname(filepath), exist_ok=True)
file.save(filepath)
features = extract_resume_features(filepath)
os.remove(filepath) # Clean up after parsing
return features, None, filename
except Exception as e:
print(f"Error in handle_resume_upload: {e}")
return None, str(e), None
@auth_bp.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(email=form.email.data).first()
if user and user.check_password(form.password.data):
login_user(user)
return redirect(url_for('index'))
else:
flash('Invalid credentials', 'danger')
return render_template('login.html', form=form)
@auth_bp.route('/signup', methods=['GET', 'POST'])
def signup():
form = SignupForm()
if form.validate_on_submit():
existing_user = User.query.filter_by(email=form.email.data).first()
if existing_user:
flash('Email already registered.', 'warning')
else:
user = User(
username=form.username.data,
email=form.email.data,
role=form.role.data
)
user.set_password(form.password.data)
db.session.add(user)
db.session.commit()
# Log the user in and redirect to profile completion
login_user(user)
flash('Account created successfully! Welcome to Codingo.', 'success')
return redirect(url_for('index'))
return render_template('signup.html', form=form)
@auth_bp.route('/logout')
@login_required
def logout():
logout_user()
flash('You have been logged out successfully.', 'info')
return redirect(url_for('auth.login')) |