De ahora en adelante se publicarán aquí las últimas novedades de interés, debido al exceso de publicaciones en el grupo.
También estarán disponibles como feed RSS, por lo que se pueden recibir los mensajes desde clientes como Thunderbird, apps móviles (como Feeder), bots de Telegram (p.ej. @FeedRiverBot, con el comando /add https://ggelado.github.io/avisos5S2M-B/feed.xml)…
Se recomienda configurar las notificaciones push desde aquí.
Los avisos cuentan con categorías XML, que puede utilizar para filtrar si su cliente RSS lo permite.
Si se utiliza el cliente Feeder, se recomienda configurar las notificaciones y una frecuencia de refresco suficientemente alta, se recomienda 15 minutos.
Recuerda que si un post se modifica, su cliente RSS podría no reflejar los cambios. Por ello se recomienda que aquellos avisos que puedan estar sujetos a cambios regulares (como pueden ser las convocatorias de examen) se revisen accediendo al enlace del aviso y/o Moodle de las asignaturas.
INCLUSO HAY UN BOT DE DISCORD QUE PUEDES AGREGAR A TU SERVIDOR PULSANDO AQUÍ
¿Todavía no te parece suficiente? Puedes incluso agregar los distintos avisos a tu calendario. Simplemente accede a tu proveedor de calendario (p.ej. google calendar), agregar calendario por url e indica https://ggelado.github.io/avisos5S2M-B/avisos.ics
Agregar a Google Calendar. Agregar a Apple Calendar. (no tengo dispositivos de apple, si no va el link me decís)
La web está creada por alumnos y para alumnos. Bastantes cosas están muy chapuceras, lo reconocemos, pero por ello el código es público y está abierto a Pull Requests, por lo que animamos a todo el mundo a contribuir con lo que pueda, desde diseño gráfico (de ahí los logos tan cutres, era un requisito de Google para poder configurarla como web-app) hasta la lógica de negocio.
Y si encuentras alguna vulnerabilidad de seguridad, por favor, indícanoslo a través de la pestaña Security del repositorio o por los medios cifrados de contacto disponibles aquí. Por favor, insistimos en utilizar estos medios y no cualquier otro cuando se traten de vulnerabilidades o problemas de seguridad.
¿Cómo funciona? (POST EN REDACCIÓN)
@startuml
skinparam sequenceMessageAlign center
skinparam shadowing false
actor "Alumno" as Alumno
actor "Admin" as Admin
participant "Scrapers\n(fuentes externas)" as Scraper
participant "Servidor" as Servidor
participant "GitHub\nRepo" as GitHub
participant "Jekyll\nPlanificador" as Jekyll
participant "feed.xml" as Feed
participant "Worker RSS" as Worker
participant "MySQL DB" as DB
participant "Web Push" as Push
participant "Discord" as Discord
actor "Suscriptor" as Suscriptor
== 1. PROPUESTA ==
Alumno -> Servidor : Envía aviso via formulario
Servidor -> Servidor : Valida datos y rate limit
Servidor -> GitHub : Abre Pull Request
Admin -> Servidor : Publica aviso directamente
Servidor -> GitHub : Push directo a main
Scraper -> Servidor : Fuente externa detecta aviso
Servidor -> GitHub : Abre Pull Request
== 2. APROBACIÓN ==
Admin -> GitHub : Revisa y aprueba PR
note right
Admin no
necesita aprobación
end note
alt PR aprobada
GitHub -> GitHub : Merge a main
else PR rechazada
GitHub --> Alumno : Notificación de rechazo
end
== 3. PLANIFICACIÓN (Jekyll) ==
GitHub -> Jekyll : Trigger rebuild tras merge
note over Jekyll
Además, rebuild periódico programado
para publicar avisos con fecha futura
cuando llegue su momento
end note
Jekyll -> Jekyll : Comprueba fecha de cada aviso
alt Fecha del aviso alcanzada
Jekyll -> Feed : Publica aviso en feed.xml
else Fecha futura
Jekyll -> Jekyll : Aviso en espera
end
== 4. PUBLICACIÓN ==
Feed -> Feed : Aviso disponible\nen GitHub Pages y RSS
== 5. NOTIFICACIÓN ==
Feed -> Worker : Webhook: feed.xml actualizado
Worker -> DB : Comprueba items ya vistos
alt Aviso nuevo
Worker -> DB : Marca como visto
Worker -> DB : Obtiene suscripciones
Worker -> Push : Envía notificación push
Push --> Suscriptor : Notificación en navegador
Worker -> Discord : Envía mensaje con embed
else Ya visto
Worker -> Worker : Omite
end
== Alta de suscriptores ==
Suscriptor -> Servidor : Solicita suscripción push
Servidor -> DB : Guarda suscripción
Servidor -> Push : Envía confirmación
Push --> Suscriptor : Suscripción confirmada
@enduml