Skip to content

Calendary service

Juan Francisco Ramírez Escobar edited this page Mar 21, 2024 · 2 revisions

The calendar service is a service that aims to present in a calendar all the events and moments of interest for the entire ACM Xaverian Chapter community.

📆 Data Model:

Nombre del Atributo ❕ Tipo de Dato 👀 Descripción 📝
id UUID Identificador único de cada evento al interior del servicio. (Visible unicamente para el equipo de desarrolladores)
summary string Título en la visualización del evento. Debe ser llamativo y describir brevemente la razón del mismo. i.e. “Taller Preparación EDD - Parcial 1”
description string (Opcional) Descripción del evento en un párrafo. Orientar el atríbuto hacía una breve invitación al evento. ”De parte de ACM Javeriana te invitamos a participar de…”
start time : Date Asignar la fecha de inicio del evento.
end time : Date Asignar la fecha de fin del evento.
location string (Opcional) En caso tal de que el evento se lleve a cabo de manera presencial y el aforo no sea un limitante, se busca que el usuario o persona interesada pueda encontrar la información del sitio en la página web y asistir al evento 😀
link_form string (Hipervínculo) La idea es que para el momento en que la página web se encuentre en funcionamiento, cada evento cuente con un formulario de inscripción si así se requiere y el aforo es limitado. De esta manera, se busca que el proceso para inscripción a actividades del grupo se realicé de un único modo (Formularios); eliminando de esta forma un sinnúmero de correos en la bandeja y trayendo cómo valor agregado que el enlace se encuentre a la mano en la página. Esto, adicional a los métodos usuales de difusión (Carrera, medio, redes sociales).
joining_link string (Opcional e hipervínculo a MS Teams) En caso tal de que el evento se lleve a cabo de manera virtual (Normalmente no existe limite de aforo), se extiende la posibilidad de que el enlace a la reunión se encuentre en la página web.
assigned_people [ ] string * A discusión por parte del grupo 🫡 Cómo cada actividad de ACM tiene unos miembros asignados cómo responsables en el desarrollo de la misma. Se plantea que sean visibles las direcciones de correo electrónico de las personas encargadas; de este modo, en caso de que los participantes tengan alguna duda de acuerdo con el contenido y/o quieran indagar sobre el tema, puedan dirigirse directamente a los expertos en el tema Esto entra en conflicto, no estoy seguro si plantearlo cómo un campo de los eventos en la página. Actualmente se utiliza el correo electrónico para atender dudas del material. Sin embargo, algunos estudiantes escriben al DM de Teams.

Endpoints Microservicio Calendario

GET Endpoints: 📖

  1. Obtener Calendario

    • URL del endpoint: http://direccion:1234/calendar
    • Required data:
      • body: En este caso, no hay. Se busca obtener todos los eventos que componen el calendario
      • headers:
        • Authentication: Token de autenticación - Basado en la implementación del microservicio de autenticación (No se incluye aún)
  2. Obtener Evento por ID

    • URL del endpoint: http://direccion:1234/event/{id}
    • Required data:
      • body: En este caso, se le pasa cómo parámetro a la request el id del evento que se desea consultar. Cuerpo cómo tal, no hay.
      • headers:
        • Authentication: Token de autenticación - Basado en la implementación del microservicio de autenticación (No se incluye aún)
  3. Obtener Evento por Fecha

    • URL del endpoint: http://direccion:1234/event/{date}
    • Required data:
      • body: En este caso, se le pasa cómo parámetro a la request la fecha sobre la que se desea consultar los eventos que se llevarán a cabo, se manejará de tipo Date (dd/mm/yyy), no Datetime (Es decir, incluyendo horas).
      • headers:
        • Authentication: Token de autenticación - Basado en la implementación del microservicio de autenticación (No se incluye aún)

POST Endpoints: 🆕

  1. Crear Evento
    • URL del endpoint: http://direccion:1234/event
    • Content-Type: application/json
    • Required data:
      • body: En este caso, se realizará la creación de un nuevo evento, por consiguiente, es necesario incluir cómo parámetro el archivo JSON en dónde se especifican los valores de cada uno de los atributos obligatorios que tiene cada evento.
      • headers:
        • Authentication: Token de autenticación - Basado en la implementación del microservicio de autenticación

{
   "body": {
     "id": "UUID",
     "summary": "Título del evento",
     "description": "Descripción del evento",
     "start": "Fecha de inicio (timezone)",
     "end": "Fecha de fin (timezone)",
     "location": "Ubicación del evento",
     "link_form": "Enlace al formulario de inscripción",
     "joining_link": "Enlace de unión a la reunión virtual (si aplica)",
     "assigned_people": ["Correo electrónico de las personas asignadas"]
   },
   "headers": {
       "authToken" = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXNzY.-yI"
   }
}

Nota: El ID del evento, de tipo UUID, es posible que no sea incluido en el cuerpo de la petición, esto será contemplado en la implementación del microservicio de acuerdo con la naturaleza del lenguaje y el framework seleccionado.


PATCH Endpoints: 🆙

  1. Actualizar Evento
    • URL del endpoint: http://direccion:1234/event/{id}
    • Content-Type: application/json
    • Required data:
      • body: En este caso, se le pasa cómo parámetro a la request el id del evento que se desea actualizar, en el cuerpo se incluyen únicamente los atributos del evento que se desean modificar.
      • headers:
        • Authentication: Token de autenticación - Basado en la implementación del microservicio de autenticación (No se incluye aún) microservicio de autenticación.

    {
       "body": {
         "summary": "Taller de Repaso Programación Avanzada",
         "description": "Preparación para el segundo parcial de la asignatura",
         "assigned_people": ["[email protected]",
                            "[email protected]",
                            "[email protected]"]
       },
       "headers": {
           "authToken" = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXNzY.-yI"
       }
    }

Nota: Con este tipo de petición, en conjunto con las funcionalidades brindadas por parte del framework, se actualizará únicamente los atributos que sean incluidos en el body de la petición.


DELETE Endpoints: ❌

  1. Eliminar evento por ID
  • URL del endpoint: http://direccion:1234/calendar
    • Required data:
      • body: En este caso, no hay. Sin embargo, se le pasa a la petición cómo parámetro el id del evento que se desea eliminar.
      • headers:
        • Authentication: Token de autenticación - Basado en la implementación del microservicio de autenticación (No se incluye aún)
      • Nota: En este endpoint, es fundamental contar en la cabecera con algún mecanismo que verifique la autenticidad de un actor permitido para realizar la acción (Puede ser el token, pero no se ha concretado aún el manejo)

Webpage Backend

In this wiki you can see all the docs and articles related to the ACM Student Chapter web page backend development.

Clone this wiki locally