Multimedia Database 2019-I Project
El proyecto está dividido en dos partes, un cliente (que es este) encargado del procesamiento de los datos y un servidor encargado de almacenar los registros en MariaDB/MySQL.
El proyecto permite arrojar archivos multimedia a un área y que este sea pocesado y manejado adecuadamente, además, el usuario podrá almacenar dicho elemento en la base de datos junto con su metadata o características, las cuales nos ayudarán posteriormente a consultarle.
- HTML5
- CSS3
- JS (ES6 OOP)
- PHP
- SHELL/BAT
- SQL
- Drag & drop
- FileReader
- Audio
- Video
- Image
- Canvas
Como el proyecto maneja archivos multimedia y peticiones de tipo CORS en entornos locales, existen ciertas configuraciones a tener en cuenta tanto en los archivos del servidor (my.conf, php.ini), como en las peticiones (en cuanto a las cabezeras tanto en el cliente como en el servidor). A continuación listaré la lista de acciones a tomar:
; máxima memoria de ejecución
memory_limit=512M
; Aceptar un valor máximo de 1GB para el envío por POST
post_max_size=1024M
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
; opcional si posteriormente piensan adicionar inputs de tipo file
upload_max_filesize=1024M
[mysqldump]
quick
max_allowed_packet = 128M
# The MySQL server
[mysqld]
max_allowed_packet = 128M
innodb_log_file_size = 256M
En grupos de máximo 3 estudiantes desarrollarán el proyecto de fin de curso de MMDB.
Ustedes
El proyecto será desarrollado bajo las tecnologías aprendidas en clase y la entrega se hará por medio de sustentación presencial y entrega del proyecto en un repositorio alojado en GitHub, el cual será de acceso privado hasta después de ser calificado y por ende deberán asignar al docente como colaborador del mismo para que pueda revisarle.
El cliente dispondrá de las siguientes capacidades:
-
(20%) El usuario podrá cargar archivos multimedia de tipo Imagen (png, jpeg, tiff, gif), Audio (mp3, ogg, mp4, wav, m4a), Video (webm, avi, mp4, wmv), Pdf, JS, PHP (Tanto JS como PHP deberán presentarse con colores highlight que los identifiquen como podrán encontrar acá). Al procesar el archivo, el cliente previsualizará el contenido del archivo en pantalla para que el usuario pueda verlo.
-
(20%) El usuario podrá alojar dichos elementos en la base de datos para posteriormente realizar consultas con ellos, a continuación a lista de las consultas:
- El usuario podrá consultar todos los elementos de ese tipo alojados en la base de datos.
- El usuario podrá eliminar elementos multimedia de la base de datos.
-
(60%) El usuario podrá hacer Queries de comparación con los archivos de tipo Imagen definiendo el valor de tolerancia a la diferencia, entonces el programa buscará en la base de datos las imagenes similares en contenido de color y las traerá como respuesta. Entre menor (como ustedes) sea la tolerancia, más certeros serán los resultados.
Modifique su servidor para soportar los archivos multimedia que no esten ya soportados.
La entrega será el día 21 de Enero de 2019 de 10:30 - 12:30, durante la entrega los grupos tendrán 10m para socialziar los resultados de su trabajo, posteriormente y al azár, uno de los miembros será encargado de sustentar el proyecto para sacar su nota individual y además la grupal, posteriormente cada uno de los miembros restantes sustentarán para generar su nota individual.
Nota: Sólo se calificarán los progresos que estén en commit en el repositorio antes de la hora de las sustentaciones.
Nota 2: Si el grupo inicia la sustentación incompleto, los miembros no presentes tendrán una calificación de 0.0.
Nota 3: La calificación del proyecto se compone de las notas Individual y Grupal con pesos de 60% y 40% respectivamente.
No está demás recordarles que cualquier intento de fraude resultará en sanción disciplinaria y cambio de pensum ;) ;)
Pueden usar librerías externas para el desarrollo, pero también deberán sustentar su uso.