f448207e88024de08b72812684a7d95f1ab79e11
Only what the header needs from the start stays at the root: the session, my projects for the command palette, the inbox and push for the bell, and their adapters. The home page's facades (my work, the rest of the home, my views, the calendar), Explore's and the proposal form's are provided by their routes, whose injectors keep them for when you come back. The other adapters come with the tracker's routes, now loaded lazily. The web libs declare "sideEffects": false, so a chunk carries what it uses and not everything an index.ts exports: main goes from 1.31 MB to 432 kB of the same initial total, which is still held up by @pi/ui (one module, with all of Material) and the GraphQL documents, both needed by the header. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Languages
TypeScript
94.1%
SCSS
3.8%
JavaScript
1.7%
Dockerfile
0.2%
HTML
0.2%