AIdeaText commited on
Commit
034cfa2
1 Parent(s): 6f090cd

Update modules/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui.py +85 -89
modules/ui.py CHANGED
@@ -20,14 +20,35 @@ from .semantic_analysis import visualize_semantic_relations, perform_semantic_an
20
  from .discourse_analysis import compare_semantic_analysis, perform_discourse_analysis
21
  from .chatbot import initialize_chatbot, get_chatbot_response
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  ##################################################################################################
24
  def login_register_page():
25
  st.title("AIdeaText")
26
 
27
- # Dividir la pantalla en dos columnas
28
- left_column, right_column = st.columns([1, 3]) # 25% izquierda, 75% derecha
29
 
30
- # Sección izquierda para login y registro
31
  with left_column:
32
  tab1, tab2 = st.tabs(["Iniciar Sesión", "Registrarse"])
33
 
@@ -37,123 +58,96 @@ def login_register_page():
37
  with tab2:
38
  register_form()
39
 
40
- # Sección derecha para videos de YouTube
41
  with right_column:
42
- st.header("Videos: pitch, demos, entrevistas, otros")
43
-
44
- # Diccionario de videos de YouTube con títulos amigables
45
- videos = {
46
- "Intro AideaText": "https://www.youtube.com/watch?v=UA-md1VxaRc",
47
- "Pitch que facilitó acceder a la segunda fase de IFE Explora del TEC de Monterrey": "https://www.youtube.com/watch?v=Fqi4Di_Rj_s",
48
- "Entrevista con el doctor Guillermo Ruíz, EduMate Lima Perú" : "https://www.youtube.com/watch?v=_ch8cRja3oc",
49
- "Demo versión desktop de AIdeaText": "https://www.youtube.com/watch?v=nP6eXbog-ZY"
50
- }
51
-
52
- # Selector de video
53
- video_titles = list(videos.keys())
54
- if video_titles:
55
- selected_title = st.selectbox("Selecciona un video tutorial:", video_titles)
56
-
57
- # Obtener la URL correspondiente al título seleccionado
58
- if selected_title in videos:
59
- selected_video = videos[selected_title]
60
-
61
- # Reproductor de YouTube
62
- try:
63
- st_player(selected_video)
64
- except Exception as e:
65
- st.error(f"Error al cargar el video: {str(e)}")
66
- else:
67
- st.warning("El video seleccionado no está disponible.")
68
- else:
69
- st.warning("No hay videos disponibles para mostrar.")
70
-
71
- # Información adicional
72
- st.markdown("""
73
- ## Novedades de la versión actual
74
- - Nueva función de análisis semántico
75
- - Soporte para múltiples idiomas
76
- - Interfaz mejorada para una mejor experiencia de usuario
77
- """)
78
-
79
- ##################################################################################################
80
-
81
- #def main():
82
- # if 'logged_in' not in st.session_state:
83
- # st.session_state.logged_in = False
84
-
85
- # print(f"Estado de sesión al inicio de main: {st.session_state}") # Nuevo log
86
-
87
- # if not st.session_state.logged_in:
88
- # login_register_page()
89
- # else:
90
- # print(f"Usuario autenticado en main: {st.session_state.username}, Rol: {st.session_state.role}") # Log modificado
91
- # if st.session_state.role == 'Administrador':
92
- # print("Intentando mostrar página de administrador") # Nuevo log
93
- # admin_page()
94
- # else:
95
- # print(f"Mostrando página de usuario para rol: {st.session_state.role}") # Nuevo log
96
- # user_page()
97
-
98
- # print(f"Estado de sesión al final de main: {st.session_state}") # Nuevo log
99
-
100
- def main():
101
- if 'page' not in st.session_state:
102
- st.session_state.page = 'login'
103
-
104
- if st.session_state.page == 'login':
105
- login_register_page()
106
- elif st.session_state.page == 'admin':
107
- admin_page()
108
- elif st.session_state.page == 'user':
109
- user_page()
110
-
111
 
112
  ##################################################################################################
113
 
114
  def login_form():
115
- username = st.text_input("Correo electrónico")
116
- password = st.text_input("Contraseña", type="password")
117
 
