Spaces:
Sleeping
Sleeping
File size: 2,354 Bytes
dde2647 ecc4072 | 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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | import gradio as gr
from auth import login, signup
from certificate_ai import read_pdf, verify_certificate
from db import cert_collection
current_user = {"username":None,"role":None}
def user_login(username,password):
role = login(username,password)
if role == "user":
current_user["username"] = username
return "User Login Successful"
if role == "admin":
current_user["username"] = username
return "Admin Login Successful"
return "Invalid Login"
def upload_certificate(file):
text = read_pdf(file)
result = verify_certificate(text)
cert_collection.insert_one({
"username":current_user["username"],
"certificate_text":text,
"result":result
})
return result
def view_certificates():
data = cert_collection.find()
output = []
for d in data:
output.append([d["username"],d["result"]])
return output
with gr.Blocks() as demo:
gr.Markdown("# Internship Certificate Verification System")
with gr.Tab("Signup"):
username = gr.Textbox(label="Username")
password = gr.Textbox(label="Password",type="password")
role = gr.Dropdown(["user","admin"])
signup_btn = gr.Button("Signup")
signup_output = gr.Textbox()
signup_btn.click(signup,
inputs=[username,password,role],
outputs=signup_output)
with gr.Tab("Login"):
l_user = gr.Textbox(label="Username")
l_pass = gr.Textbox(label="Password",type="password")
login_btn = gr.Button("Login")
login_output = gr.Textbox()
login_btn.click(user_login,
inputs=[l_user,l_pass],
outputs=login_output)
with gr.Tab("Upload Certificate"):
file = gr.File(label="Upload PDF")
verify_btn = gr.Button("Verify")
result = gr.Textbox(label="Result")
verify_btn.click(upload_certificate,
inputs=file,
outputs=result)
with gr.Tab("Admin Dashboard"):
view_btn = gr.Button("View Certificates")
table = gr.Dataframe(headers=["Username","Result"])
view_btn.click(view_certificates,
outputs=table)
demo.launch(server_name="0.0.0.0",server_port=7860) |