From 95e0581e40602a3afed943c3194d18fca84a28d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Manzanero=20Dom=C3=ADnguez?= Date: Tue, 8 Oct 2024 19:29:42 -0600 Subject: [PATCH] finish peddler app translation --- src/content/blog/en/peddler-app.mdx | 4 +- src/content/blog/es/peddler-app.mdx | 54 +++++++++++++++++++ .../blog/es/rewind-2023-y-planes-futuros.mdx | 1 - src/pages/es/blog/[...slug].astro | 54 +++++++++---------- 4 files changed, 83 insertions(+), 30 deletions(-) create mode 100644 src/content/blog/es/peddler-app.mdx diff --git a/src/content/blog/en/peddler-app.mdx b/src/content/blog/en/peddler-app.mdx index a329fe5..cf32cd4 100644 --- a/src/content/blog/en/peddler-app.mdx +++ b/src/content/blog/en/peddler-app.mdx @@ -2,7 +2,7 @@ title: Peddler App description: You hear the ice cream man in his truck, you try to catch him, but the guy is already far away. tags: [Tech, SideProject] -image: '/blog/peddler-app/banner.png' +image: "/blog/peddler-app/banner.png" imageCaption: Peddler App provisional logo date: 2023-12-11 author: Juan Manzanero @@ -56,7 +56,7 @@ next features: - Customers can just create a profile with their name or alias, and set locations, for example: house - Once a peddler is near, the backend will send a notification to the customer - - If the customer taps and confirms the notification + - The customer taps and confirms the notification Of course, customers would change notifications settings and more, but that's the core idea. diff --git a/src/content/blog/es/peddler-app.mdx b/src/content/blog/es/peddler-app.mdx new file mode 100644 index 0000000..e3fb9c8 --- /dev/null +++ b/src/content/blog/es/peddler-app.mdx @@ -0,0 +1,54 @@ +--- +title: Peddler App +description: Escuchas al heladero en su camioneta, intentas alcanzarlo, pero ya está lejos. +tags: [Tech, SideProject] +image: /blog/peddler-app/banner.png +imageCaption: Logo provisional de Peddler App +date: 2023-12-11 +author: Juan Manzanero +rss: true +--- + +![Logo provisional de Peddler App](@/assets/blog/peddler-app/banner.png) _Logo provisional de Peddler App_ + +## La idea + +Escuchas al heladero en su camioneta, intentas alcanzarlo, pero ya está lejos. + +¿Por qué no recibir una notificación en tu celular cuando el heladero está cerca de ti?, así puedes tocar la +notificación y solicitar al heladero que pase en tu ubicación. + +Ese es el propósito de esta app. + +## Abrumador para mi + +Nunca he desarrollado una app grande por mi mismo, pero quiero intentarlo y ver qué ocurre. + +Quiero seguir el camino Indie Hacker, compartiendo en público el progreso, y recibiendo feedback +de la comunidad. + +Este post es el primer paso antes de diseñarlo en Figma o incluso crear la landing page, así que +quiero escuchar si te interesa, por qué no, o que sería genial para la app. + +## Empezando pequeño + +Realmente quiero empezar pequeño, lanzando un Minimum Viable Product (MVP), con las siguientes funcionalidades: + +- Registro de usuarios y login +- Dos tipos de usuarios, "peddlers" (vendedores ambulantes) y clientes +- Peddlers + - Si el usuario es peddler (quiere vender), redireccionar al formulario de peddlers + - Peddlers pueden crear un perfil con el nombre de su empresa y productos que ofrece, por ejemplo helado, dulces, etc + - Una vez que el registro es finalizado, peddlers pueden iniciar rutas + - La app obtiene la ubicación del peddler, mostrándolo en el mapa + - El backend detectará si el peddler entra en el radio de un cliente, y enviará una notificación push al cliente + - Una vez que el peddler tiene una solicitud, la app mostrará la ubicación del cliente solicitante en el mapa + - El peddler puede ir a la ubicación, y completar la transacción +- Clientes + - Clientes pueden crear una perfil con su nombre o alias, y registrar ubicaciones, por ejemplo: casa + - Una vez que un peddler está cerca, el backend enviará una notificación push al cliente + - El cliente toca y confirma la notificación + +Por supuesto, clientes pueden cambiar la configuración de las notificaciones, pero esa es la idea core. + +Para el MVP no quiero implementar pagos dentro de la app, pero desde luego, podría ser un feature futuro. diff --git a/src/content/blog/es/rewind-2023-y-planes-futuros.mdx b/src/content/blog/es/rewind-2023-y-planes-futuros.mdx index 2c10f03..2fc4b43 100644 --- a/src/content/blog/es/rewind-2023-y-planes-futuros.mdx +++ b/src/content/blog/es/rewind-2023-y-planes-futuros.mdx @@ -95,7 +95,6 @@ estaría genial lanzar un videojuego pequeño, pero terminado. Créeme, es muy, **MUY** difícil desarrollar videojuegos, así que en lugar de abrumarme, mantendré mis **ambiciones simples**, pero **constantes**. - ### ¡Felices fiestas! ![2023 complete image!](@/assets/blog/rewind-2023-and-future-plans/2023-complete!.png) diff --git a/src/pages/es/blog/[...slug].astro b/src/pages/es/blog/[...slug].astro index 83aa48d..7a4225f 100644 --- a/src/pages/es/blog/[...slug].astro +++ b/src/pages/es/blog/[...slug].astro @@ -7,29 +7,29 @@ import type { CollectionEntry } from "astro:content"; import { getLangFromUrl } from "@/i18n/utils"; interface Props { - post: CollectionEntry<"blog">; + post: CollectionEntry<"blog">; } export async function getStaticPaths() { - const allBlogPosts = await getCollection( - "blog", - ({ data }) => data.draft !== true, - ); - const filterEsPosts = allBlogPosts.map((post) => { - const [lang, ...slug] = post.slug.split("/"); + const allBlogPosts = await getCollection( + "blog", + ({ data }) => data.draft !== true, + ); + const filterEsPosts = allBlogPosts.map((post) => { + const [lang, ...slug] = post.slug.split("/"); - if (lang === "es") - return { - ...post, - slug: slug.toString(), - }; - else null; - }); + if (lang === "es") + return { + ...post, + slug: slug.toString(), + }; + else null; + }); - return filterEsPosts.map((post) => ({ - params: { slug: post?.slug }, - props: { post }, - })); + return filterEsPosts.map((post) => ({ + params: { slug: post?.slug }, + props: { post }, + })); } const { post } = Astro.props; @@ -39,13 +39,13 @@ const lang = getLangFromUrl(Astro.url); --- -
-

{post.data.title}

- -
-

- Publicado: - {post.data.date && formatDate(new Date(post.data.date), lang)} -

-
+
+

{post.data.title}

+ +
+

+ Publicado: + {post.data.date && formatDate(new Date(post.data.date), lang)} +

+