Crear backend para alojar gran cantidad de archivos

Informática y Telecomunicaciones / Desarrollo de Software

Detalles del trabajo

  • Publicación: hace 16 días
  • Tiempo restante: 13 días
  • Tipo de trabajo: proyecto freelance
  • Ubicación: en cualquier parte del mundo
  • Presupuesto: sin especificar
  • Experiencia requerida: Intermedio (3-5 años)

Descripción del proyecto

Necesito una aplicacion Backend que este disponible mediante webservices para la subida de contenido digital (imagenes, videos, audios).
La aplicacion backend debe ser capaz de manejar grandes cantidades de datos, en un principio se va a requerir que la aplicacion mantenga 60TB entre videos e imagenes. Para esto espero sugerencias sobre si usar HDFS o algún otro framework, ya que se tiene que deployar en un server con varios discos rigidos para ser capaz de llegar a dicha capacidad.
En resumen la aplicacion es un repositorio online de archivos multimedia para una empresa.
Debe tener todas las funcionalidades de usuario (login, forgot password, change password, logout).
Habra distintos perfiles de usuarios:
--Visualizador: únicamente puede ver videos o imagenes compartidos con el
--Colaborador: igual al visualizador pero ademas, puede subir contenido y editarlo
--Administrador que puede subir contenido, editar el contenido de los demas y generar y eliminar usuarios

Al momento de subir un archivo, se define con que personas se va a compartir, con lo cual unicamente dichas personas seran capaces de verlo. Ademas, se agregar keywords para que se pueda buscar facilmente los archivos relacionados a un mismo tema.

Se puede buscar archivos por nombre, autor o keyword (siempre en base a los que se compartieron con el usuario actual, excepto que sea administrador).

Para las imagenes se debe almacenar la imagen en su calidad original, y ademas generar un thumbnail y una imagen de menor calidad a la original (a definir la calidad, puede ser 480 por ej)
Para los videos, se los debe convertir a distintos formatos para asegurar su visualizacion en distintos browsers y ademas se deben generar los videos en distintas calidades para que sea mas facil su reproduccion online (tambien se debe almacenar el original). Se sugiere ffmpeg dado que ya tengo una implementacion funcionando y la puedo compartir, a menos de que haya una propuesta mejor.
Ademas, de todos los archivos multimedia, se debe almacenar los cambios que se van haciendo, es decir, cada vez que el usuario sube una nueva versión de un video o imagen existente, se debe almacenar las versiones anteriores. Dado que estas deben poder ser consultadas anteriormente.

En Resumen:
Distintos Roles de usuarios
Administracion de Usuarios
Subida de Imagen y Videos
Para las imagenes se la debe transformar en distintas calidades
Para los videos se los debe transformar en distintas calidades y formatos.
Historial de versiones de los archivos multimedia
La aplicacion debe estar disponible para manejar grandes cantidades de informacion. Se espera que el almacenamiento original sea de 60TB y se va a incrementar con el tiempo.

Requisitos no funcionales:
Manejo de sesiones con JWT (Json Web Token) ya que el frontend va a ser una app con AngularJS
Utilizar HDFS para manejar grandes cantidades de archivos (se espera en un principio 60TB) que estaran distribuidos en distintos discos rígidos. Y los archivos deben estar en un path que sea accesible para la aplicacion web.

Se espera un dev que tenga experiencia en el manejo de archivos de manera distribuidas entre distintos discos rígidos en un mismo servidor local.

Poseo una aplicacion que se puede tomar como base, que realiza la subida de videos y los convierte a los distintos formatos y tamaño. Ademas de utilizar JWS y la administracion de Usuarios. Si el dev lo solicita lo puedo compartir.

Regístrate para ver los detalles del proyecto

Habilidades requeridas

Requisitos importantes

  • No cumples con este requisito

Acerca de la empresa

Clovinn

(0) | 2 trabajos publicados
Argentina Argentina
Noviembre de 2016

¿Tienes comentarios, ideas? ¿Has detectado errores, defectos? ¡Háznoslos llegar a nubelo!