/smart-open-space

Organizá tu Open Space!

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Smart Open Space

Organizá tu Open Space! 😎


Heroku Build Status Dependabot Status Backlog License: GPLv3 Issues

📖 Índice

👎 Problema

  • Los asistentes de un Open Space no logran captar los datos de una charla, en la agenda se cambian de sala u horario, se superponen charlas del mismo tópico, y algunas salas suelen llenarse muy rápido.

🏆 Solución

  • Smart Open Space es una web app que permite ver los datos de una charla por un proyector mientras su orador está exponiendo, me ofrece una agenda actualizada y, optimizada por tópicos y agrupando las charlas muy requeridas en espacios más grandes.

🎉 Diferencial

  • A diferencia del método actual, Pizarrón + Google SpreadSheet, el nuestro no requiere carga manual, se encuentra siempre actualizado, y sugiere optimizaciones inteligentes.

🔧 Instalación

Antes de empezar, vas a necesitar:

Descargar el código fuente

git clone git@github.com:AugustoConti/smart-open-space.git
cd smart-open-space

Levantar backend

  • Crear base de datos, ejemplo:
psql -c 'create database SOS;' -U postgres
  • Crear el archivo application-default.properties en la ruta /back/src/main/resources/. Configurando url, usuario y contraseña:
spring.datasource.url=jdbc:postgresql://localhost:5432/sos
spring.datasource.username=postgres
spring.datasource.password=root

logging.appender.email.username=""
logging.appender.email.password=""
logging.appender.email.to=""
  • Ejecutar back
cd back && ./gradlew bootRun

Levantar frontend

cd front && yarn && yarn watch

📜 Documentación

Diagrama de Arquitectura

Visualización del Open Space

Diagrama de arquitectura

  • Frontend:
    • App.js: Punto de entrada de la aplicación.
    • Routes: Detecta la ruta, y elige qué componente que corresponde renderizar.
    • OpenSpace.js: Renderiza la pantalla con los datos del Open Space.
    • os-client.js: Conseguir los datos del Open Space, conectandose con el backend.
  • Backend:
    • OpenSpaceController: Exponer los endpoints del OpenSpaceService, como REST-Json.
    • OpenSpaceService: Exponer un servicio para manipular un Open Space.
    • OpenSpaceRepository: Persistir y recuperar objetos OpenSpace de la base de datos.
    • OpenSpace: Objeto que representa un Open Space.

Casos de uso

Entrega 1

Caso de uso entrega 1

  • Organizador:
    • Crear Open Space: Nombre, fecha, horarios y salas.
  • Orador:
    • Registro / Login: Registrarse con nombre, email y contraseña. Loguearse con email y contraseña
    • Cargar charla: con título y descripción en un Open Space.
    • Agendar charla: en una sala y un horario disponible en el Open Space.
  • Asistente:
    • Ver agenda: con todas las charlas en su horario y sala de un Open Space.
    • Ver detalle de charla: Título, descripción, orador, sala y horario.

Entrega 2

Caso de uso entrega 2

  • Organizador:
    • Iniciar Marketplace: Habilitar encolamiento de los oradores para poder exponer su charla.
    • Mostrar modo proyección: Mientras orador expone, mostrar datos de su charla.
  • Orador:
    • Encolarse para exponer: Ponerse en la fila, para exponer su charla.

Entrega 3

Caso de uso entrega 3

  • Organizador:
    • Finalizar Marketplace: Deshabilitar encolamiento para que no se puedan agendar más charlas.
  • Orador:
    • Ingresar con mail: Ingresar a la app solo con email y nombre.

Entrega 4

Caso de uso entrega 4

  • Organizador:
    • Crear Open Space (modificado): Cargar estructura de slots (charla - otro).
    • Gestionar charlas: Cargar, encolar y agendar charlas de cualquier orador.
    • Intercambiar charlas: de cualquier orador a otra sala y horario.

💻 Demo

Youtube demo

👮 LICENCIA