{"id":260,"date":"2023-01-17T23:35:29","date_gmt":"2023-01-18T02:35:29","guid":{"rendered":"https:\/\/ventiladorcito.com\/blog\/?p=260"},"modified":"2024-03-17T22:19:52","modified_gmt":"2024-03-18T01:19:52","slug":"mascotas-perdidas-py","status":"publish","type":"post","link":"https:\/\/ventiladorcito.com\/blog\/2023\/01\/mascotas-perdidas-py\/","title":{"rendered":"Mascotas Perdidas Py"},"content":{"rendered":"\n<p class=\"has-medium-font-size\"><strong>2 de Enero<\/strong><\/p>\n\n\n\n<p>Este es un post que ya deber\u00eda de haber escrito hace mucho, bueno, suficiente sentimentalismo y culpa, al proyecto.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>8 de Enero<\/strong><\/p>\n\n\n\n<p><br>Lo primero es crear un repositorio, esto lo hago en <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/p431i7o\/mascotas-perdidas-py\" target=\"_blank\">https:\/\/github.com\/p431i7o\/mascotas-perdidas-py<\/a> , de momento este repositorio est\u00e1 marcado como privado, pero al momento de publicar los art\u00edculos ya estar\u00e1 como p\u00fablico.<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-text-color\">Luego sigue crear una carpeta localmente donde montar el proyecto Laravel y correr los comandos para instalar paquetes<\/p>\n\n\n\n<p class=\"has-dark-gray-color has-text-color\"><br><em>Esto es para crear el proyecto, lo muestro netamente para demostraci\u00f3n<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code has-dark-gray-color has-text-color\"><code lang=\"bash\" class=\"language-bash\"><code><strong>composer create-project laravel\/laravel mascotas-perdidas-py<\/strong><span style=\"background-color: rgb(40, 44, 52); color: rgb(68, 68, 68); font-size: 0.857143rem;\"><\/span><\/code><\/code><\/pre>\n\n\n\n<p class=\"has-dark-gray-color has-text-color\"><em>Esto instalar\u00e1 los paquetes php que necesita el framework para funcionar<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code has-dark-gray-color has-text-color\"><code lang=\"bash\" class=\"language-bash\"><code><strong>composer install<\/strong><\/code><\/code><\/pre>\n\n\n\n<p class=\"has-dark-gray-color has-text-color\"><em>Esto va instalar los paquetes javascript que necesita el proyecto<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code has-dark-gray-color has-text-color\"><code lang=\"bash\" class=\"language-bash\"><code><strong>npm install<\/strong><\/code><\/code><\/pre>\n\n\n\n<p class=\"has-dark-gray-color has-text-color\"><br><em>Y esto construir\u00e1 las versiones compiladas (realmente minimizadas) de los paquetes javascript que se expondran en public, por detras corre un programa llamado vite, que vino a reemplazar al webpack que se usaba en versiones anteriores.<\/em><br><\/p>\n\n\n\n<pre class=\"wp-block-code has-dark-gray-color has-text-color\"><code lang=\"bash\" class=\"language-bash\"><code><strong>npm run build<\/strong><\/code><\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size\"><strong>16 de Enero<\/strong><\/p>\n\n\n\n<p><em>Probamos si funciona el proyecto ejecutando:<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">php artisan serve<\/code><\/pre>\n\n\n\n<p>y corroboramos en el navegador<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1024x596.png\" alt=\"\" class=\"wp-image-265\" srcset=\"https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1024x596.png 1024w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-300x175.png 300w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-768x447.png 768w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-624x363.png 624w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image.png 1250w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Visualizaci\u00f3n del proyecto corriendo con el artisan serve<\/figcaption><\/figure>\n\n\n\n<p>A continuaci\u00f3n toca definir nuestras estructuras de datos.<\/p>\n\n\n\n<p>Vamos a necesitar una tabla para registrar a nuestros usuarios, y en este punto quiero recordar que Laravel ya viene con algunas tablas listas para migrar y usar estas son:<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"922\" height=\"149\" src=\"https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1.png\" alt=\"\" class=\"wp-image-266\" srcset=\"https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1.png 922w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1-300x48.png 300w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1-768x124.png 768w, https:\/\/ventiladorcito.com\/blog\/wp-content\/uploads\/2023\/01\/image-1-624x101.png 624w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/><\/a><figcaption class=\"wp-element-caption\">Migraciones que ya vienen con Laravel<\/figcaption><\/figure>\n\n\n\n<p>Lo siguiente es crear la base de datos desde nuestro DBM, en mi caso es pgAdmin para postgres, pero deberian poder hacer lo mismo con MySQL, el nombre que eleg\u00ed para la base de datos es <strong><em>mascperdorgpy<\/em><\/strong> y luego editar nuestro archivo .env (que es el que guarda las configuraciones del sistema y seteamos lo valores de base de datos de acuerdo a las credenciales que tengamos, en mi caso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"properties\" class=\"language-properties\">DB_CONNECTION=pgsql\nDB_HOST=127.0.0.1\nDB_PORT=5432\nDB_DATABASE=mascperdorgpy\nDB_USERNAME=postgres\nDB_PASSWORD=&lt;passwordMegaUltraSecreto&gt;<\/code><\/pre>\n\n\n\n<p>Tambi\u00e9n podemos aprovechar y setear un nombre para la App en la variable<br><code>APP_NAME=\"Mascotas Perdidas Org Py\"<\/code><br>Recordar que el valor que se asigna en el .env tiene algun espacio, conviene que vaya entre comillas, pues sino puede producir un error o tomar solo la primera palabra.<\/p>\n\n\n\n<p>Revisando la primera migracion, la llamada <strong>create_users_table.php<\/strong> podemos observar que contiene:<\/p>\n\n\n\n<pre title=\"create_users_table.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\n\nuse Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Support\\Facades\\Schema;\n\nreturn new class extends Migration\n{\n    \/**\n     * Run the migrations.\n     *\n     * @return void\n     *\/\n    public function up()\n    {\n        Schema::create('users', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('name');\n            $table-&gt;string('email',255)-&gt;unique();\n            $table-&gt;timestamp('email_verified_at')-&gt;nullable();\n            $table-&gt;string('password');\n            $table-&gt;rememberToken();\n            $table-&gt;timestamps();\n            $table-&gt;softDeletes();\n        });\n    }\n\n    \/**\n     * Reverse the migrations.\n     *\n     * @return void\n     *\/\n    public function down()\n    {\n        Schema::dropIfExists('users');\n    }\n};<\/code><\/pre>\n\n\n\n<p>Vemos que para la tabla users, tiene unos campos b\u00e1sicos, a estos campos agregaremos unos m\u00e1s que necesitaremos en el proyecto, como ser direcci\u00f3n, tel\u00e9fono, etc (que podr\u00e1n ser nulos, pero es importante poder contar con ellos dada la naturaleza de nuestro sitio)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">$table-&gt;string('address',250)-&gt;nullable();\n$table-&gt;string('city',250)-&gt;nullable();\n$table-&gt;string('phone')-&gt;nullable();\n$table-&gt;boolean('active')-&gt;default(true);<\/code><\/pre>\n\n\n\n<p>Con eso cerramos este d\u00eda, en la siguiente entrada tocar\u00e1 elegir un m\u00e9todo de autenticaci\u00f3n, tendremos para elegir entre los diferentes <a rel=\"noreferrer noopener\" href=\"https:\/\/laravel.com\/docs\/9.x\/starter-kits\" target=\"_blank\">starter kits<\/a> de laravel, entre ellos est\u00e1 Breeze, Jetstream y <a href=\"https:\/\/laravel.com\/docs\/9.x\/fortify\" target=\"_blank\" rel=\"noreferrer noopener\">Fortify<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2 de Enero Este es un post que ya deber\u00eda de haber escrito hace mucho, bueno, suficiente sentimentalismo y culpa, al proyecto. 8 de Enero Lo primero es crear un repositorio, esto lo hago en https:\/\/github.com\/p431i7o\/mascotas-perdidas-py , de momento este repositorio est\u00e1 marcado como privado, pero al momento de publicar los art\u00edculos ya estar\u00e1 como [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[78,2,13,97],"tags":[98,101,102,99,100,103],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-howto","category-miscelaneas","category-open-source","category-proyectos","tag-laravel","tag-migraciones","tag-npm","tag-php","tag-postgres","tag-vite"],"_links":{"self":[{"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":7,"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":283,"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions\/283"}],"wp:attachment":[{"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/media?parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/categories?post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ventiladorcito.com\/blog\/wp-json\/wp\/v2\/tags?post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}