Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
from loading_file import precomputed_df # Import pre-fetched dataset | |
# Function to search for application numbers | |
def search_application(application_number): | |
if precomputed_df is None: | |
st.error("Data not available. Please reload the app.") | |
return | |
# Ensure input is numeric only | |
if not application_number.isdigit(): | |
st.error("Invalid input! Please enter only numeric application numbers.") | |
return | |
application_number = str(application_number) | |
result = precomputed_df[precomputed_df["Application Number"] == application_number] | |
if not result.empty: | |
st.success(f"Record found for Application Number: {application_number}") | |
st.table(result) | |
else: | |
st.warning(f"No record found for Application Number: {application_number}") | |
# Find nearest applications | |
precomputed_df["Application Number"] = precomputed_df["Application Number"].astype(int) | |
application_number = int(application_number) | |
nearest_before = precomputed_df[precomputed_df["Application Number"] < application_number].max() | |
nearest_after = precomputed_df[precomputed_df["Application Number"] > application_number].min() | |
nearest_df = pd.DataFrame([ | |
{"Nearest Application": "Before", "Application Number": nearest_before["Application Number"], "Decision": nearest_before["Decision"], "Difference": abs(nearest_before["Application Number"] - application_number)}, | |
{"Nearest Application": "After", "Application Number": nearest_after["Application Number"], "Decision": nearest_after["Decision"], "Difference": abs(nearest_after["Application Number"] - application_number)} | |
]) | |
st.write("Nearest Application Numbers:") | |
st.table(nearest_df) | |
# UI for searching application numbers | |
st.title("Visa Application Status Checker") | |
application_number = st.text_input("Enter Application Number:") | |
if st.button("Search"): | |
search_application(application_number) | |