https://github.com/fjbatresv/pettzi
Serverless pet-care platform monorepo built with Nx, Angular, AWS CDK and Lambda. Published as a public architecture and portfolio reference.
https://github.com/fjbatresv/pettzi
angular api-gateway aws-cdk aws-lambda cognito dynamodb eventbridge monorepo nx serverless
Last synced: 3 days ago
JSON representation
Serverless pet-care platform monorepo built with Nx, Angular, AWS CDK and Lambda. Published as a public architecture and portfolio reference.
- Host: GitHub
- URL: https://github.com/fjbatresv/pettzi
- Owner: fjbatresv
- License: other
- Created: 2025-12-07T22:35:23.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-04-01T06:54:46.000Z (3 months ago)
- Last Synced: 2026-04-01T09:29:09.054Z (3 months ago)
- Topics: angular, api-gateway, aws-cdk, aws-lambda, cognito, dynamodb, eventbridge, monorepo, nx, serverless
- Language: TypeScript
- Homepage:
- Size: 1.78 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# PETTZI
[](./README.md)
[](./README.md)
[](./README.md)
[](./README.md)
[](./README.md)
[](./README.md)
[](./LICENSE.md)
PETTZI es un monorepo full-stack para gestión de mascotas construido con `Nx`, `Angular`, `AWS CDK` y `AWS Lambda`.
Originalmente fue concebido como un producto SaaS para salud, recordatorios, documentos y co-propiedad de mascotas. Hoy se publica como **referencia técnica y proyecto de portafolio**.
## Estado del proyecto
- El producto no continúa como servicio comercial.
- La decisión se tomó después de concluir que la propuesta no era viable comercialmente.
- El repositorio se conserva para mostrar decisiones de arquitectura, organización del monorepo y diseño backend/frontend.
- El workflow automático de despliegue en GitHub Actions fue desactivado intencionalmente.
- La infraestructura y los docs de despliegue se mantienen como referencia para estudio o self-hosting.
## Qué demuestra este repositorio
- Arquitectura serverless modular sobre AWS.
- Monorepo `Nx` con separación por bounded contexts.
- APIs backend desacopladas por dominio (`auth`, `pets`, `owners`, `events`, `reminders`, `uploads`, `catalogs`).
- Lambdas delgadas con lógica movida a servicios y librerías reutilizables.
- Uso de `DynamoDB` con single-table design orientado por access patterns.
- Frontend `Angular` conectado a una arquitectura backend basada en contratos OpenAPI.
## Stack principal
### Backend e infraestructura
- `AWS CDK v2`
- `AWS Lambda` sobre `Node.js 24`
- `API Gateway HTTP API`
- `DynamoDB`
- `S3`
- `SES`
- `Cognito`
- `EventBridge`
### Frontend y tooling
- `Angular 21`
- `Nx`
- `TypeScript`
- `Jest`
- `ESLint`
- `Prettier`
- `GitHub Actions` para CI
## Arquitectura en una mirada
- `apps/web`: aplicación Angular.
- `apps/cdk`: definición de stacks de infraestructura.
- `libs/api-*`: bounded contexts y handlers por API.
- `libs/domain-model`: modelos, claves y mapeos del dominio.
- `libs/utils-dynamo`, `libs/shared-utils`, `libs/infra-constructs`: utilidades y componentes reutilizables.
### Bounded contexts
- `Auth`: autenticación y perfil de usuario.
- `Pets`: CRUD de mascotas.
- `Owners`: relación de dueños y co-dueños.
- `Events`: timeline y eventos de salud.
- `Reminders`: recordatorios programados.
- `Uploads`: documentos y fotos vía URLs firmadas.
- `Catalogs`: catálogos de apoyo.
## Estructura del monorepo
```text
pettzi/
├── apps/
│ ├── cdk/
│ └── web/
├── libs/
│ ├── api-auth/
│ ├── api-catalogs/
│ ├── api-events/
│ ├── api-owners/
│ ├── api-pets/
│ ├── api-reminders/
│ ├── api-uploads/
│ ├── domain-model/
│ ├── infra-constructs/
│ ├── shared-utils/
│ └── utils-dynamo/
├── docs/
├── ARCHITECTURE.md
├── DESIGN-SYSTEM.md
└── TABLE_DESIGN.md
```
## Cómo explorarlo localmente
### Requisitos
- `Node.js 24`
- `npm`
- AWS solo si quieres levantar o self-hostear la infraestructura
### Comandos útiles
```bash
npm install
npx nx graph
npx nx run-many -t lint test
```
### Documentación local
- Start with `docs/README.md`
- Browse reference pages under `docs/reference/content/`
### Variables de entorno
- Usa `.env.example` como referencia.
- No se incluyen secretos reales ni configuración operativa activa en el árbol actual.
## Infraestructura y despliegue
- La arquitectura de despliegue original sigue documentada en el repositorio.
- El despliegue automático desde GitHub Actions está desactivado.
- Si quieres reutilizar esta base para self-hosting, revisa primero variables, dominios, secretos y supuestos de AWS.
## Documentación clave
- `ARCHITECTURE.md` — arquitectura general y decisiones técnicas.
- `TABLE_DESIGN.md` — diseño de DynamoDB y patrones de acceso.
- `DESIGN-SYSTEM.md` — lineamientos visuales del frontend.
- `apps/cdk/README.md` — guía de infraestructura CDK.
- `docs/reference/content/overview.mdx` — overview navegable.
- `docs/reference/content/quickstart.mdx` — primeros pasos.
## Calidad y contribución
- `CONTRIBUTING.md` — guía de contribución.
- `SECURITY.md` — reporte responsable de vulnerabilidades.
- `CODE_OF_CONDUCT.md` — expectativas de convivencia.
- `LICENSE.md` — estado actual de licencia.
## Por qué este repo sigue público
Aunque PETTZI no avanzó como producto comercial, el código sigue siendo valioso como muestra de:
- diseño de backend por dominios
- organización de un monorepo `Nx`
- integración entre frontend, infraestructura y APIs
- decisiones pragmáticas para un producto serverless real
Si quieres revisar algo en particular, empieza por `ARCHITECTURE.md`, `TABLE_DESIGN.md` y `apps/cdk/src/main.ts`.