Gestor de Proyectos, Tareas e Imputación de Horas con Filament 3
Este proyecto es un gestor de proyectos, tareas e imputación de horas desarrollado para ayudar a administradores y usuarios a gestionar eficientemente sus actividades diarias. El sistema consta de dos paneles desarrollados con Filament 3: uno para administradores y otro para taskers.
Cursos recomendados para entender este proyecto
Curso de Laravel 11: Conoce las bases de Laravel.
WSL 2 en Windows con Laravel Sail: Si te encuentras trabajando en Windows y no sabes nada acerca de Laravel Sail, no te lo puedes perder.
Ruta de Filament 3: Todo lo desarrollado en este proyecto sale de esa ruta, no tiene desperdicio. El curso que más te puede ayudar de la ruta de Filament 3 es el curso Desarrollo MultiPanel con Laravel Filament 3.
Formas de utilizar este proyecto
Como estudio, si te interesa aprender a desarrollar una tienda online, aquí tienes un ejemplo completo para que puedas ver como llevar a cabo este desarrollo.
Como punto de partida, si te gusta la idea, y quieres llevarla al siguiente nivel, tienes un punto de partida perfecto. Si en este punto necesitas mis servicios, puedes contactar conmigo a través del formulario de contacto y decirme qué necesitas.
Formas de utilizar este proyecto
Como estudio, si te interesa aprender a desarrollar este tipo de aplicaciones, aquí tienes un ejemplo completo para que puedas ver como llevar a cabo este desarrollo.
Como proyecto personal, yo como freelance, durante mucho tiempo, tuve que utilizar una herramienta similar para apuntar mis jornadas, puede ser algo muy útil.
Como punto de partida, si te gusta la idea, y quieres llevarla al siguiente nivel, tienes un punto de partida perfecto. Si en este punto necesitas mis servicios, puedes contactar conmigo a través del formulario de contacto y decirme qué necesitas.
Funcionalidades del Panel de Administración
Gestión de Usuarios (Taskers): El administrador puede crear, editar y eliminar usuarios (taskers) del sistema.
Envío de Correo Electrónico: Al crear un usuario, se le envía un correo electrónico para establecer su contraseña.
Estadísticas de Usuarios: El panel muestra estadísticas de total usuarios, usuarios activos e inactivos.
Gráfica de Registro de Usuarios: Se muestra una gráfica que representa el número de usuarios registrados durante el año en curso, mes a mes.
Activación/Desactivación de Usuarios: El administrador puede decidir si los usuarios están activos o inactivos. Los usuarios inactivos no pueden acceder al panel.
Exportación de Datos: Los listados de usuarios permiten exportar los datos a Excel.
Filtros Avanzados: Se pueden aplicar filtros por varios campos en los listados de usuarios.
Operaciones de Edición y Borrado: El administrador puede editar, borrar, forzar borrar y restaurar usuarios.
Funcionalidades del Panel de Taskers
Gestión de Proyectos: Los taskers pueden crear proyectos.
Gestión de Tareas: Los taskers pueden crear tareas asociadas a un proyecto a través de un RelationManager.
Imputación de Horas: Los taskers pueden reportar sus jornadas de trabajo seleccionando un proyecto y una tarea, junto con fecha, hora de inicio y de fin.
Botón de Hora por Defecto: Existe un botón adicional para establecer las horas de inicio y fin por defecto para futuros usos del formulario.
Estadísticas de Proyectos: El panel muestra estadísticas de total, proyectos activos e inactivos.
Estadísticas de Horas Reportadas: Se muestran estadísticas de horas reportadas totales en el listado de reportes.
Exportación de Datos: Los listados de proyectos, tareas y reportes permiten exportar los datos a Excel.
Filtros Avanzados: Se pueden aplicar filtros por varios campos y rangos de fechas en los listados de proyectos y reportes.
Operaciones de Edición y Borrado: Los taskers pueden realizar operaciones de edición, borrado, forzar borrado y restaurar en los listados de proyectos y reportes.
Dependencias utilizadas
Archivo .env
Crea el archivo .env a partir del archivo .env.example y ajusta tus variables de entorno.
Yo he modificado el nombre del servicio de laravel.test por taskmaster en el docker-compose.yml, si tú también quieres hacer algo similar, recuerda ajustar la variable de entorno que define el nombre del servicio por lo mismo que definas en tu docker-compose.yml:
APP_SERVICE=taskmaster
Recuerda que el host de la conexión con MySQL es el servicio de docker-compose, así que las credenciales de base de datos deberían ser algo similar a lo siguiente:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
Importante, para que el envío de correos funcione sin procesos en background, define lo siguiente:
QUEUE_CONNECTION=sync
En entornos de producción, ajusta la siguiente variable del .env para decir qué dominios utilizados en los correos electrónicos podrán acceder al panel admin, más información.
[email protected]
Cambia yourdomain.com por el dominio que deba tener acceso al panel.
Lanzar proyecto con Sail
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php83-composer:latest \
composer install --ignore-platform-reqs
sail build
sail up -d
sail artisan key:generate
sail artisan migrate:fresh --seed
Ya puedes visitar los paneles /admin y /tasker para administrar e imputar.
¡Gracias por tu interés en nuestro proyecto! 😊