Registro de Actividades

Job ID: 38563317

Budget: $30 – $250 USD

app web responsiva "Registro de Actividades" - (VER VIDEO ADJUNTO)

--------------------------------
--------------------------------
------ Detalles técnicos -------
--------------------------------
--------------------------------
- Se requiere crear una app web que sea responsiva, en:
PHP 8.1.29
Composer 2.7.9 (última versión actual)
con el Framework Laravel 10.3.3 (última versión actual que se genera al crear un proyecto nuevo).

MySQL 5.7.10 o superior

- Se tiene ya un proyecto limpio considerando las versiones mencionadas, con:
Instalación del paquete "Breeze" para login, registro y recuperación de password de usuario.
usando el comando "php artisan breeze:install blade --dark"

También tiene la instalación del paquete "laravel-lang" para hacer el proyecto multilenguaje, seteado en el ".env" para español.
"composer require laravel-lang/common --dev"
"php artisan lang:add es"

También tiene la instalación del paquete "Spatie" para manejo de Roles y Permisos de usuario.
"composer require spatie/laravel-permission"
"php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" "

Ya se ejecutaron las migraciones correspondientes.

Todo esto SIN adicionar líneas de código (les entregaré este proyecto al iniciar).

- Como primera versión no se necesita un diseño en particular, por lo que se requiere solo uso de bootstrap 5 para agilizar un diseño estándar y responsivo. Sin cambiar los estilos de bootstrap y sin usar otras librerías.



---------------------------------------------
---------------------------------------------
----- Detalles del flujo de la app web ------
---------------------------------------------
---------------------------------------------
La app tendrá 2 roles de usuario "Administrador" y "Colaborador" (usuarios normales). Pueden haber varios administradores y también varios colaboradores.
La primera pantalla que se vé en el PDF es solo para poder activar con los botones, el flujo de un "Usuario" y un "Administrador", en realidad la primera pantalla a mostrar, será la del login. Adicionalmente esta pantalla de login, tendrá la opción para selecionar "Empresa" (no está en el PDF del flujo, pero considerarlo).

------------------------
Usuarios (colaboradores)
------------------------

El usuario entrará directo a una pantalla de "bienvenida" donde se le mostrará sus actividades (tareas) del día, que ya han tenido un primer registro, solo las de ese usuario.

Botón "Registrar nueva actividad": este botón muestra una pantalla que le sirve al usuario para registrar la hora de inicio de una tarea (a qué hora inicio la tarea). Y si ingresa en ese mismo momento la hora de fin, esta actividad quedará cerrada para que el usuario pueda editarla más adelante. Debe seleccionar la actividad, la fecha es la fecha del día y se muestra deshabilitada, y debe ingresar como mínimo una hora (hora de inicio y/o hora de fin).
* Tablas "activities" y "register_activities"

Si el usuario selecciona una actividad de su pantalla de "bienvenida", se cargará la "hora de inicio" y la "hora de fin". Si tiene las 2 horas, entonces esa es una actividad ya cerrada y no podrá modificarla. Si solo se carga la hora de inicio (esta deberá cargarse deshabilitada) quiere decir que la actividad aun no termina y podrá colocar la hora de fin, para luego poder presionar el botón "Actividad (tarea) terminada".

** Puede existir la actividad en la tabla "activities", pero no necesariamente el usuario registra el inicio y fin.
Si selecciona la actividad y se carga la hora de inicio, esta hora se presentará ya deshabilitada, y solo podrá registrar la hora de fin de esa actividad, esto será un update.


---------------
Administradores
---------------
El administrador al ingresar tendrá una pantalla donde se mostrarán 3 secciones, como muestra el PDF "RT-ins-upd-dlt-tarea-admin".
- Contabilidad -> con el botón "Ultimo día del mes"
- Usuarios -> con el botón "Extender horario"
- Tareas -> con 3 botones

- "Ultimo día del mes": esta pantalla permitirá guardar el último día laboral de cada mes, por año. Este es solo un dato informativo que se guarda en la BD, podría ser en una tabla llamada "last_day_months".

- "Extender horario": al entrar a esta pantalla se deberá seleccionar un usuario y luego indicar una fecha, quiere decir que en la fecha indicada ese usuario puede trabajar horas extras, podrá entrar y registrar la actividad efectuada hasta las 11:59 pm.
Esto quiere decir que el horario estandar que se puede registrar entre "hora inicio" y "hora fin" es entre 9 am y 6 pm., en cambio si el usuario tiene horario extendido en la misma fecha en que está entrando a la app web, la "hora inicio" y la "hora fin" podrán ser de 6 am hasta 11:59 pm (esto está por definirse).

- Tareas -> "Registrar una nueva": Esta opción le sirve a los administradores para registrar el inicio y fin de las actividades de un usuario, por si el usuario se olvida de registrarlas.
Se muestra una pantalla donde se debe seleccionar al usuario, se debe seleccionar una de las tareas asignadas al usuario, para el administrador sí estará habilitado el campo fecha para poder seleccionar una fecha, ingresará la hora de inicio y la hora de fin. Podría darse el caso que solo registre la hora de inicio, por ello es mejor que no sea obligatoria la hora de fin.
* Las tareas se mostrarán iniciando por las más recientes, hasta 5 días de antiguedad como máximo.
* Todo registro de actividad, modificación o borrado lógico (no físico) deberá tener un flag (columna en la tabla) que indique qué usuario realizó la acción, la fecha y hora del cambio. Esto como auditoría en las tablas "activities" y "register_activities".

- Tareas -> "Cambiar": Esta opción le sirve a los administradores para modificar una actividad que haya registrado un usuario y en la que quiera cambiar "algo", como la fecha, la hora de inicio o la hora de fin.
Se muestra una pantalla donde se debe seleccionar al usuario, selecciona una fecha, luego de seleccionar la fecha la app web carga las actividades de esa fecha y de el usuario seleccionado, se selecciona una actividad y las horas de inicio y fin.
* Esto será un update a la tabla "register_activities".

- Tareas -> "Borrar": Esta opción le sirve a los administradores borrar una actividad que haya registrado un usuario por error (borrado solamente lógico con un flag en una columna de la tabla "activities").
Se muestra una pantalla donde se debe seleccionar al usuario, selecciona una fecha, luego de seleccionar la fecha la app web carga las actividades de esa fecha y de el usuario seleccionado y se selecciona una actividad (la hora de inicio y fin podrían mostrarse solo para visualizar).
* Esto será un update a la tabla "activities" cambiando la columna del flag para ese registro.
* Todo registro de actividad, modificación o borrado lógico (no físico) deberá tener un flag (columna en la tabla) que indique qué usuario realizó la acción, la fecha y hora del cambio. Esto como auditoría en las tablas "activities" y "register_activities".


-----------
Consideraciones:
-----------
- El Usuario pertenece a una Empresa (ya sea usuario tipo "Administrador" o "Colaborador").
- Que un usuario puede realizar varias actividades.
- Que una actividad puede ser realizada por varios usuarios.

- La tabla de usuarios se cargará con data manualmente.
- La tabla de actividades se cargará con data manualmente.

$ 350
Related categories: PHP MySQL Bootstrap Laravel Coding