Las razones...
Hasta ahora siempre he desarrollado mis proyectos "en silencio", pero con el tiempo he aprendido que es no es positivo por varias razones:
- A veces no recuerdo qué problemas me encontré en el camino y cómo los resolví
- Con el tiempo olvido algunos aspectos del sistema que desarrollé (tampoco son tantos ni tan complejos, no se crean ;) )
- No comparto conocimiento: Otras personas no acceden a los entresijos del mismo, con lo que no pueden aprender como he aprendido (y aprendo) yo de otros proyectos.
- No facilito la colaboración: Otras personas no pueden ayudarme o participar, ya que ni siquiera saben que el proyecto existe.
- No comparto los resultados: salvo con "Calzador" casi nunca consigo que otras personas se beneficien de la aplicación, como me beneficio yo de las aplicaciones de otros.
Creo que todos estos inconvenientes pueden solucionarse si a partir de ahora comienzo a documentar mis proyectos a través de blogs.
Como mis proyectos suelen ser "pequeñitos", creo que este medio es suficiente. Si más adelante hay que plantearse otra cosa, pues ya veremos...
La necesidad a resolver:
los centros de enseñanza disponemos de una aplicación para la gestión académica llamada
Séneca, que hace poco ha incorporado la inclusión de fotos de los alumnos. Además desde siempre los centros han necesitado esas fotos para hacer listados de clase, confección de carnés escolares, etc.
Hasta ahora la gestión de esas fotos, al menos en mi centro, es bastante ineficiente (al menos en mi opinión):
- Los alumnos adjuntan una foto tamaño carné, que no siempre es de buena calidad
- Las administrativas tienen que separar las fotos y ordenarlas
- Hay que recortarlas a un tamaño determinado
- Hay que pegarlas, bien en el carné, bien en el listado de clase
- Si hay cambios en una clase, o hay que recomponer la hoja de fotos entera o ésta queda desordenada
- Además, para incluir la foto en Séneca hay que seguir el siguiente proceso:
- Escanear cada listado de fotos
- Recortar cada foto
- Buscar el IdEscolar de cada alumno y asignar el mismo como nombre de dicha foto
- Trasladar la foto (ya que la tarea anterior la realizan alumnos voluntarios, y la siguiente el personal administrativo del centro)
- Insertar la foto en Séneca.
Este sistema plantea bastantes inconvenientes:
- Es engorroso
- Requiere la colaboración de mucha gente (o de lo contrario se tarda muchísimo tiempo)
- Es imposible que las fotos estén para principios de curso, y siempre se tarda unas semanas en tenerlas
- Como se ha comentado, cuando se producen cambios entre cursos los listados hay que rehacerlos o dejarlos desordenados
- No resulta fácil usar las fotos para otros cometidos, como pudieran ser la generación de avisos que incluyan foto del alumno, emisión del carné por puntos, emisión de listados con fotos para excursiones, etc.
La solución que se busca:
En un primer momento se me ocurrió hacer una aplicación que "recortase" cada foto del listado de fotos, pero entonces, después de hablar con nuestras encantadoras administrativas, comprendí que ya el hecho de apartar las fotos, recortarlas y pegarlas era un trabajo tedioso.
Precisamente por esos días leí un artículo sobre un programa de software libre capaz de manejar una cámara fotográfica desde el ordenador:
gphoto2. Se podía sacar la foto y descargarla al pc dándole el nombre que uno desease. Y se me encendió la bombillita...
No resultaría complejo realizar una aplicación basada en base de datos, en la que se volcasen los datos de los alumnos, usando el IdEscolar de cada uno de ellos para campo Llave Primaria; que permitiese sacar listados de alumnos con/sin fotos, en los que el nombre de cada uno fuese el enlace a un formulario para sacar su foto.
Este formulario, en lugar de introducir una foto en la base de datos, lo que haría es:
- disparar la cámara,
- descargar la foto poniéndole como nombre del archivo el IdEscolar del Alumno,
- escalar la foto a varias resoluciones, preparando una de ellas a las que precisa Séneca,
- volcar una copia de la preparada para Séneca a una carpeta que sólo tendría una foto cada vez.
- borrar la foto anterior cada vez que se guarde la siguiente
La justificación de los dos últimos puntos es la siguiente: esto permitiría que si quien saca las fotos es personal con privilegios suficientes en Séneca, pueda ir insertando las fotos en la misma de una forma más cómoda, ya que siempre buscaría en la misma carpeta, y siempre se encontraría una sola foto. De lo único que tendría que preocuparse es de ir llevando el mismo orden en el listado de Séneca que en el de nuestra aplicación.
La solución:
Consistiría en un sistema hardware/software dedicado (o sea, los elementos no estarían disponibles para otros menesteres), compuesto por los siguientes elementos:
- Pc de baja potencia. con un Pentium III sería más que suficiente.
- Cámara fotográfica soportada por Gphoto2, que irá conectada por puerto USB.
- Alimentador de corriente alterna para la cámara (para evitar el uso de pilas).
- Soporte para la cámara. Se comenzará por un simple trípode, pero se intentará desarrollar un soporte que se ajuste, al menos en altura, mediante mando eléctrico.
- Sevidor Apache+Mysql+PHP.
- Gphoto2.
- La aplicación a desarrollar.
Posible evolución del proyecto:
Como se infiere de todo lo anterior, se plantea un sistema hardware/software que debe ser manipulado con alguien con conocimiento. Pero se podría intentar en el futuro hacer que el sistema sea completamente autónomo, si exceptuamos la parte de introducir la foto en Séneca.
Para conseguir este objetivo habría que desarrollar un soporte para la cámara que se desplazase en dos ejes, y que fuese capaz de "encuadrar" al alumno.
Para la elección del "alumno objetivo" se podría usar una pistola láser lectora de códigos de barra, y que el alumno introdujese una ficha previamente proporcionada por Secretaría.
Además habría que instalarla en un mueble que colocase mínimamente al alumno, tal vez en una silla.
Conclusión
Bueno, creo que con esta entrada está más que definido el Proyecto. En las próximas entradas iré describiendo los pasos que he ido dando y cómo fui solucionando los problemas que me encontré.
Si alguien quiere colaborar o formar parte de este proyecto puede añadir un comentario a este mensaje, o a cualquiera de los que le sigan, y me pondré en contacto con él.
Si alguien considera que la forma de contactar para participar debe ser otra, se admiten sugerencias. ;)