{"id":30749775,"url":"https://github.com/axelestrada/mi-pulperia","last_synced_at":"2026-03-03T00:13:20.982Z","repository":{"id":310741395,"uuid":"1040951355","full_name":"axelestrada/mi-pulperia","owner":"axelestrada","description":"Aplicación de escritorio construida con Electron, Vite, TypeScript y Drizzle ORM, diseñada para la gestión de inventario, ventas y clientes de una pulpería o negocio pequeño.","archived":false,"fork":false,"pushed_at":"2026-01-10T00:41:07.000Z","size":2555,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-10T21:55:23.550Z","etag":null,"topics":["drizzle","electron","react","shadcn","sqlite","tailwind","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axelestrada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-19T18:49:38.000Z","updated_at":"2026-01-10T00:41:11.000Z","dependencies_parsed_at":"2025-09-16T17:33:02.107Z","dependency_job_id":"c45ab9cf-ebe0-4196-a061-da811b888715","html_url":"https://github.com/axelestrada/mi-pulperia","commit_stats":null,"previous_names":["axelestrada/mi-pulperia"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/axelestrada/mi-pulperia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelestrada%2Fmi-pulperia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelestrada%2Fmi-pulperia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelestrada%2Fmi-pulperia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelestrada%2Fmi-pulperia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axelestrada","download_url":"https://codeload.github.com/axelestrada/mi-pulperia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axelestrada%2Fmi-pulperia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28523458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T23:53:28.710Z","status":"ssl_error","status_checked_at":"2026-01-17T23:52:20.131Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["drizzle","electron","react","shadcn","sqlite","tailwind","vite"],"created_at":"2025-09-04T06:46:25.840Z","updated_at":"2026-03-03T00:13:20.966Z","avatar_url":"https://github.com/axelestrada.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mi Pulpería\n\n![Vista previa de Mi Pulpería](./preview.png)\n\n**Mi Pulpería** es una aplicación de escritorio para la gestión de inventario, ventas, clientes y créditos, diseñada específicamente para pequeños comercios (pulperías, tiendas de barrio, minisúper), donde la realidad no siempre encaja con sistemas rígidos.\n\nEl objetivo principal es **simplificar la operación diaria**, manteniendo **control real del negocio**, incluso cuando se venden productos por unidad, peso o volumen, se manejan créditos informales o se reciben distintos métodos de pago.\n\n**Descargar la última versión:**\n[⬇️ Ir a la última Release](../../releases/latest)\n\n\n## ¿Qué resuelve Mi Pulpería?\n\n* Ventas por **unidad o cantidad decimal** (ej. libras, litros).\n* Productos con **presentaciones flexibles** (ej. chorizo por unidad o por libra, con precios distintos).\n* Control de inventario adaptado a la vida real del negocio.\n* Manejo de clientes con **créditos y abonos parciales o totales**.\n* Registro de ventas con múltiples métodos de pago (efectivo, transferencia, etc.).\n* Aplicación **offline-first**: no depende de internet para funcionar.\n\n## Conceptos clave del dominio\n\n### Presentaciones de producto\n\nUn producto puede tener múltiples presentaciones:\n\n* Chorizo (unidad)\n* Chorizo (libra)\n\nCada presentación tiene:\n\n* Su propio precio\n* Su propia unidad base\n* Impacto independiente en inventario\n\nEsto evita trucos contables y refleja cómo se vende realmente en una pulpería.\n\n\n### Cantidades con precisión\n\nLas cantidades **no se manejan como floats**.\n\n* Internamente se almacenan como **enteros escalados** (ej. 1.25 lb → 125)\n* Esto evita errores de precisión y redondeo\n* Aplica a inventario, ventas, mermas y ajustes\n\nEste enfoque es crítico cuando se venden fracciones como ¼, ½ o 2½ libras.\n\n\n## Experiencia de usuario\n\n* Interfaz pensada para uso rápido y repetitivo\n* Flujo optimizado para teclado\n* Sin pasos innecesarios\n* Enfocado en personas no técnicas\n\n## Arquitectura y stack técnico\n\n\u003e Esta sección está pensada para reclutadores y desarrolladores.\n\n### Tecnologías principales\n\n* **Electron** – aplicación de escritorio multiplataforma\n* **Tailwind CSS** – estilos rápidos y consistentes\n* **Vite** – bundler rápido para desarrollo\n* **TypeScript** – tipado estricto\n* **SQLite** – base de datos local\n* **Drizzle ORM** – acceso a datos tipado y migraciones\n\n\n### Base de datos\n\n* SQLite embebida\n* Migraciones versionadas\n* Ejecución de migraciones automática al iniciar la app\n* Pensada para datos locales y consistencia\n\n### Manejo de estado y lógica\n\n* Separación clara entre:\n  * Dominio\n  * Persistencia\n  * UI\n* Lógica de negocio fuera del render\n* Enfoque declarativo\n\n## Actualizaciones\n\n* Sistema de auto-actualización\n* Descarga silenciosa\n* Instalación al cerrar la app\n* Compatibilidad con datos existentes\n\n\n## Estado del proyecto\n\nMi Pulpería es un proyecto **activo**, utilizado en un entorno real.\n\nLas decisiones técnicas priorizan:\n\n* Robustez\n* Claridad\n* Mantenibilidad\n* Simplicidad antes que complejidad innecesaria\n\n## Soporte\n* Correo: [axele1524@gmail.com](mailto:axele1524@gmail.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxelestrada%2Fmi-pulperia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxelestrada%2Fmi-pulperia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxelestrada%2Fmi-pulperia/lists"}