Solución de reserva de calendario en línea. -- 2

Job ID: 39241955

Budget: $30 – $250 USD

Solución de reserva de calendario en línea.

Se requiere una aplicación en Python, instalada en AWS (si tiene una alternativa más barata, la puede proponer), funcionando, operativa.
Se dispone del dominio.
Se dispone del acceso a AWS, salvo que indique que hay alternativas más baratas.

Debe hacer lo siguiente:

1) El SA (Super administrador, debe tener acceso controlado por 2FA) creará usuarios a su discreción.
1.1 Datos del usuario: nombre, email (verificado), alias.
Cada usuario colocará una descripción suya, que se mostrará en la agenda disponible. Se disponibiliza imagen.
1.2 El SA puede hacer DRU sobre los usuarios.

2) Cada usuario (pueden existir muchos) tenga distintos horarios disponibles.
El usuario los define, por ejemplo, yo de 07:00 a 23:00 (todos los días) disponibles.
debe funcionar nativamente con 24:00 horas, nada de a.m. p.m.
Debe poder recuperar contraseña (contra el email).

3) El usuario debe definir siempre un calendario principal.
3.1 Si quiere recibir un email con la agenda del día.
3.2 la hora en que se envía el email.

4) Cada usuario podrá tener “n” calendarios. “n” = el SA indica general y particular. Esto es, todos tienen 3 calendarios, salvo Juan que tendrá 5.
Cada calendario tendrá un “alias”, por ejemplo, “trabajo”, “particular”, “Universidad”.

5) Cada usuario podrá tener “n” agendas disponibles. “n” = el SA indica general y particular. Esto es, todos tienen 3 agendas disponibles, salvo Pedro que tendrá 5.
Cada usuario disponibilizará las agendas en tiempo, por ejemplo de 30 minutos, 45 y 60.
Existirá una url del estilo smartcal.one/alias
Se muestran los días hacia adelante con las ventanas disponibles.
Quienes vean la url podrán reservar una reunión, colocando su email para la reserva. Cada uno de estos emails podrá resrvar “n” reuniones.agendadas. “n” = el SA indica general y particular. Esto es, todos tienen 3 agendas disponibles, salvo Pedro que tendrá 5.
Cada usuario definirá si tendrá bandas de cobertura de estas reuniones. bandas de cobertura = 15 minutos hacia arriba y 15 minutos hacia abajo. Los 15 los decide el usuario.

6) Sincronizar calendarios (secundario al principal):
6.1 Siempre se sincroniza desde el secundario al principal.
6.2 En dos vías o en una vía.
6.3 Ejemplo en video adjunto.
6.4 Respecto del asunto en las citas sincronizadas, debe permitir bloquear el asunto (debe colocar [Busy]) o clonarla.
6.5 Si clona el asunto, debe permitir colocar un prefijo. El prefijo es por calendario. Por ejemplo, uno de mis calendarios secundarios tendrá de prefijo "[USS]". O la sincronización parte con el Alias en paréntesis de corchetes, por ejemplo “[Universidad] “ y clonar el asunto.
Usted decide como se administra visualmente este punto. Si es con alternativas o bastará colocar entre comillas el "Busy" o el prefijo en comillas simples ´[USS]´.

7) Los calendarios pueden ser: Google Calendar, Outlook Calendar, Apple Calendar, otros, iCal, mailcow (yo uso este).
Debe resolver si algún email ha cambiado la clave (o que no tenga acceso al calendario) y solicitar que reingrese la clave. Por ejemplo uno de mis calendarios exige que se cambie la clave cada 7 días. Debe avisar por email.

8) Debe permitir crear (al usuario) una reunión (en cualquier calendario de los ingresados). Recordar que también los sincroniza.
8.1 Debe poder crear (CRU) equipos de emails. Puede existir que un email no exista en el programa, debe crear el equipo igual.
El SA administra cuantos
8.2 Equipos de trabajo:
Cada usuario podrá tener “n” equipos. “n” = el SA indica general y particular. Esto es, todos tienen 3 equipos, salvo Diego que tendrá 5.
Al crear una reunión de un equipo debe mostrar las ventanas horarias disponibles. Si un email no está dentro del equipo se debe indicar, pero permitir crear la reunión.
8.3 Debe permitir crear reuniones con emails de cualquier no usuario.
8.4 Debe permitir indicar si la reunión es virtual o presencial.
8.5 Si la reunión es presencial asigna tiempo (valores en duro de 30, 45 o 60 minutos) de ruta antes y después, solo para él. Ese tiempo de ruta se indica en el calendario como una cita "Ruta para cumplir el siguiente compromiso".
8.6 La ruta puede ser de retorno, considerarlo para la creación de esa cita en el calendario.
8.7 Debe permitir seleccionar alguna aplicación de reunión virtual, sincronizada con el usuario correspondiente (jitsy no exige usuario sincronizado).

9) No es una herramienta que se comercialice, es de uso restringido.

10) Puede usar UI disponibles (preferencia por el azul), proponga usted, no habrá dificultad en esto.

11) Debe quedar documentado en github.

Se debe indicar el costo del desarrollo, no se indicará el budget disponible.
Se debe indicar el tiempo de desarrollo.

Gracias.
Related categories: Python Amazon Web Services