caissaa23 commited on
Commit
d495f27
·
verified ·
1 Parent(s): 26f4348

Create login.py

Browse files
Files changed (1) hide show
  1. login.py +73 -0
login.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import json
3
+ import os
4
+ import subprocess
5
+
6
+ USUARIOS_FILE = "usuarios.json"
7
+
8
+ # ---------------- FUNCIONES BÁSICAS ---------------- #
9
+
10
+ def cargar_usuarios():
11
+ if os.path.exists(USUARIOS_FILE):
12
+ with open(USUARIOS_FILE, "r") as f:
13
+ return json.load(f)
14
+ return {}
15
+
16
+ def guardar_usuarios(data):
17
+ with open(USUARIOS_FILE, "w") as f:
18
+ json.dump(data, f, indent=4)
19
+
20
+ def registrar_usuario(nombre, email, password):
21
+ usuarios = cargar_usuarios()
22
+ if email in usuarios:
23
+ return "⚠️ Ya existe una cuenta con ese correo."
24
+ usuarios[email] = {"nombre": nombre, "password": password}
25
+ guardar_usuarios(usuarios)
26
+ return "✅ Registro exitoso. ¡Ahora puedes iniciar sesión!"
27
+
28
+ def iniciar_sesion(email, password):
29
+ usuarios = cargar_usuarios()
30
+ if email not in usuarios:
31
+ return "❌ Usuario no encontrado."
32
+ if usuarios[email]["password"] != password:
33
+ return "🔐 Contraseña incorrecta."
34
+ with open("sesion.json", "w") as f:
35
+ json.dump({"usuario": email}, f)
36
+ return f"✅ Bienvenido de nuevo, {usuarios[email]['nombre']}! Redirigiendo a NutriBot..."
37
+
38
+ def lanzar_app():
39
+ # Ejecuta la app principal (app.py)
40
+ subprocess.Popen(["python", "app.py"])
41
+ return "🚀 NutriBot se está iniciando..."
42
+
43
+ # ---------------- INTERFAZ GRADIO ---------------- #
44
+
45
+ with gr.Blocks(title="NutriBot - Inicio de Sesión") as login_app:
46
+ gr.Markdown("""
47
+ # 🥗 Bienvenido a **NutriBot Ultra** 🌈
48
+ Tu asistente inteligente de bienestar físico y emocional.
49
+ Controla tu alimentación, emociones, y rutinas saludables con ayuda de IA 💪
50
+ ---
51
+ """)
52
+
53
+ with gr.Tab("🔑 Iniciar sesión"):
54
+ email_login = gr.Textbox(label="Correo electrónico")
55
+ pass_login = gr.Textbox(label="Contraseña", type="password")
56
+ btn_login = gr.Button("Entrar")
57
+ salida_login = gr.Textbox(label="Mensaje")
58
+ btn_login.click(iniciar_sesion, inputs=[email_login, pass_login], outputs=salida_login)
59
+
60
+ # Al iniciar sesión, se lanza NutriBot
61
+ btn_continuar = gr.Button("Abrir NutriBot")
62
+ salida_continuar = gr.Textbox(label="Estado")
63
+ btn_continuar.click(lanzar_app, outputs=salida_continuar)
64
+
65
+ with gr.Tab("📝 Registrarse"):
66
+ nombre_reg = gr.Textbox(label="Nombre completo")
67
+ email_reg = gr.Textbox(label="Correo electrónico")
68
+ pass_reg = gr.Textbox(label="Contraseña", type="password")
69
+ btn_reg = gr.Button("Crear cuenta")
70
+ salida_reg = gr.Textbox(label="Resultado del registro")
71
+ btn_reg.click(registrar_usuario, inputs=[nombre_reg, email_reg, pass_reg], outputs=salida_reg)
72
+
73
+ login_app.launch()