118
- if st.button("Iniciar Sesión"):
119
  success, role = authenticate_user(username, password)
120
  if success:
121
- st.session_state.clear() # Limpia la sesión antes de establecer nuevos valores
122
  st.session_state.logged_in = True
123
  st.session_state.username = username
124
  st.session_state.role = role
125
  st.session_state.page = 'admin' if role == 'Administrador' else 'user'
126
  print(f"Inicio de sesión exitoso. Usuario: {username}, Rol: {role}")
127
- print(f"Estado de sesión después de login: {st.session_state}") # Nuevo log
128
- st.rerun() # Usa st.rerun() en lugar de st.experimental_rerun()
129
  else:
130
  st.error("Credenciales incorrectas")
131
 
132
-
133
-
134
-
135
  ##################################################################################################
136
  def admin_page():
137
  st.title("Panel de Administración")
138
  st.write(f"Bienvenido, {st.session_state.username}")
139
 
140
- # Crear nuevo usuario estudiante
141
  st.header("Crear Nuevo Usuario Estudiante")
142
- new_username = st.text_input("Correo electrónico del nuevo usuario")
143
- new_password = st.text_input("Contraseña", type="password")
144
- if st.button("Crear Usuario"):
145
  if create_student_user(new_username, new_password):
146
  st.success(f"Usuario estudiante {new_username} creado exitosamente")
147
  else:
148
  st.error("Error al crear el usuario estudiante")
149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  ##################################################################################################
151
  def register_form():
152
  ##
153
  ##
154
  pass
155
  ##################################################################################################
156
-
157
  def display_chat_interface():
158
  st.markdown("### Chat con AIdeaText")
159
 
@@ -176,7 +170,6 @@ def display_chat_interface():
176
  st.experimental_rerun()
177
 
178
  ##################################################################################################
179
-
180
  def display_student_progress(username, lang_code='es'):
181
  student_data = get_student_data(username)
182
 
@@ -240,8 +233,11 @@ def display_student_progress(username, lang_code='es'):
240
  st.warning("No se encontraron entradas para este estudiante.")
241
  st.info("Intenta realizar algunos análisis de texto primero.")
242
 
243
- ##################################################################################################
244
 
 
 
 
 
245
  def display_morphosyntax_analysis_interface(nlp_models, lang_code):
