Web - MunchiA/Tartuski GitHub Wiki

Hemos desarrollado una página web utilizando Flask como framework backend, desplegada en un servidor para la gestión de peticiones web. La autenticación de usuarios se realiza mediante integración con Azure Entra ID, permitiendo el inicio de sesión con cuentas corporativas del Directorio Activo sincronizado.

El sitio web está orientado a ofrecer servicios IT, incluyendo:

  • Help Desk y soporte técnico.

  • Telefonía VoIP, basada en soluciones Asterisk.

  • Firewall y ciberseguridad, con experiencia en soluciones como Fortinet.

  • Instalación y configuración de redes LAN, incluyendo diseño físico y lógico.

  • Servicios en la nube

Este proyecto demuestra la capacidad de integrar servicios web modernos con autenticación corporativa y ofrecer una plataforma centralizada para servicios IT.

A continuación mostraremos algunos funciones que utiliza la página web.

Calendario

Se ha implementado un calendario interactivo para la gestión de tareas, soporte técnico y planificación de actividades internas del equipo de IT.

Eventos

El calendario permite crear, modificar y eliminar eventos. Al crear un evento, puedes especificar:

  • Fecha: Puede abarcar uno o varios días, según la duración del evento.
  • Hora y minuto: Definición precisa de la hora de inicio y finalización.
  • Título: Nombre identificativo del evento.
  • Descripción: Detalle adicional sobre el evento.

[!NOTE] Los eventos son personales: cada usuario solo podrá ver y gestionar sus propios eventos.

Contáctanos - Formulario

La página web cuenta con un formulario de contacto que permite a los usuarios enviar solicitudes de presupuestos o realizar consultas generales.

Campos del formulario:

  • Nombre: Nombre completo del remitente.
  • Correo electrónico: Dirección válida para recibir una respuesta.
  • Asunto: Breve descripción del motivo del contacto.
  • Mensaje: Detalle completo de la solicitud o consulta.

Las respuestas serán enviadas a una cuenta de correo corporativa, accesible por el equipo autorizado de la empresa, para garantizar una atención rápida y personalizada.

El formulario está conectado al backend desarrollado en Flask, lo que permite:

  • Envío automatizado de correos electrónicos al equipo de soporte.
  • Registro de solicitudes en la base de datos para su posterior seguimiento.
  • Validación de los datos ingresados antes de su envío, asegurando integridad y formato correcto.

Conexion Azure

# Configurar OAuth con Azure AD
oauth = OAuth(app)
azure = oauth.register(
    name='azure',
    client_id=client_id,
    client_secret=client_secret,
    api_base_url='https://graph.microsoft.com/v1.0/',
    authorize_url=f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize",
    access_token_url=f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token",
    jwks_uri=f"https://login.microsoftonline.com/{tenant_id}/discovery/v2.0/keys",
    client_kwargs={'scope': 'openid profile email User.Read'},
)

Las variables de entorno las guardamos en un .env para mayor protección

# Cargar variables de entorno
load_dotenv()
client_id = os.getenv('AZURE_AD_CLIENT_ID')
tenant_id = os.getenv('AZURE_AD_TENANT_ID')
client_secret = os.getenv('AZURE_AD_CLIENT_SECRET')

Código de la Página Web

Todo el código fuente del proyecto está disponible públicamente en nuestro repositorio de GitHub: TartuskiWeb. Allí podrás explorar la estructura del proyecto, su configuración y los componentes que lo conforman.

[!NOTE]
Puedes acceder al repositorio desde el siguiente enlace:
Ver repositorio en GitHub