bisous0545 / app.py
Humbledrious's picture
Create app.py
042ca5d verified
Raw
History Blame Contribute Delete
3.34 kB
import gradio as gr
from datetime import datetime
# ---------------- FAKE DATA ----------------
users = {
"You": {"pin": "1234", "balance": 8000.0},
"Maria": {"pin": "1111", "balance": 3500.0},
"John": {"pin": "2222", "balance": 2000.0}
}
history = []
session = {"user": None}
# ---------------- FUNCTIONS ----------------
def login(user, pin):
if user in users and users[user]["pin"] == pin:
session["user"] = user
return f"Welcome {user}", dashboard()
return "Invalid login", ""
def dashboard():
u = session["user"]
if not u:
return "Not logged in"
return f"""
πŸ’³ Wallet Dashboard
πŸ‘€ User: {u}
πŸ’° Balance: β‚±{users[u]['balance']:,.2f}
"""
def add_money(amount):
u = session["user"]
try:
amount = float(amount)
except:
return dashboard(), "Invalid amount", "\n".join(history)
users[u]["balance"] += amount
history.insert(0, f"{datetime.now().strftime('%H:%M')} - +β‚±{amount} added")
return dashboard(), "Money added successfully", "\n".join(history)
def send_money(receiver, amount):
sender = session["user"]
if receiver not in users:
return dashboard(), "User not found", "\n".join(history)
try:
amount = float(amount)
except:
return dashboard(), "Invalid amount", "\n".join(history)
if users[sender]["balance"] < amount:
return dashboard(), "Insufficient balance", "\n".join(history)
users[sender]["balance"] -= amount
users[receiver]["balance"] += amount
history.insert(
0,
f"{datetime.now().strftime('%H:%M')} - {sender} sent β‚±{amount} to {receiver}"
)
return dashboard(), "Transfer successful", "\n".join(history)
# ---------------- UI STYLE ----------------
css = """
body {
background-color: #0b1220;
color: white;
font-family: Arial;
}
.gr-button {
background: #00c2a8 !important;
color: white !important;
border-radius: 10px !important;
font-weight: bold;
}
.gr-textbox, .gr-dropdown {
border-radius: 10px !important;
}
"""
# ---------------- APP ----------------
with gr.Blocks(css=css, title="Fintech Wallet Demo") as app:
gr.Markdown("# πŸ’³ Fintech Wallet App (Demo Only)")
gr.Markdown("⚠️ Educational project β€” no real banking system")
# LOGIN
gr.Markdown("## πŸ” Login")
user = gr.Dropdown(list(users.keys()), label="User")
pin = gr.Textbox(label="PIN", type="password")
login_btn = gr.Button("Login")
login_out = gr.Textbox()
dashboard_box = gr.Textbox(label="Dashboard")
login_btn.click(login, [user, pin], [login_out, dashboard_box])
# SEND MONEY
gr.Markdown("## πŸ’Έ Send Money")
receiver = gr.Dropdown(list(users.keys()), label="Receiver")
send_amount = gr.Number(label="Amount")
send_btn = gr.Button("Send")
send_out = gr.Textbox()
send_btn.click(send_money, [receiver, send_amount], [dashboard_box, send_out, gr.Textbox()])
# ADD MONEY
gr.Markdown("## βž• Add Money")
add_amount = gr.Number(label="Amount")
add_btn = gr.Button("Add Funds")
add_out = gr.Textbox()
add_btn.click(add_money, add_amount, [dashboard_box, add_out, gr.Textbox()])
# HISTORY
gr.Markdown("## πŸ“œ Transaction History")
history_box = gr.Textbox(lines=12)
app.launch()