from flask import Flask, render_template, request, redirect, session, url_for from models import db, User, Case from ai_module import summarize_text, find_similar_cases from utils import extract_text_from_pdf import os app = Flask(__name__) app.secret_key = "supersecretkey" # PostgreSQL DB app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:password@localhost/national_ai_judicial' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db.init_app(app) UPLOAD_FOLDER = 'uploads' os.makedirs(UPLOAD_FOLDER, exist_ok=True) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER # ---------------- Routes ---------------- #
@app .route('/', methods=['GET','POST']) def login(): # Login logic same as before ...
@app .route('/dashboard') def dashboard(): cases = Case.query.all() return render_template('dashboard.html', cases=cases, user=session['username'], role=session['role'])
@app .route('/add_case', methods=['GET','POST']) def add_case(): if request.method == 'POST': title = request.form['title'] description = request.form['description'] court = request.form['court'] # PDF upload optional pdf_file = request.files.get('pdf_file') filename = None if pdf_file: filename = pdf_file.filename pdf_path = os.path.join(app.config['UPLOAD_FOLDER'], filename) pdf_file.save(pdf_path) pdf_text = extract_text_from_pdf(pdf_path) description += "\n" + pdf_text summary = summarize_text(description) new_case = Case(title=title, description=description, summary=summary, pdf_filename=filename, court=court) db.session.add(new_case) db.session.commit() similar = find_similar_cases(description, Case.query.all()) return render_template('dashboard.html', cases=Case.query.all(), similar_cases=similar, user=session['username'], role=session['role']) return render_template('add_case.html')