Requisitos Sistema Asistencia en Laravel
Requisitos Sistema Asistencia en Laravel
Requisitos Sistema Asistencia en Laravel
Lo que se requiere:
NOTAS
➢ En la propuesta que entreguen para desarrollo del proyecto debe indicarse todos los
módulos, características y funcionalidades que van a realizar en el proyecto así como
también el cronograma de tiempos que van a terminar cada etapa de módulos y
funcionalidades.
Ya que ha de ser seguro que algunas funcionalidades y/o características se estén pasando
por alto en sistemas de este tipo, también deben indicar que es necesario realizar e indicar
en el mismo cronograma.
➢ Antes de comenzar el proyecto, el desarrollador tiene que presentar los diagramas
respectivos de lo que va a realizar en el sistema: diagrama entidad-relación para la base
de datos, diagrama de los módulos que va a tener el sistema y otros diagramas que el
desarrollador considere pertinentes.
➢ Para el desarrollo, quien tome el trabajo debe utilizar herramientas de seguimiento de
proyectos como por ejemplo https://trello.com (o alguna otra herramienta online con la que
se sienta cómodo) para ir viendo el avance del proyecto. Dentro de esto se debe indicar en
detalle el cronograma. Ejemplo de tareas detalladas de proyecto en trello.com son:
◦ http://bit.ly/2EyEdMw
◦ http://bit.ly/2A4F6sq
➢ Proyecto debe ser realizado siguiendo la metodología ágil Scrum.
➢ Debe utilizarse manejo de versiones con repositorio GIT utilizando la plataforma
https://bitbucket.org . Se pide utilizar esta plataforma ya que en su versión gratuita permite
tener repositorios privados que es lo que se requiere.
➢ Debe ser subido mediante commits separado cada cambio en el código durante el
desarrollo. Ejemplos de commits serían:
◦ Si en el código se detectó que estuvo mal escrita la letra de una palabra, para subir el
correcto mensaje del commit sería: git commit -m “Fix typo en mensaje de alerta al
usuario”. Estos son ejemplos de commits por motivo de “typo”: http://bit.ly/2BqvWWX ,
http://bit.ly/2A6SZpV
◦ Si se arregla un error que sale al momento de querer actualizar un empleado, el
commit sería: git commit -m “Fix error al tratar de eliminar empleado porque no se
estaba enviando el id de empleado”.
◦ Si se agrega el campo “Email alternativo” al modelo Usuarios, sería: git commit -m
“Add campo email alternativo a modelo Usuarios”.
◦ Si se hace una mejora en el código de generación del período de vacaciones del
empleado sería: git commit -m “Improve método de cálculo de período de
vacaciones por un algoritmo más óptimo que acelera en 50% el proceso de dicho
cálculo”.
◦ Commits de proyectos realizados con Laravel: http://bit.ly/2LoBgyI , http://bit.ly/2rNamI0
➢ Debe subirse frecuentemente commits con cada desarrollo, sea este de fase, módulo y/o
funcionalidad para con esto ir descargando e ir probando de forma frecuente el sistema tal
como la metodología Scrum lo exige.
➢ Quien tome el proyecto, debe comunicarse con bastante frecuencia indicando el progreso
del trabajo. La comunicación tiene que ser de por lo menos 2 veces por día.
➢ El desarrollador debe indicar continuamente todas las fases/etapas del proyecto en las que
esté trabajando y que va a realizar.
➢ El desarrollo debe realizarse en Linux ya que como está indicado en el proyecto, se debe
utilizar el componente/librería “Task Scheduling” el cual va directamente enlazado a los
crontab de Linux.
➢ Para el proyecto se debe utilizar la reciente versión de Laravel 5.7. Una vez concluido el
sistema, lo debe dejar actualizado a la última versión de Laravel.
➢ Como sistema va a ser desarrollado en Laravel, la base de datos a utilizar debe ser
independiente, es decir puede ser generada en PostgreSQL o MariaDB/MySQL o cualquier
otra. En este caso se debe tomar en cuenta que sea generada en PostgreSQL.
➢ Para realizar el trabajo pueden basarse en este sistema llamado triton (código fuente en
Laravel) que es similar a lo que se está requiriendo y ya tiene muchas funcionalidades
desarrolladas de lo que se necesita: http://bit.ly/2ECLXy9. Tener claro que “triton” sólo es
para referencia y no se aceptará un “copy & paste” del código fuente de ese sistema al que
se tiene que desarrollar en el presente proyecto.
➢ Como para que se pueda acelerar el desarrollo del proyecto, hay que utilizar lo más que se
pueda librerías/componentes propios de Laravel o de terceros que sean ampliamente
utilizados y/o actualizados por la comunidad (es decir, soporte de la comunidad) como es
el caso de “Spatie”, "Laravel-Excel", o de "Laravel-dompdf".
➢ Se entrega una base de datos de ejemplo para que puedan realizar las pruebas o si
desean también pueden generar registros de ejemplos para las pruebas mediante la
utilización de Factories de Laravel.
➢ Como para que tengan idea de la parte de reportes, puedo hacer la entrega de reportes
ejemplos de referencia.
➢ Una vez terminado el proyecto, deben entregar el código fuente del desarrollo.
➢ Todo el código fuente debe dejarlo bien documentado.
➢ Indicar y entregar guía/manual sobre como dejar en producción y listo para
instalar/configurar el sistema en Ubuntu.
➢ Para la realización del trabajo además del sistema triton, puedo indicar otro para que les
sirva de referencia para el desarrollo del proyecto.
He tratado de ser lo más detallado posible en la descripción del proyecto como para que
entiendan muy bien el trabajo que hay que realizar. Recomiendo que analicen el sistema “triton”
que he indicado.
Quien realice el trabajo demuestre que es una persona muy profesional y pueda dar las mejores
alternativas de solución al desarrollo e ideas de mejora, será considerado para futuros proyectos
ya que estoy buscando con quien tener una relación profesional a largo plazo.
La fortaleza que debe tener quien tome el trabajo es que sepa ser ágil en análisis de requisitos y
funcionalidades ya que ese es el 70% del trabajo.