246
  translations = {
247
  'es': {
 
20
  from .discourse_analysis import compare_semantic_analysis, perform_discourse_analysis
21
  from .chatbot import initialize_chatbot, get_chatbot_response
22
 
23
+ ##################################################################################################
24
+ def initialize_session_state():
25
+ if 'initialized' not in st.session_state:
26
+ st.session_state.clear()
27
+ st.session_state.initialized = True
28
+ st.session_state.logged_in = False
29
+ st.session_state.page = 'login'
30
+ st.session_state.username = None
31
+ st.session_state.role = None
32
+
33
+ ##################################################################################################
34
+ def main():
35
+ initialize_session_state()
36
+
37
+ if st.session_state.page == 'login':
38
+ login_register_page()
39
+ elif st.session_state.page == 'admin':
40
+ admin_page()
41
+ elif st.session_state.page == 'user':
42
+ user_page()
43
+
44
+ print(f"Estado actual de la sesión: {st.session_state}") # Log para depuración
45
+
46
  ##################################################################################################
47
  def login_register_page():
48
  st.title("AIdeaText")
49
 
50
+ left_column, right_column = st.columns([1, 3])
 
51
 
 
52
  with left_column:
53
  tab1, tab2 = st.tabs(["Iniciar Sesión", "Registrarse"])
54
 
 
58
  with tab2:
59
  register_form()
60
 
 
61
  with right_column:
62
+ display_videos_and_info()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
  ##################################################################################################
65
 
66
  def login_form():
67
+ username = st.text_input("Correo electrónico", key="login_username")
68
+ password = st.text_input("Contraseña", type="password", key="login_password")
69
 
70
+ if st.button("Iniciar Sesión", key="login_button"):
71
  success, role = authenticate_user(username, password)
72
  if success:
 
73
  st.session_state.logged_in = True
74
  st.session_state.username = username
75
  st.session_state.role = role
76
  st.session_state.page = 'admin' if role == 'Administrador' else 'user'
77
  print(f"Inicio de sesión exitoso. Usuario: {username}, Rol: {role}")
78
+ print(f"Estado de sesión después de login: {st.session_state}")
79
+ st.rerun()
80
  else:
81
  st.error("Credenciales incorrectas")
82
 
 
 
 
83
  ##################################################################################################
84
  def admin_page():
85
  st.title("Panel de Administración")
86
  st.write(f"Bienvenido, {st.session_state.username}")
87
 
 
88
  st.header("Crear Nuevo Usuario Estudiante")
89
+ new_username = st.text_input("Correo electrónico del nuevo usuario", key="admin_new_username")
90
+ new_password = st.text_input("Contraseña", type="password", key="admin_new_password")
91
+ if st.button("Crear Usuario", key="admin_create_user"):
92
  if create_student_user(new_username, new_password):
93
  st.success(f"Usuario estudiante {new_username} creado exitosamente")
94
  else:
95
  st.error("Error al crear el usuario estudiante")
96
 
97
+ # Aquí puedes añadir más funcionalidades para el panel de administración
98
+
99
+ ##################################################################################################
100
+ def user_page():
101
+ st.title("Bienvenido a AIdeaText")
102
+ st.write(f"Hola, {st.session_state.username}")
103
+
104
+ # Aquí puedes añadir las funcionalidades para el usuario estudiante
105
+ # Por ejemplo:
106
+ tabs = st.tabs(["Análisis Morfosintáctico", "Análisis Semántico", "Análisis del Discurso", "Chat", "Mi Progreso"])
107
+
108
+ with tabs[0]:
109
+ display_morphosyntax_analysis_interface(nlp_models, 'es') # Asumiendo que 'es' es el idioma por defecto
110
+ with tabs[1]:
111
+ display_semantic_analysis_interface(nlp_models, 'es')
112
+ with tabs[2]:
113
+ display_discourse_analysis_interface(nlp_models, 'es')
114
+ with tabs[3]:
115
+ display_chatbot_interface('es')
116
+ with tabs[4]:
117
+ display_student_progress(st.session_state.username, 'es')
118
+
119
+ ##################################################################################################
120
+ def display_videos_and_info():
121
+ st.header("Videos: pitch, demos, entrevistas, otros")
122
+
123
+ videos = {
124
+ "Intro AideaText": "https://www.youtube.com/watch?v=UA-md1VxaRc",
125
+ "Pitch IFE Explora": "https://www.youtube.com/watch?v=Fqi4Di_Rj_s",
126
+ "Entrevista Dr. Guillermo Ruíz": "https://www.youtube.com/watch?v=_ch8cRja3oc",
127
+ "Demo versión desktop": "https://www.youtube.com/watch?v=nP6eXbog-ZY"
128
+ }
129
+
130
+ selected_title = st.selectbox("Selecciona un video tutorial:", list(videos.keys()))
131
+
132
+ if selected_title in videos:
133
+ try:
134
+ st_player(videos[selected_title])
135
+ except Exception as e:
136
+ st.error(f"Error al cargar el video: {str(e)}")
137
+
138
+ st.markdown("""
139
+ ## Novedades de la versión actual
140
+ - Nueva función de análisis semántico
141
+ - Soporte para múltiples idiomas
142
+ - Interfaz mejorada para una mejor experiencia de usuario
143
+ """)
144
+
145
  ##################################################################################################
146
  def register_form():
147
  ##
148
  ##
149
  pass
150
  ##################################################################################################
 
151
  def display_chat_interface():
152
  st.markdown("### Chat con AIdeaText")
153
 
 
170
  st.experimental_rerun()
171
 
172
  ##################################################################################################
 
173
  def display_student_progress(username, lang_code='es'):
174
  student_data = get_student_data(username)
175
 
 
233
  st.warning("No se encontraron entradas para este estudiante.")
234
  st.info("Intenta realizar algunos análisis de texto primero.")
235
 
 
236
 
237
+
238
+
239
+
240
+ ##################################################################################################
241
  def display_morphosyntax_analysis_interface(nlp_models, lang_code):
242
  translations = {
243
  'es': {