Skip to content


Finitus: aplicación de ejemplo para un curso de cáscaras y solución de un problema real

Entre los meses de noviembre y diciembre de 2011 hemos realizado el primer curso de Cáscara. Como aplicación de ejemplo a desarrollar durante el curso hemos escogido un problema real que ha presentado los compañeros del aula de informática de Geografía e Historia. Estas serían las especificaciones de la aplicación:

Problema

Con la implantación de los nuevos Grados y de los nuevos Másteres, los alumnos realizan en su matrícula una asignatura denominada “Trabajo Fin de Grado” o “Trabajo Fin de Máster”.

El trabajo que deben realizar para superar los créditos consiste en lo siguiente:

Fase 1

Los profesores deciden sobre qué líneas de investigación se hacen estos trabajos. Para ello, proponen una serie de líneas y un tope de alumnos que pueden realizar el trabajo en esta línea. El mínimo número de alumnos que los profesores tienen en una línea es 2; el máximo, todos los que quieran.

Fase 2

Los alumnos se inscriben en la línea de investigación en la que quieren realizar su TFM o TFG. Se les proponen todas las líneas y deben elegir un máximo de 10, dando prioridad del 1 al 10 entre éstas.

Fase 3

La Facultad acepta las líneas del alumno pero atiende a razones académicas para otorgarle o no otorgarle una determinada línea: nota de expediente académico, créditos matriculados.

Fase 4

Se publican los resultados de la Fase anterior y se vuelve a realizar LA SEGUNDA FASE PARA RESULTAS, sucesivamente hasta que se inscriban todos en alguna línea.

 

Si queréis acceder al desarrollo actual de la aplicación podéis acceder al repositorio de la aplicación en github.

Posted in Aplicaciones.

Tagged with , .


Presentación de Cáscara en la Universidad de Sevilla

 

En Abril de 2011 “Cáscara” se presento en público en las Primeras Jornadas TIC del PAs de la Universidad de Sevilla.

Posted in Documentación.

Tagged with , , , .


Implementado reglas y excepciones

Una de los primeros retos que nos hemos propuesto con Cáscara es crear una aplicación de reservas de espacios y recursos que mejore la que realiza MRBS. Y uno de los retos que nos hemos propuesto es el de implementar de forma “inteligente” un sistema que pueda gestionar reglas y excepciones  a la hora de conceder una reserva. Esto permite que los usuarios puedan hacer sus reservas desde el principio hasta el final, sin tener que esperar a que alguien valide la reserva, siempre que el programa pueda observar una serie de reglas y excepciones.

itunes_smart_playlist_nested-clause

Todavía estamos dando vueltas a como encajar todo esto dentro del esquema de datos y de la lógica del programa, ojalá alguien nos pueda orientar en este sentido. De momento he encontrado un artículo muy interesante para implementar la interfaz desde la que se definirían las reglas y excepciones.

Posted in General.

Tagged with , , , , .


Sistema de permisos, roles y privilegios

El primer sistema que cáscaras propone para administrar los permisos de una aplicación está inspirado en varios intentos fallidos y el nuevo sistema que usa moodle para la asignación de permisos a roles.

El segundo sistema, del que no hablaré hoy, ni se cuando lo haré, estaría basado en ACLs (listas de control de acceso) y es el más adecuado para aplicaciones con objetos que tienen varios niveles de anidamiento (por ejemplo la gestión de ficheros y directorios).

Intentaré daros una visión de conjunto y ya iré desarrollando el tema a medida que lo vaya depurando.

La gestión de permisos se basa en tres conceptos:

  • Roles: el papel que tiene asignado cada usuario en un contexto determinado. En el caso de moodle los roles son: estudiante, profesor, administrador, etc.
  • Contextos: es el ámbito al que afecta el permiso. Hay permisos que afectan al sistema completo, otros a determinados módulos o funcionalidades del mismo, etc. Ejemplos de contexto en moodle son: sistema, curso, cuenta de usuario, categoría de curso.
  • Capacidades: son las distintas acciones sobre las que recaerán los permisos. En moodle: leer mensajes, crear curso, editar tema, etc

La asignación a un rol de una capacidad en un contexto determinado definiría un permiso. Por ejemplo, y siguiendo con los ejemplos de moodle, un permiso sería el conceder al rol de profesor la capacidad de agregar alumnos en el contexto de un curso determinado.

Por tanto al definir una capacidad tenemos que definir sobre que tipo de contexto actuará, luego al definir el permiso diremos a que identificador de ese contexto corresponde.

Por ejemplo, el usuario “Cocoliso” (id 1024) tiene el rol de “Profesor”(rol 3) en el curso (contexto 5) “Cata de vino” (curso 245). Si intenta “crear un nuevo tema” (capacidad 25) dentro del curso el sistema mirará en la tabla permisos si el rol “3” tiene permiso para la capacidad “25” y anotará en su memoria que el contexto es el “5”. Entonces mirará en la tabla usuario_curso si el usuario “1024” tiene el rol “3” para el curso “245” y si es así le autorizará para ejecutar la acción de crear el nuevo tema.

(Bueno faltan cosas por aclarar, esquemas de tablas, nombres de funciones, etc. Pero lo voy publicando ya por alguien quiere ofrecerme consejo, hacerme sugerencias o preguntarme alguna duda)

Posted in General.

Tagged with , , , , , .


¿Qué es cáscaras?

Cáscaras es un pequeño framework diseñado para desarrollar aplicaciones con rápidez. Utiliza php, smarty y adodb por lo que puede utilizarse con numerosos servidores de bases de datos.

En breve pondremos acceso al código fuente del framework, y es que se me olvidaba lo más importante: cáscaras es software libre.
Este blog nace con la idea de dar a conocer cáscaras e ir desarrollando un curso en línea para que cualquiera con unas mínimas nociones de php pueda usarlo.

Posted in General.

Tagged with , , , , .




Ir a la barra de herramientas