{"id":22432288,"url":"https://github.com/normalhuman01/alquiler-autos-php_vue","last_synced_at":"2026-05-10T19:19:18.113Z","repository":{"id":212739174,"uuid":"732197720","full_name":"normalhuman01/alquiler-autos-php_vue","owner":"normalhuman01","description":"Car Rental System with PHP, Laravel and Vue.js","archived":false,"fork":false,"pushed_at":"2023-12-15T22:38:05.000Z","size":1290,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T12:45:36.632Z","etag":null,"topics":["laravel","php","vue"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/normalhuman01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-12-15T22:33:35.000Z","updated_at":"2023-12-15T22:37:03.000Z","dependencies_parsed_at":"2023-12-16T00:00:15.976Z","dependency_job_id":"3dcef66f-5946-40b4-adcf-e4dfc837e3fb","html_url":"https://github.com/normalhuman01/alquiler-autos-php_vue","commit_stats":null,"previous_names":["normalhuman01/alquiler-autos-php_vue"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/normalhuman01%2Falquiler-autos-php_vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/normalhuman01%2Falquiler-autos-php_vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/normalhuman01%2Falquiler-autos-php_vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/normalhuman01%2Falquiler-autos-php_vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/normalhuman01","download_url":"https://codeload.github.com/normalhuman01/alquiler-autos-php_vue/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245806002,"owners_count":20675291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","php","vue"],"created_at":"2024-12-05T22:11:15.677Z","updated_at":"2026-05-10T19:19:18.041Z","avatar_url":"https://github.com/normalhuman01.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Alquiler de Autos\n\n**Iniciando el proyecto**\n\n```shell\ncomposer create-project --prefer-dist laravel/laravel app_locadora_carros \"8.5.9\"\ncomposer create-project --prefer-dist laravel/laravel=8.5.9 app_locadora_carros\n```\n\n[packagist.org](https://packagist.org/packages/laravel/laravel)\n\n```shell\ncd app_locadora_carros\n```\n\n```php\nphp artisan serve\n```\n\n**Creando los modelos, controladores y migraciones**\n\nMarca\n```php\nphp artisan make:model --migration --controller --resource Marca\n```\n\nModelo\n```php\nphp artisan make:model -mcr Modelo\n```\n\nCarro\n```php\nphp artisan make:model --all Carro\n```\n\nCliente\n```php\nphp artisan make:model -a Cliente\n```\n\nLocación\n```php\nphp artisan make:model -a Locacion\n```\n\n**Configurando la conexión a la base de datos e implementando las migraciones**\n\n```sql\nCREATE DATABASE lc;\n```\n\n```php\nphp artisan migrate\n```\n\n**Comprendiendo el grupo de rutas Web y API y la importancia del Content-Type**\n- Respuesta\n    - Cabeceras\n        - Content-Type\n            - text/html\n            - application/json\n\n```\nhttp://127.0.0.1:8000/api/\n```\n\n**Rutas y la diferencia entre Route::resource y Route::apiResource**\n\n```php\nphp artisan route:list\n```\n\n**Creando registros mediante POST**\n\n```sql\nUSE LC;\nDESCRIBE marcas;\nSELECT * FROM marcas;\n```\n\n**Actualizando registros mediante PUT y PATCH**\n- PUT se utiliza para actualizar todos los campos.\n- PATCH se utiliza para actualizar un campo específico.\n\n**Comprendiendo el concepto de punto final (URL, URN y URI)**\n- URL - Localizador de Recursos Uniforme\n    - Host donde se encuentra el recurso.\n- URN - Nombre de Recurso Uniforme\n    - Recurso dentro del host.\n- URI - Identificador de Recurso Uniforme\n    - Combinación del protocolo + URL + URN\n\n**Validaciones parte 3 - Validando parámetros y la importancia del Accept**\n- Cabeceras\n    - Content-Type | application/x-www-form-urlencoded\n    - Accept | application/json\n\n**Validaciones parte 4 - Reglas de validación en la actualización - Manejando Unique**\n- Unique\n    - 1) Tabla\n    - 2) Nombre de la columna que se buscará en la tabla\n    - 3) ID del registro que se omitirá en la búsqueda\n\n**Carga de archivos - Implementando la carga de imágenes parte 1**\n\n```php\n$request-\u003enombre;\n$request-\u003eget('nombre');\n$request-\u003einput('nombre');\n\n$request-\u003eimagen;\n$request-\u003efile('imagen');\n```\n\n**Implementando la carga de imágenes parte 2**\n- Disco - config/filesystems.php\n    - local -\u003e /storage/app/\n    - public -\u003e /storage/app/public/\n    - AWS S3 -\u003e cloud\n\n**Implementando la carga de imágenes parte 3**\n\n```php\n$marca = $this-\u003emarca-\u003ecreate([\n    'nombre' =\u003e $request-\u003enombre,\n    'imagen' =\u003e $imagen_urn\n]);\n\n$marca-\u003enombre = $request-\u003enombre;\n$marca-\u003eimagen = $imagen_urn;\n$marca-\u003esave();\n```\n\n**Carga de archivos - Creando un enlace simbólico para el disco público**\n\n```php\nphp artisan storage:link\n```\n\n**Carga de archivos - Actualizando imágenes**\n\nPOST - form-data\n```\nnombre        BMW - Prueba\nimagen        ford.png\n_method       put\n```\n\n---\n\n**Instalando el paquete JWT-Auth**\n\n```\ncomposer require tymon/jwt-auth \"1.0.2\"\n```\n\n**Configurando JWT-Auth en el proyecto**\n\n[jwt-auth](https://jwt-auth.readthedocs.io/en/develop/laravel-installation/)\n\nconfig/app.php\n```\n'providers' =\u003e [\n    ...\n    Tymon\\JWTAuth\\Providers\\LaravelServiceProvider::class,\n]\n```\n\nconfig/jwt.php\n```\nphp artisan vendor:publish --provider=\"Tymon\\JWTAuth\\Providers\\LaravelServiceProvider\"\n```\n\n.env: JWT_SECRET=foobar\n```\nphp artisan jwt:secret\n```\n\n**Creando rutas de autenticación y autorización y el AuthController**\n\n```php\nphp artisan make:controller AuthController\n```\n\n**Insertando un usuario en la base de datos**\n\n```php\nphp artisan tinker\n\n$user = new App\\Models\\User();\n\n$user-\u003ename = 'Lucas';\n$user-\u003eemail = 'lucasdarosa.ti@gmail.com';\n$user-\u003epassword = bcrypt('1234');\n\n$user-\u003esave();\n```\n\n---\n\n**Agregando la relación entre modelos y marcas**\n\n- all()\n    - Crea un objeto de consulta + get() = Colección\n- get()\n    - Modificar la consulta - Colección\n\n---\n\n**Expiración de JWT por tiempo límite**\n\n```\nJWT_TTL=120 // minutos en el archivo .env\n```\n\n---\n\n**Configurando Vue.JS en Laravel**\n\nInstalar el paquete UI\n```\ncomposer require laravel/ui:^3.2.1\n```\n\nGenerar el esqueleto del proyecto con Vue.JS y autenticación web nativa (scaffold / esqueleto)\n```php\nphp artisan ui vue --auth\n```\n\nInstalar las dependencias de frontend\n```\nnpm install\n```\n\nCargador de Vue\n```\nnpm install vue-loader@^15.9.8 --save-dev --legacy-peer-deps\n```\n\nGenerar el paquete de frontend\n```\nnpm run dev\n```\n\n**Instalando y configurando Vuex en el proyecto**\n\n```\nnpm install vuex@3.6.2\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnormalhuman01%2Falquiler-autos-php_vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnormalhuman01%2Falquiler-autos-php_vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnormalhuman01%2Falquiler-autos-php_vue/lists"}