Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import os | |
| # ========================================= | |
| # Configuración inicial crítica | |
| # ========================================= | |
| os.environ["STREAMLIT_CONFIG_DIR"] = "/app/.streamlit" | |
| os.environ["STREAMLIT_GLOBAL_DEVELOPMENT_MODE"] = "false" | |
| os.environ["STREAMLIT_BROWSER_GATHER_USAGE_STATS"] = "false" | |
| os.environ["HF_THEME"] = "None" | |
| # Configuración básica de la página | |
| st.set_page_config( | |
| page_title="Proyecto Gao", | |
| layout="wide", | |
| page_icon="assets/gao_icon.ico", | |
| ) | |
| google_analytics = """ | |
| <!-- Google tag (gtag.js) --> | |
| <script async src="https://www.googletagmanager.com/gtag/js?id=G-TTV23M3QPB"></script> | |
| <script> | |
| window.dataLayer = window.dataLayer || []; | |
| function gtag(){dataLayer.push(arguments);} | |
| gtag('js', new Date()); | |
| gtag('config', 'G-TTV23M3QPB'); | |
| </script> | |
| """ | |
| # Inyecta el script de Google Analytics | |
| st.components.v1.html(google_analytics, height=0) | |
| # ========================================= | |
| # Funciones reutilizables | |
| # ========================================= | |
| def sidebar_config(): | |
| """Configuración del sidebar común a todas las páginas""" | |
| with st.sidebar: | |
| st.title("Proyecto Gao") | |
| st.image("assets/logo.png") | |
| # Navegación entre páginas usando st.query_params | |
| st.markdown("### Navegación") | |
| page_options = { | |
| "🏠 Inicio": "Inicio", | |
| "📰 Blog": "Blog", | |
| "🔍 Explorar": "Explorar", | |
| "📱 Redes Sociales": "Redes" | |
| } | |
| selected_page = st.radio("Ir a:", list(page_options.keys())) | |
| # Redirigir a la página seleccionada usando st.query_params | |
| if page_options[selected_page] != st.query_params.get("page", "Inicio"): | |
| st.query_params.page = page_options[selected_page] | |
| st.rerun() | |
| def navegation(): | |
| st.markdown( | |
| """ | |
| <div style='text-align: center;'> | |
| <p>🚀 Comienza a Explorar</p> | |
| <p>Utiliza la barra de navegación a la izquierda para:</p> | |
| <p>- 📰 Leer nuestro Blog con análisis detallados</p> | |
| <p>- 🔍 Explorar el Dashboard interactivo</p> | |
| <p>- 📱 Contactarnos y seguirnos en redes sociales</p> | |
| </div> | |
| """, | |
| unsafe_allow_html=True | |
| ) | |
| st.markdown("---") | |
| def flooter(): | |
| st.markdown( | |
| """ | |
| <div style='text-align: center'> | |
| <p>Desarrollado con ❤️ por el equipo de Proyecto Gao</p> | |
| <p>© 2025 Proyecto Gao - Todos los derechos reservados</p> | |
| </div> | |
| """, | |
| unsafe_allow_html=True, | |
| ) | |
| st.markdown("---") | |
| def warning(): | |
| st.warning(""" | |
| ⚠️ Este proyecto es una herramienta de análisis y no debe ser considerado como asesoramiento legal o financiero. | |
| Los datos son proporcionados con fines informativos y pueden no reflejar la realidad del mercado inmobiliario. | |
| Proyecto GAO no se hace responsable por decisiones tomadas en base a esta información. | |
| Cualquier acción relacionada con el mercado inmobiliario es bajo su propia responsabilidad | |
| """) | |
| st.markdown("---") | |
| # ========================================= | |
| # Página de Inicio | |
| # ========================================= | |
| def display_inicio(): | |
| st.title("Bienvenido a Proyecto Gao 🏘️") | |
| st.markdown("---") | |
| st.markdown( | |
| """ | |
| ## 🎯 Nuestro Objetivo | |
| Proyecto Gao es una herramienta de análisis del mercado inmobiliario en La Habana que te permite: | |
| - 📊 Explorar tendencias por municipio | |
| - 🏠 Analizar diferentes tipos de propiedades | |
| - 📈 Visualizar datos históricos y actuales | |
| """ | |
| ) | |
| st.markdown("---") | |
| col1, col2, col3 = st.columns(3) | |
| with col1: | |
| st.markdown( | |
| """ | |
| ### 📱 Fácil de Usar | |
| Interfaz intuitiva y amigable para explorar el mercado inmobiliario | |
| """ | |
| ) | |
| with col2: | |
| st.markdown( | |
| """ | |
| ### 🔄 Datos Actualizados | |
| Información actualizada regularmente del mercado inmobiliario | |
| """ | |
| ) | |
| with col3: | |
| st.markdown( | |
| """ | |
| ### 📊 Análisis Detallado | |
| Visualizaciones y estadísticas comprehensivas | |
| """ | |
| ) | |
| st.markdown("---") | |
| st.markdown( | |
| """ | |
| ## 🤷♂️ ¿Quiénes Somos? 🤷♀️ | |
| Somos un equipo de estudiantes de Ciencia de Datos de MATCOM comprometidos con: | |
| - 🎯 Proporcionar transparencia al mercado inmobiliario | |
| - 📊 Facilitar el análisis de datos para toma de decisiones | |
| - 💡 Innovar en la visualización de datos inmobiliarios | |
| """ | |
| ) | |
| st.markdown("---") | |
| # ========================================= | |
| # Gestión de páginas | |
| # ========================================= | |
| def main(): | |
| # Obtener la página actual usando st.query_params | |
| current_page = st.query_params.get("page", "Inicio") | |
| # Configurar sidebar común | |
| sidebar_config() | |
| # Mostrar contenido según la página actual | |
| if current_page == "Inicio": | |
| display_inicio() | |
| elif current_page == "Blog": | |
| import page.blog as blog | |
| blog.display() | |
| elif current_page == "Explorar": | |
| import page.explorar as explorar | |
| explorar.display() | |
| elif current_page == "Redes": | |
| import page.redes as redes | |
| redes.display() | |
| else: | |
| st.warning(f"Página '{current_page}' no encontrada. Redirigiendo a inicio...") | |
| st.query_params.page = "Inicio" | |
| st.rerun() | |
| # Componentes comunes al final | |
| warning() | |
| navegation() | |
| flooter() | |
| # ========================================= | |
| # Punto de entrada | |
| # ========================================= | |
| if __name__ == "__main__": | |
| # Limpieza inicial de estado | |
| if "last_page" not in st.session_state: | |
| st.session_state.clear() | |
| st.session_state.last_page = "Inicio" | |
| main() |