Josep Piguillem 93d028e870 feat: ask a teammate to review a ticket
«Pedir revisión» on a ticket asks a member (with an optional note): they
are notified and see it under «Te piden revisión» in my work until they
answer «Todo bien» or «Pedir cambios» (with what to change) from the
ticket's Revisiones box; whoever asked hears the answer and can withdraw
an open request. Events of the ticket (requested, answered, cancelled),
so they show in its history and the activity feed. Viewers can be asked
and answer; not oneself, nor twice the same person with one pending.

API: requestReview / answerReview / cancelReview, Issue.reviews,
myIssues(reviewing); POST /api/issues/{issue}/reviews,
POST …/reviews/{id}/answer, DELETE …/reviews/{id}. MCP: request_review,
answer_review, my_issues reviewing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 20:38:30 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00

TaskStream

Alternativa a Jira para equipos de desarrollo: proyectos, tickets (bugs, features, cambios de UI, tareas y QA), releases, comentarios y relaciones entre tickets, en tiempo real.

  • API: NestJS + GraphQL y REST con OpenAPI (Swagger, para otras apps), arquitectura hexagonal, CQRS y event sourcing (escritura en PostgreSQL, lectura en MongoDB, Redis entre ambas).
  • Web: Angular 22 + NgRx Signals (patrón de eventos) + @pi/ui, con la misma arquitectura.
  • Usuarios: los gestiona Pireon.

Empezar

docker compose up -d --build     # web en http://localhost:8080

Para entrar hacen falta los clientes OAuth de Pireon en .env: uno authorization_code (PIREON_CLIENT_ID / _SECRET, «Entrar con Pireon») y uno password (PIREON_PASSWORD_CLIENT_ID / _SECRET, email y contraseña). Ver Autenticación. Para desarrollar:

npm install                                  # @pi/ui necesita el token del Nexus de Pireon en ~/.npmrc
docker compose up -d postgres mongo redis
cp .env.example .env
npx nx serve api                             # http://localhost:3000/graphql · REST: /api/docs
npx nx serve web                             # http://localhost:4200

Documentación

Visión general Funcionalidades, stack y estructura del monorepo
Arquitectura Capas, CQRS, event sourcing, flujo escritura → lectura y tiempo real
API Dominio, workflow de tickets, eventos, GraphQL y REST (OpenAPI)
Cliente web Stores con eventos, GraphQL y @pi/ui
Autenticación Tokens de Pireon, login en el navegador y webhooks
Desarrollo Comandos, tests, cómo añadir una funcionalidad y problemas conocidos
Despliegue Docker, variables de entorno y escalado
Decisiones Por qué está hecho así

Cada librería de libs/api/* y libs/web/* tiene su propio README.md.

Estructura

apps/api      apps/web
libs/api/{shared,identity,tracker}/{domain,application,infrastructure,presenters}
libs/web/{shared,identity,tracker}/{domain,application,infrastructure,presenters}   (+ web/shared/ui)
docs/
npx nx run-many -t lint test build    # todo
npx nx e2e api                        # flujo completo contra Docker
npx nx graph                          # dependencias entre proyectos
Description
No description provided
Readme 144 MiB
Languages
TypeScript 94.1%
SCSS 3.8%
JavaScript 1.7%
Dockerfile 0.2%
HTML 0.2%