Canceled

Desarrollo de videollamada y tablero en Laravel y vue.js

Published on the September 05, 2018 in IT & Programming

About this project

Open

Se requiere implementar la funcionalidad de crear salas para videollamadas de máximo 2 personas, en las cual se pueda compartir video, llamada, archivos, tablero de dibujos, espacio para chat, editor de texto, editor de código, y grabar toda la sesión en servidor.
Actualmente el proyecto funciona bajo Laravel y vue.js, ambos en su ultima versión.
Si quieres ver como se encuentra desarrollada la plataforma actualmente donde se incluirían estos ajustes es: https://duis.co
Para referencia visual puedes usar https://www.chegg.com/tutors/lesson-demo/

Los requerimientos funcionales son:

    - Videollamada:
        La funcionalidad debe permitir conectar a 2 usuarios (un tutor y un estudiante) con la solicitud de alguno de los 2 y la aprobación del otro.
        La funcionalidad debe permitir al aceptar las 2 partes la sesión, debe permitir contar el tiempo y visualizarlo.
        La funcionalidad debe permitir a cada uno de los usuarios compartir la cámara en caso de tenerla.
        La funcionalidad debe permitir a cada uno de los usuarios que comparta la cámara detener el compartir video en cualquier momento.
        La funcionalidad debe permitir a cada uno de los usuarios compartir voz en caso de tener micrófono.
        La funcionalidad debe permitir a cada uno de los usuarios que comparta voz mediante micrófono detener el compartir micrófono en cualquier momento.
        La funcionalidad debe permitir guardar el video de como se vio toda la sesión en los servidores de Duis.co
        La funcionalidad debe integrarse con el servicio actual de chat que usa pusher.
        La funcionalidad debe permitir que, si en algún momento uno de los usuarios sale de la llamada por algún problema, que pueda volver a ingresar a la misma.
        La funcionalidad debe permitir que al finalizar la videollamada quede almacenada en base de datos el tiempo de duración, si se compartió o no video, audio, los chats referentes a la sesión y la ruta del video sobre la sesión en el almacenamiento de Duis.co.
        La funcionalidad debe permitir el envío de archivos mediante el chat de texto, almacenarlos en el servidor de Duis.co y permitir a los usuarios descargarlos.
        La funcionalidad debe permitir cambiar entre tablero, editor de texto y editor de código en cualquier momento.
        La funcionalidad debe permitir a cualquiera de los usuarios en la sesión reportar el uso indebido de la plataforma, este reporte debe quedar en base de datos junto a la información de por que y el vídeo de la sesión para su posterior revisión.


    - Compartir pantalla:
        La funcionalidad debe permitir una vez iniciada la videollamada a cualquiera de los 2 usuarios la posibilidad de compartir pantalla, siendo solo 1 el que comparta pantalla y el otro ve, si quiere cambiar el que comparte debe dejar de compartir para que el otro lo haga.
        La funcionalidad debe permitir una vez se ha iniciado compartir pantalla por cualquiera de los dos usuarios, el mismo pueda dejar de compartir pantalla.
        La funcionalidad debe permitir que en caso de compartir pantalla esto quede grabado en el video que se guarda de la videollamada.
        La funcionalidad debe poderse ejecutar desde cualquier navegador en cualquier sistema operativo.

    - Tablero:
        La funcionalidad debe permitir el uso de un "tablero" donde interactúan los 2 usuarios.
        La funcionalidad debe permitir el uso del mouse para dibujar líneas de colores (negro, azul, rojo, verde, amarillo, gris y morado).
        La funcionalidad debe permitir el uso del mouse para modificar el grosor de línea.
        La funcionalidad debe permitir el uso de un borrador para borrar parte de las líneas o formas dibujadas.
        La funcionalidad debe permitir el uso de figuras predeterminadas como círculos, pentágonos, hexágonos, cuadrados, triángulos, líneas, líneas unidireccionales, líneas bidireccionales y bajo el uso de colores (negro, azul, rojo, verde, amarillo, gris y morado).
        La funcionalidad debe permitir el uso de áreas de texto, donde se selecciona un área y en ella se puede escribir con el teclado y hacer uso de los colores (negro, azul, rojo, verde, amarillo, gris y morado).
        La funcionalidad debe permitir mover el área de texto, o editarla una vez se haya creado el área de texto.
        La funcionalidad debe permitir cambiar el tamaño de la letra con los diferentes grosores de lápiz una vez se haya creado el área de texto.
        La funcionalidad debe permitir mover la figura, o editarla una vez se haya creado la figura.
        La funcionalidad debe permitir eliminar todas las figuras, dibujos y textos agregados a una hoja del tablero mediante un solo clic.
        La funcionalidad debe permitir cambiar el fondo del tablero por cuadricula pequeña, cuadricula mediana, cuadricula grande, y eje x y y.
        La funcionalidad debe permitir agregar hasta 20 hojas donde en cada una se pueden dibujar y crear elementos.
        La funcionalidad debe permitir adjuntar imágenes en pdf, jpg, png y gif que quedan de fondo en el tablero, al agregar nuevos archivos estos crean una hoja nueva con el dibujo de fondo.
        La funcionalidad debe permitir crear notas las cuales quedan por encima de todo dibujo, figura o cuadro de texto.
        La funcionalidad debe permitir mover y eliminar las notas de texto una vez hayan sido creadas.
        La funcionalidad debe permitir deshacer paso a paso cada dibujo, área de texto, figura o nota agregada en orden de mas reciente a mas antigua.
        La funcionalidad debe permitir rehacer cada dibujo, área de texto, figura o nota que ha sido borrada por deshacer en orden de mas reciente a mas antigua.
        La funcionalidad debe permitir descargar en cualquier momento cualquiera de las hojas creadas en la tutoría, igualmente luego de haber finalizado la tutoría.
        La funcionalidad debe permitir guardar en los servidores de Duis.co el video de todo lo que se hizo en los tableros por todos los usuarios durante la sesión.
        La funcionalidad debe al finalizar la sesión de tutoría calcular el costo de esta y guardarlo en base de datos para descontar esta cantidad directamente de la tarjeta de crédito.


    - Editor de texto:
        La funcionalidad debe permitir escribir texto identificando a cada usuario con un color de resaltado diferente.
        La funcionalidad debe permitir poner negritas a cualquier parte del texto que se seleccione.
        La funcionalidad debe permitir poner italic a cualquier parte del texto que se seleccione.
        La funcionalidad debe permitir poner subrayado a cualquier parte del texto que se seleccione.
        La funcionalidad debe permitir poner tachado a cualquier parte del texto que se seleccione.
        La funcionalidad debe permitir poner lista con números.
        La funcionalidad debe permitir poner lista con puntos.
        La funcionalidad debe permitir aumentar la sangría a cualquier parte del texto.
        La funcionalidad debe permitir disminuir la sangría a cualquier parte del texto con sangría.
        La funcionalidad debe permitir deshacer cualquier texto agregado por el usuario.
        La funcionalidad debe permitir rehacer cualquier texto deshecho por el usuario.
        La funcionalidad debe permitir crear notas las cuales quedan por encima de todo texto.
        La funcionalidad debe permitir mover y eliminar las notas de texto una vez hayan sido creadas.
        La funcionalidad debe permitir cargar textos (.doc, .pdf, .docx, txt, html, .odt) los cuales reemplazarán el texto escrito hasta antes de cargar el archivo.
        La funcionalidad debe permitir descargar el texto que se encuentre hasta el momento redactado, con una de las siguientes extensiones: .html, .txt, .doc, .pdf, .odt.
        La funcionalidad debe permitir guardar en los servidores de Duis.co el video de todo lo que se hizo en el editor de texto.

    - Editor de Código:
        La funcionalidad debe permitir escribir texto en la pestaña de editor de código a cualquiera de los dos usuarios.
        La funcionalidad debe permitir elegir el tipo de sintaxis que se va a usar en el editor (c/c++, c#, css, html, java, javascript, json, markdown, objective-c, php, python, ruby, sql, text, xml) y validar la misma.
        La funcionalidad debe permitir agrandar y disminuir el tamaño de la letra de todo el editor.
        La funcionalidad debe permitir deshacer cualquier texto agregado por el usuario.
        La funcionalidad debe permitir rehacer cualquier texto deshecho por el usuario.
        La funcionalidad debe permitir crear y eliminar nuevas hojas dentro del editor.
        La funcionalidad debe permitir descargar el texto que se encuentre hasta el momento redactado en cada una de las hojas creadas, con una de las siguientes extensiones: c/c++, c#, css, html, java, javascript, json, markdown, objective-c, php, python, ruby, sql, text, xml, .pdf, .odt.
        La funcionalidad debe permitir guardar en los servidores de Duis.co el video de todo lo que se hizo en el editor de código.

Requerimientos no funcionales:
    - Deben estar documentados.
    - Deben estar desarrollados en Laravel 5.6, y para el uso del frontend debe ser bajo vue.js y blade.
    - Debe tener base de datos mysql.
    - La funcionalidad debe ser seguro para los 2 involucrados, y cifrar la información enviada
    - La funcionalidad debe permitir accederse desde cualquier parte del mundo con conexión a internet.
    - La funcionalidad debe permitir accederse desde cualquier navegador y dispositivo con acceso a paginas webs.
    - La funcionalidad debe permitir accederse a cualquier hora.
    - La funcionalidad debe permitir mantener a las 2 personas conectadas durante la sesión, y en caso de alguno desconectarse debe poder volver a conectarse a la misma si sigue activa.

Category IT & Programming
Subcategory Web development
What is the scope of the project? Medium-sized change
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Payment Processor (Paypal, Stripe, etc.), Other (Other APIs)
Roles needed Developer

Delivery term: Not specified

Skills needed