""" Configuración centralizada de herramientas. Agrega nuevas herramientas aquí sin modificar el código existente. """ class ToolConfig: """Configuración de herramientas disponibles en la plataforma.""" TOOLS = { "ai_test": { "id": "ai_test", "name": "Test de Conocimientos IA", "description": "Evalúa tus conocimientos básicos en Inteligencia Artificial con preguntas interactivas.", "icon": "fa-brain", "color": "linear-gradient(135deg, #4F46E5 0%, #7C3AED 100%)", "tags": ["Básico", "Evaluación", "Autoevaluación"], "page": "ai-test", "enabled": False }, "ml_classification": { "id": "ml_classification", "name": "Simulador de Clasificación", "description": "Crea y visualiza modelos de clasificación con diferentes algoritmos.", "icon": "fa-shapes", "color": "linear-gradient(135deg, #10B981 0%, #34D399 100%)", "tags": ["Machine Learning", "Clasificación", "Visualización"], "page": "simulators", "sim_tab": "classification", "enabled": False }, "ml_regression": { "id": "ml_regression", "name": "Simulador de Regresión", "description": "Experimenta con modelos de regresión lineal y polinómica.", "icon": "fa-chart-line", "color": "linear-gradient(135deg, #059669 0%, #10B981 100%)", "tags": ["Machine Learning", "Regresión", "Gráficos"], "page": "simulators", "sim_tab": "regression", "enabled": False }, "arduino_sim": { "id": "arduino_sim", "name": "Simulador Arduino", "description": "Diseña y prueba circuitos electrónicos con componentes virtuales.", "icon": "fa-microchip", "color": "linear-gradient(135deg, #00979D 0%, #4ECDC4 100%)", "tags": ["Arduino", "Electrónica", "Simulación"], "page": "simulators", "sim_tab": "arduino", "enabled": False }, "iot_sim": { "id": "iot_sim", "name": "Simulador IoT", "description": "Crea proyectos de Internet de las Cosas con sensores y actuadores.", "icon": "fa-wifi", "color": "linear-gradient(135deg, #F59E0B 0%, #FBBF24 100%)", "tags": ["IoT", "Sensores", "Conectividad"], "page": "simulators", "sim_tab": "iot", "enabled": False }, "raspberry_learn": { "id": "raspberry_learn", "name": "Aprende Raspberry Pi", "description": "Tutoriales interactivos para dominar Raspberry Pi desde cero.", "icon": "fa-server", "color": "linear-gradient(135deg, #C13584 0%, #E1306C 100%)", "tags": ["Raspberry Pi", "Tutoriales", "Proyectos"], "page": "raspberry", "enabled": False }, "python_basics": { "id": "python_basics", "name": "Python Básico", "description": "Aprende los fundamentos de programación con Python.", "icon": "fa-code", "color": "linear-gradient(135deg, #3776AB 0%, #FFD43B 100%)", "tags": ["Python", "Programación", "Básico"], "page": "python-basics", "enabled": False }, "data_science": { "id": "data_science", "name": "Ciencia de Datos", "description": "Herramientas para análisis y visualización de datos.", "icon": "fa-database", "color": "linear-gradient(135deg, #FF6F00 0%, #FFB74D 100%)", "tags": ["Datos", "Análisis", "Visualización"], "page": "data-science", "enabled": False }, "quizzes": { "id": "quizzes", "name": "Cuestionarios", "description": "Cuestionarios creados por tu maestro para evaluar tu progreso.", "icon": "fa-clipboard-check", "color": "linear-gradient(135deg, #3B82F6 0%, #60A5FA 100%)", "tags": ["Evaluación", "Cuestionarios"], "page": "quizzes-student", "enabled": True } } @classmethod def get_all_tools(cls): return {k: v for k, v in cls.TOOLS.items() if v.get("enabled", True)} @classmethod def get_tool(cls, tool_id): return cls.TOOLS.get(tool_id) @classmethod def get_tools_for_classroom(cls): tools = cls.get_all_tools() return [ { "id": tool_id, "name": tool_data["name"], "description": tool_data["description"], "icon": tool_data["icon"], "color": tool_data["color"], "tags": tool_data["tags"] } for tool_id, tool_data in tools.items() ] @classmethod def register_tool(cls, tool_id, name, description, icon, color, tags, page, **kwargs): cls.TOOLS[tool_id] = { "id": tool_id, "name": name, "description": description, "icon": icon, "color": color, "tags": tags, "page": page, "enabled": True, **kwargs } class CategoryConfig: CATEGORIES = { "ai": {"name": "Inteligencia Artificial", "icon": "fa-robot", "color": "#4F46E5"}, "ml": {"name": "Machine Learning", "icon": "fa-brain", "color": "#10B981"}, "arduino": {"name": "Arduino & Electrónica", "icon": "fa-microchip", "color": "#00979D"}, "iot": {"name": "IoT", "icon": "fa-wifi", "color": "#F59E0B"}, "raspberry": {"name": "Raspberry Pi", "icon": "fa-server", "color": "#C13584"}, "python": {"name": "Python", "icon": "fa-code", "color": "#3776AB"}, "data": {"name": "Ciencia de Datos", "icon": "fa-database", "color": "#FF6F00"} } @classmethod def get_all(cls): return cls.CATEGORIES @classmethod def get(cls, key): return cls.CATEGORIES.get(key) # Configuración de autenticación class AuthConfig: MASTER_PASSWORD = "educateenIA2024" SESSION_TIMEOUT = 3600