Organizá tu Open Space! 😎
En una primera versión atacamos el siguiente 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. En esta segunda, buscamos construir la mínima herramienta que permita gestionar un Open Space virtual con tracks/votaciones y que se desarrolle múltiples días.
- Smart Open Space es una web app que permite gestionar la organización de un open space. Soporta la creación de un open space con multiples tracks que se desarrolla en múltiples días. Los asistentes pueden votar las charlas más populares. Soporta la gestión del marketplace (oradores se encolan para pitchear su charla. El organizador puede proyectar la charla que se está pitcheando). Las charlas pueden ser agendadas por el organizador (en caso que no haya marketplace) o los oradores.
- Herramienta gratis y open-source que permite gestionar tanto el envio de charlas como la creación de la agenda.
- Git
- PostgreSQL o Docker
- JDK 8 update 60 o superior (Asegurate que la variable de entorno
JAVA_HOME
apunte a la carpetajdk1.8.0
que sacaste de la descarga del JDK). - NodeJS
- Yarn
git clone git@github.com:10PinesLabs/smart-open-space.git
cd smart-open-space
docker-compose up
Esto va a generar una carpeta ./db-data
con el volumen.
Crear la 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:
Si usaste Docker, el puerto y las credenciales serian:
spring.datasource.url=jdbc:postgresql://localhost:6543/sos
spring.datasource.username=openminded
spring.datasource.password=openheart
Si usas postgresql directo:
spring.datasource.url=jdbc:postgresql://localhost:5432/sos
spring.datasource.username=postgres
spring.datasource.password=root
Ademas para ambos casos hay que agregar al final:
logging.appender.email.username=""
logging.appender.email.password=""
logging.appender.email.to=""
cd back && ./gradlew bootRun
Asegurate de tener la version de node correspondiente:
cd front && nvm use
Si no tenes yarn instalado:
npm install -g yarn
Para instalar dependencias y levantar el proyecto:
yarn && yarn watch
Util para realizar diferentes acciones de Flyway como migrations, repairs de checksums de los archivos de migración, etc.
Requiere configurar las siguientes environments:
JDBC_DATABASE_URL
: url del jdbc.JDBC_DATABASE_USERNAME
: username de la db.JDBC_DATABASE_PASSWORD
: password de la db.
Ejemplo:
JDBC_DATABASE_URL=jdbc:postgresql://localhost:6543/sos
JDBC_DATABASE_USERNAME=openminded
JDBC_DATABASE_PASSWORD=openheart
- 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.
- 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.
- 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.
- 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.
- 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.