Lista de tareas utilizando Laravel, base de datos MySQL y Vue.
Demo: https://lista-tareas.yizack.com
Video demostración
2023-07-10_20-33-54.mp4
- Tecnologías
- Requerimientos para reproducción
- Pasos de instalación del proyecto
- Pasos para ejecutar el proyecto
- REST API
- Ejemplo
- Información adicional (Base de datos)
- Desarrollo
- Backend:
- Laravel (PHP Framework)
- Composer
- MySQL
- Node.js
- Vite
- Inertia
- Frontend:
- Vue 3
- Bootstrap 5
- Descargar e Instalar GitHub CLI
- Descargar e Instalar PHP y MySQL, yo he utilizado XAMPP (PHP 8.2.4) como entorno
- Dentro de la carpeta
C:\xampp\php, habilitar la extensión zip en el archivophp.inide PHP si es necesario para habilitar la instalación de los paquetes de composer. Buscar;extension=zipy cambiarlo porextension=zip - Descargar e instalar Composer (2.5.8)
- Descargar e instalar Node.js (18.16.1)
- Instalar pnpm utilizando el comando
npm install pnpm@latest -g
- Clonar el repositorio de GitHub.
gh repo clone Yizack/prueba-intermedio-tareas- Cambiar de directorio
cd prueba-intermedio-tareas- Para instalar paquetes de composer del proyecto ejecutar
composer install- Comando para instalar paquetes npm utilizando pnpm
pnpm installPara la ejecución del proyecto se necesitará realizar los siguientes pasos.
-
IMPORTANTE: Renombrar el archivo
.env.examplea.envpara hacer uso de las variables de entorno. -
Iniciar Apache y MySQL por ejemplo en XAMPP
- Abrir una consola en el directorio del proyecto y ejecutar el siguiente comando para realizar la migración de la base de datos
php artisan migrate- Generar una clave de aplicación
php artisan key:generate- Ejecutar la build de Vue con Vite
pnpm build- Para iniciar el servidor, ejecutar
php artisan serve-
Acceder a la dirección http://localhost:8000 en el navegador.
-
Pantalla inicial si todo se ha ejecutado correctamente.
Puntos finales de la API
| Endpoint | Método | Descripción |
|---|---|---|
/api/tareas |
GET | Obtener todas las tareas |
/api/tareas |
POST | Crear tarea |
/api/tareas/:id |
PUT | Modificar tarea |
/api/tareas/:id |
DELETE | Eliminar tarea |
/api/tareas/:id |
PATCH | Completar tarea |
La API web devuelve todos los datos de respuesta como un objeto JSON. A continuación se muestran tablas con la descripción de todas las propiedades.
| Propiedad | Tipo | Descripción |
|---|---|---|
id |
integer | Identificador de la tarea |
nombre |
string | Nombre de la tarea |
completado |
boolean | Completación de la tarea |
created_at |
timestamp | Fecha y tiempo de creación |
updated_at |
timestamp | Fecha y tiempo de modificación |
Captura del funcionamiento
El framework de Laravel nos permite crear migraciones de nuestra estructura de base de datos fácilmente utilizando el directorio database/migrations con código PHP. Por ejemplo, ver el archivo tareas_table.php
Igualmente también nos facilita la creación de rutas de nuestra api utilizando el directorio routes y el archivo api.php, a estas rutas podemos asignarles funciones de un controlador para obtener las tareas y realizar las modificaciones de nuestra base de datos.
El archivo del controlador de tareas donde se encuentran las acciones está localizado en app/Http/Controllers/TareaController.php
Para motivos de demostración de conocimiento también he creado un archivo con instrucciones para crear la tabla de la base de datos y los procedimientos de almacenado en caso de que no exista una opción de migración de base de datos como la que ofrece Laravel.
El archivo con las instrucciones se puede encontrar en db.sql
Para realizar cambios en entorno de desarrollo
- Ejecutar el comando de entorno de desarrollo de Vite
pnpm dev- En otra consola sin cerrar la consola anterior, ejectuar el servidor
php artisan serve