wiki:WikiStart

Proyecto SancaBase

http://www.sancayetano.esc.edu.ar/sancabase/listado_centros_ch.jpg http://www.sancayetano.esc.edu.ar/sancabase/alta_alumnos_ch.jpg

Este proyecto nace en la  Escuela de Oficios San Cayetano, ubicada en  Carapachay; dependiente del Centro de Formación Profesional Nº 401 de Vicente López, en la República Argentina. Gracias a una gestión de la red de Formación Laboral de  Cáritas San Isidro ante el  Programa para el Desarrollo de las Naciones Unidas pude meterle horas de desarrollo constante y la aplicación ya se encuentra estable y perfectamente apta para usar en los Centros de FP

Qué es SancaBase?

Es una aplicación desarrollada en  wxPython, que trata de ser una herramienta primaria para la administración de un centro de FP, sobre todo en la provincia de Buenos Aires.

Qué licencia tiene?

La licencia es la GPL, 2.0 y posteriores.

Cómo consigo soporte?

Hay algunos escritos debajo y básicamente ahora estoy en la etapa primaria del desarrollo, así que no puedo meterme con listas de correos, wikis y demás, en la medida que el proyecto avance trataré de poner algo de eso...

Técnicamente, cómo funciona?

Usa una base de datos MySQL y desde una interfaz hecha en wxPython realiza ABM de alumnos, los formatea de acuerdo a diversos criterios y los puede imprimir según el formato de la documentación provincial. Además brinda la posibilidad de hacer planillas de gastos de caja chica, proyectos o pequeñas contabilidades y luego exportarlas a .ods o a M$ Excel.

Sobre qué plataformas corre?

Está hecho sobre wxPython corriendo en Linux Debian Etch así que debería correr sin problemas sobre esa plataforma! Además lo he probado una vez en window$ y sé que funciona, pero recomiendo fervientemente decirle adiós a Micro$oft Sobre MAC OsX, también debería funcionar, aunque no creo que muchos colegios de Buenos Aires tengamos alguna vez una de ellas... y encima el SO no es libre

¿Cómo lo instalo?

No tengo instalador aún, así es que aquellos con alma de aventureros me pueden seguir de la siguiente manera:

GNU/Linux:

Esta instalación funciona en Ubuntu 8.04 y posteriores, en este momento el desarrollo es sobre Ubuntu 9.04 Jaunty, aunque debería funcionar bien para cualquier distribución de Linux basada en Debian; y con pocas modificaciones, en cualquier otro GNU/Linux.

Instalación de paquetes

  sudo apt-get install mysql mysql-server-5.0 mysql-admin phpmyadmin python python-wxgtk2.8 python-mysqldb python reportlab subversion

Descarga de Sancabase

Descarga de archivos:

cd /svn
svn checkout https://trac.usla.org.ar/svn/sanca

Y así podés bajarte las actualizaciones de manera periódica con un simple

svn update

Creación de la base de datos

Hay que abrir un navegador y entrar a  http://localhost/phpmyadmin donde podemos entrar a PHPMyAdmin con el usuario root y sin contraseña (salvo que le hayamos puesto una cuando instalamos MySQL). Una aclaración infaltable es que este usuario no tiene nada que ver con el usuario root del sistema operativo.

Tal como se ve en la imagen (zona resaltada), se crea la base de datos "escuela" con el cotejamiento "utf8_unicode_ci", que es el último de la lista.

Una vez realizada esta etapa, se verá una imagen como la siguiente:

Importación de las tablas para la base escuela

Si vamos a la pestaña Importar, podemos buscar el archivo

/opt/sanca/trunk/sql/escuela_estructura.sql

que está en el directorio donde hayamos ejecutado el comando svn. Una vez localizado, se procede a importarlo con el botón Continuar.

De idéntica manera, procedemos a importar la segunda y última tabla, especialidades.sql

Creación del usuario para Sancabase

Lo primero es volver a la pantalla principal, picando en el ícono de la casita, que es el que está en la barra lateral, a la izquierda de la pantalla. Estando allí, podemos picar en el enlace Privilegios.

En la pantalla siguiente podremos crear el nuevo usuario, usando el enlace correspondiente en la parte inferior:

Allí crearemos el usuario con estos datos (la contraseña es la que ustedes quieran):

Modificación de datos personales en sancabase.py

Para esto usamos el editor de texto simple que más nos guste (Recomiendo  Geany en modo gráfico o  Vim en consola). Buscamos la línea que dice:

# Conexión a la base de datos
        self.db = MySQLdb.connect('localhost', 'javier', 'javier', 'escuela', charset='UTF8')

Y cambiamos 'javier', 'javier' por 'el_usuario' y 'la_contraseña' que pusimos en la base de datos.

