Implementación software
La plataforma está implementada en su mayor parte como un único programa (realmente uno para cada idioma)
que utiliza la especificación CGI.
Este programa se ejecuta en el servidor cada vez que un usuario hace clic en algún botón o enlace dentro de la plataforma,
consulta la base de datos y realiza los cálculos necesarios correspondientes a la acción pulsada,
y genera todo el código XHTML
que se envía al cliente.
Software libre
SWAD
es libre bajo licencia GNU Affero General Public License, versión 3
y por tanto puede usarse en otras universidades o instituciones docentes.
Actualmente la mayor parte del código fuente se encuentra en esta misma página;
más adelante se colocará en una forja.
Licencia
SWAD ("Sistema Web de Apoyo a la Docencia" in Spanish,
"Web System for Teaching Support" in English),
is a web platform developed at the University of Granada (Spain),
and used to support university teaching.
Copyright (C) 1999-2012 Antonio Cañas-Vargas
& Daniel J. Calandria-Hernández,
University of Granada (SPAIN) (acanas@ugr.es)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Módulo principal (swad)
Programado por Antonio Cañas Vargas.
El módulo principal de SWAD (el CGI mencionado más arriba)
engloba casi toda la funcionalidad de la plataforma,
con excepción del procesamiento de las fotografías,
el chat, la identificación desde un servicio externo a SWAD y las aplicaciones móviles.
El módulo ha sido programado en ANSI C
y la base de datos
usa el sistema de gestión de bases de datos MySQL.
El lector probablemente pensará "¿una aplicación web programada en C?".
Sí, no es lo habitual, pero... :-)
El módulo principal tiene en total
más de 127000 líneas de código fuente.
Cada programa ejecutable (uno para cada idioma)
ocupa 1,3 MiB
y en la mayoría de las posibles acciones genera la página web
en pocos milisegundos.
Para el cifrado
de las contraseñas usa el algoritmo SHA-512.
Para el cifrado de los códigos de sesión,
de los nombres de las fotografías de los usuarios
y de los códigos de usuarios enviados como parámetros,
usa el algoritmo SHA-256.
En ambos casos se ha utilizado la implementación en C de Olivier Gay.
El código fuente del módulo principal de swad está disponible en el siguiente enlace:
- swad11.40.4.tgz
- Código fuente de la versión 11.40.4, 27 de febrero de 2012, 127038 líneas
Puede descargarlo bajo los términos de la licencia GNU AGPLv3.
Para instalar SWAD, debe seguir los pasos descritos en el procedimiento de instalación.
Módulo de procesamiento de fotografías (fotomaton)
Programado por Daniel Jesús Calandria Hernández.
El procesamiento de fotografías lo realiza un módulo aparte escrito en
C++.
La primera versión de este módulo fue desarrollada por los antiguos alumnos de Ingeniería Informática
Jesús Álvarez Martín y Alberto Rodrigo Gámiz.
Actualmente se usa una versión reescrita completamente por Daniel Jesús Calandria Hernández.
El módulo detecta los rostros humanos presentes en la fotografía, ajusta el tamaño de la imagen,
y realiza diversas mejoras como la comprobación de la claridad del fondo, la eliminación de ruido,
la mejora de contraste y saturación, y el balance de blancos.
El módulo emplea la biblioteca OpenCV de Intel,
y detecta los rostros humanos presentes en las imágenes
mediante un clasificador en cascada entrenado mediante el algoritmo AdaBoost
(Paul Viola, Michael Jones: "Robust Real-time Object Detection". International Journal of Computer Vision, 2001).
El código fuente del módulo fotomaton está disponible en la forja GitHub: https://github.com/dcalandria/swad-fotomaton.
Puede descargarlo bajo los términos de la licencia GNU GPLv3.
Módulos de promediado de fotografías (foto-mediana y foto-promedio)
Programados por Daniel Jesús Calandria Hernández.
El promediado de fotografías lo realizan dos módulos aparte escritos en C.
Estos dos módulos están pendientes de ser liberados.
Módulo de chat (chat)
Programado por Daniel Jesús Calandria Hernández.
El chat
es también un módulo independiente.
La versión actual del servidor de chat está programada en C++.
El cliente de chat es un Applet Java.
Ambos módulos han sido desarrollados por Daniel Jesús Calandria Hernández.
El código fuente del servidor de chat está disponible en la forja GitHub: https://github.com/dcalandria/swad-ircd.
Puede descargarlo bajo los términos de la licencia GNU GPLv3.
El cliente de chat está pendiente de ser liberado.
Aplicación para dispositivos Android (SWADroid)
SWADroid,
la aplicación para dispositivos Android,
está escrita en Java
y ha sido programada por Juan Miguel Boyero Corral.
El código fuente está disponible en la forja GitHub: https://github.com/Amab/SWADroid,
bajo licencias GNU GPLv3
y GNU LGPLv3.
Los iconos usados por SWADroid pueden descargarse aquí:
SWADroid.zip
Puede encontrarse más información sobre SWADroid en el blog http://swadroid.wordpress.com/
Colaborar en el desarrollo
"Cuando me preguntan cuándo estará listo un programa, contesto: depende de cuánto trabaje usted en ello."
--Richard Stallman
1
SWAD es software libre,
y al igual que algunos otros productos libres, no tiene asignado un presupuesto fijo para su desarrollo,
si bien puntualmente ha contado con becas de proyectos de innovación docente o de colaboración.
Por tanto los posibles colaboradores no deben esperar en general dinero a cambio de su trabajo,
pero sí aprendizaje, diversión, satisfacción, reconocimiento,
y si lo desean, un certificado de colaboración en el desarrollo de SWAD.
|