¡¡OJO. no tocar los espacios de la sangría!'''

O sea que les debería quedar algo así como:

# Conexión a la base de datos
        self.db = MySQLdb.connect('localhost', 'mi_usuario', 'mi_passwd', 'escuela', charset='UTF8')

Ejecución de Sancabase

El primer paso es darle permisos de ejecución al archivo sancabase.py

chmod +xR sanca/trunk/sancabase.py

"Ejecutar esto desde el directorio /svn/... donde descargamos los archivos).

Se puede probar primero desde la línea de comandos. Para depurar cualquier mensaje de error, si existiera. Para eso:

/svn/foo/trunk/sancabase.py

Y se debería abrir la ventana de inicio de Sancabase.

Si no es así y no sabés como corregir el problema, podés enviarnos lo que dice la consola luego de que ejecutás el último comando acá puesto.

Para darle una apariencia mejor, podrías crear un botón a la aplicación desde el escritorio o lanzador que uses. Solo hay que hacer que el botón ejecute el archivo sancabase.py.

En el directorio .../sanca/trunk/accesos he puesto un acceso con un scripcito de arranque.

Acá te pongo un ejemplo para que veas como se configura un botón para el lanzador de aplicaciones de KDE 3.5

Window$:

Aclaración: NO uso softwre privativo. Y recomiendo fervorosamente que no lo hagan tampoco. Empero, si quieren o deben usar sí o sí w$ les pongo una manera de instalarlo en esa plataforma. Espero que lleguen a buen puerto, es una linda experiencia ya que son cosas muchas veces nuevas para nosotros. Trato de explicar para qué sirve cada cosa para que no instalen "porque sí" sino que vayan identificando qué es cada aplicación. Como Sancabase está en desarrollo, no hay instalador aún, esperemos que pronto podamos verla terminada y con instalador completo. Conviene llevar un pendrive o CD con todo lo necesario ya bajado para ahorrar tiempo. Todo el procedimiento tarda menos de una hora con bajadas incluidas. Suerte y muchas gracias por probar Sancabase

*Instalar Subversion, (Es un control de versiones, con esta aplicación pueden bajar todos los días las nuevas versiones del Sancabase, ya que está en constante desarrollo) bajarlo de:

 http://svn1clicksetup.tigris.org/files/documents/3106/33794/Svn1ClickSetup-1.3.3.exe

Si pide reiniciar, hacerlo.

*Instalar Xampp, (es una aplicación que instala el servidor web Apache, la base de datos MySQL, PHP, el administrador de bases PHPMyAdmin, etc de manera rápida y transparente, también podríamos instalar por separado lo que necesitamos, pero es más complejo) bajarlo de:

 http://www.apachefriends.org/download.php?xampp-win32-1.7.1-installer.exe

Conviene setearlo para que MySQL levante como "servicio" de w$, es decir que corra desde el arranque, que esté siempre disponible.

*Instalar Python, bajarlo desde este enlace: (el intérprete de Python, para que w$ reconozca nuestro lenguaje)

 http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi

*Luego instalar wxPython desde aquí: (es la biblioteca gráfica de nuestra aplicación)

 http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.9.2-py25.exe

*Instalar Python Mysqldb: (Para que python se pueda conectar con MySQL)

 http://ufpr.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.win32-py2.5.exe

*Conviene instalar este editor de Python: (porque tenemos que tocar alguna cosa)

 http://sourceforge.net/project/downloading.php?group_id=153444&filename=geany-0.16_setup.exe&a=53826428

*y por último instalar ReportLab?: (lo que nos permitirá sacar las fichas de curso, planillas, etc en PDF)

 http://www.reportlab.org/ftp/reportlab-2.3.win32-py2.5.exe

Bien, ya tenemos todo lo necesario!, a trabajar!

El subversion creará un directorio c:\svnrepos si no recuerdo mal. Entramos allí por DOS (Inicio/ejecutar/cmd) y ponemos

cd svnrepos
svn checkout https://trac.usla.org.ar/svn/sanca

Eso nos bajará todos los archivos necesarios de Sancabase y hará tres directorios, nosotros usaremos el directorio trunk, que es el que aloja los archivos actuales. Allí verán sancabase.py, images,py, gpl.py, etc. Si llegamos allí OK, es que estamos en el buen camino. Dejamos abierta la ventana de DOS y seguimos.

Vamos a la barra inferior, al lado del relojito, y estará el ícono de XAMPP, debería estar corriendo MySQL ya que le dijimos que lo hiciera automáticamente, y aparte levantamos a mano el Apache.

http://www.softpedia.com/screenshots/XAMPP_3.png

Luego que están corriendo Apache y MySQL, vamos a nuestro navegador (que espero que sea Firefox :P) y tecleamos la dirección "localhost". Debería aparecer una presentación de XAMPP y elegimos entrar en español. Aparece un menú y buscamos "PHPMyadmin", deberíamos ver algo como ésto:

http://www.estrellateyarde.es/photos/phpmyadmin.jpg

Bien, es tiempo de crear nuestra base de datos:

Vamos a donde dice "Crear nueva base de datos" le ponemos una que se llame "escuela" y donde dice "cortejamiento" elegimos el último de la fila que es utf8_unicode_ci (para que nos reconozca acentos, eñes, etc) y ponemos "crear". Nos avisará que se creó satisfactoriamente pero que "no se han encontrado tablas en la base de datos". Es hora de importar la tabla. Vamos a "importar" (arriba a la derecha) y donde dice "localización del archivo de texto" vamos con "examinar" y buscamos el archivo

c:\svnrepos\sanca\trunk\sql\escuela_estructura.sql

dejamos el juego de caracteres en UTF8. Cliqueamos continuar y ahora falta importar el nomenclador de oficios. Localizamos en el menú de la derecha "especialidades" y una vez que nos muestra la página de la tabla vamos otra vez a "importar" y traemos el archivo

c:\svnrepos\sanca\trunk\sql\especialidades.sql

Ya casi estamos, hacemos clic en la casita de la izquierda, bajo el logo de PHPMyAdmin y nos lleva a la página principal. Hacemos clic en "privilegios" luego en "agregar un nuevo usuario" y allí creamos un usuario cualquiera con la contraseña que queramos. Donde dice "servidor" hay que poner "localhost" y donde dice "privilegios globales" ponemos "marcar todos", luego "continuar" para que tome los cambios. Es decir que creamos un usuario que podrá hacer lo que quiera. Bien, ya terminamos con la base de datos.

Ahora abrimos el Geany y abrimos a su vez el archivo c:\svnrepos\sanca\trunk\sancabase.py Buscamos la línea que dice:

# Conexión a la base de datos
        self.db = MySQLdb.connect('localhost', 'javier', 'javier', 'escuela', charset='UTF8')

Y cambiamos 'javier', 'javier' por 'el_usuario' y 'la_contraseña' que inventé yo en la base de datos. OJO. no tocar los espacios de la sangría!!. O sea que les debería quedar algo así como:

# Conexión a la base de datos
        self.db = MySQLdb.connect('localhost', 'mi_usuario', 'mi_passwd', 'escuela', charset='UTF8')

OK? bien, lo único que nos falta es hacer un link desde el escritorio a

c:\svnrepos\sanca\trunk\sancabase.py

ponerle un lindo ícono y ya estamos, a usar, criticar y probar Sancabase. En la ventanita de DOS, periódicamente podemos poner "svn update" y nos bajará los archivos actualizados de Sancabase.

Espero que las explicaciones hayan sido claras. Suerte y gracias!!

¿Por qué el código es tannnnn horrible!!!!!!????

Porque es mi primer aplicación "grande" en python y es la que estoy utilizando para aprender cosas del lenguaje. Si alguien quiere refactorear todo el código, pues bienvenido!. No escriban diciendo "ese código es horrendo". Ya lo sé!, pero funciona y no tira warnings, está cero optimizado y poco portable... es lo que hay!

¿Puedo colaborar o contactarme con el autor?

Pues claro! Simplemente escribí a riverplatense (at) gmail.com

¿Qué planes de continuar hay?

Muchos, gracias al apoyo de Cáritas San Isidro y el PNUD puedo seguir desarrollando. Una vez que se termine este proyecto iremos por la interfaz web del mismo.

¿Qué versión es la actual y qué cosas hace?

La versión actual es la 0.9.3 y hace bastantes cosas!!

  • Altas de alumnos, instructores, cursos(con asignación de alumnos), centros y coordinadores.
  • Modificación de los mismos.
  • Listados de los mismos.
  • Imprime listados y podés ordenarlos por criterios con un sólo clic.
  • Tiene cargados las especialidades del nomenclador oficial.
  • Editor de texto con formato incluido para hacer cartas, escritos, certificados, etc, además guarda los archivos realizados.
  • Hace la ficha de curso completa
  • Saca fichas de alumnos.
  • Hace listados de cursos por número (históricos) o totales
  • Hace las actas de examen completas
  • Saca estadísticas generales
  • Saca estadísticas por año puntual
  • Genera PDF de actas de examen, fichas de cursos, temarios (vacíos para llenar a mano)
  • Tiene una protoagenda para sincronizar con Google Calendar y contactos (en preparación)
  • Tiene un legajo social para uso de los asistentes sociales o coordinadores.
  • Hoja de escritura libre para que el coordinador / asistente social pueda hacer un seguimiento.
  • Movimientos de caja chica con listado por fecha, rubro, responsable, etc
  • Exporta la base de datos
  • Actualiza desde internet
  • Protoseguimiento de deserción y egresados
  • Falta cada vez menos ;-)

No nos podemos quejar!. Hoy es 28/12/2009

Mi nombre es  Javier Castrillo. Gracias por acercarse a SancaBase?

Attachments