How relakeinc/chink works
Chink is a multi-warehouse inventory SaaS with workspace-scoped roles, traceable stock movements, payments, and reports. The principal workflow is a user managing inventory and warehouse activity through the web app; protected Fastify routes apply workspace scope and permissions, persist domain records, and publish realtime changes. The README also documents team, notifications, and reporting capabilities, represented here alongside inventory. Frontend-to-API wiring was not shown in the excerpts, so those links are dashed; unsampled capabilities use paths supported by the repository tree and index.
Main entry points: app.ts Fastify application · index.ts Prisma client · api.ts API client · inventory.ts Inventory routes
Components 34
Web application
- Inventory
apps/web/src/pages/Inventario.tsx - Stock movements
apps/web/src/pages/Movimientos.tsx - Warehouses
apps/web/src/pages/Almacenes.tsx - Payments
apps/web/src/pages/Pagos.tsx - Reports
apps/web/src/pages/Reportes.tsx - Team management
apps/web/src/pages/Equipo.tsx - Dashboard
apps/web/src/pages/Inicio.tsx - API client
apps/web/src/lib/api.ts
API domain
- Fastify application
apps/api/src/app.ts - Authentication and roles
apps/api/src/plugins/auth.ts - Inventory routes
apps/api/src/routes/inventory.ts - Movement routes
apps/api/src/routes/movements.ts - Warehouse routes
apps/api/src/routes/warehouses.ts - Payment routes
apps/api/src/routes/pagos.ts - Report routes
apps/api/src/routes/reports.ts - Team routes
apps/api/src/routes/team.ts - Customer routes
apps/api/src/routes/clientes.ts - Notifications
apps/api/src/routes/notifications.ts - Telegram routes
apps/api/src/routes/telegram.ts
Shared services
- Workspace scope
apps/api/src/lib/workspace-scope.ts - Realtime hub
apps/api/src/lib/realtime-hub.ts - Transactional email
apps/api/src/lib/email.ts - Receipt analysis
apps/api/src/lib/bancos.ts - Gemini analysis
apps/api/src/lib/gemini.ts - Product image storage
apps/api/src/lib/r2.ts - Telegram integration
apps/api/src/lib/telegram.ts - PDF generation
apps/api/src/lib/report-pdf.ts
Data and integrations
- Prisma client
packages/db/src/index.ts - PostgreSQL
- SMTP mail service
- R2 storage
- Gemini API
- Telegram
Other components
- Workspace user
Connections 48
- Workspace user → Inventory: manages stock
- Inventory → API client: requests data
- Stock movements → API client: requests data
- Warehouses → API client: requests data
- Payments → API client: requests data
- Reports → API client: requests data
- Team management → API client: requests data
- Dashboard → API client: requests data
- API client → Fastify application: calls API
- Fastify application → Authentication and roles: registers
apps/api/src/app.ts - Fastify application → Inventory routes: registers
apps/api/src/app.ts - Fastify application → Movement routes: registers
apps/api/src/app.ts - Fastify application → Warehouse routes: registers
apps/api/src/app.ts - Fastify application → Payment routes: registers
apps/api/src/app.ts - Fastify application → Report routes: registers
apps/api/src/app.ts - Fastify application → Team routes: registers
apps/api/src/app.ts - Fastify application → Customer routes: registers
apps/api/src/app.ts - Fastify application → Notifications: registers
apps/api/src/app.ts - Fastify application → Telegram routes: registers
apps/api/src/app.ts - Inventory routes → Prisma client: reads and writes
apps/api/src/routes/inventory.ts - Movement routes → Prisma client: reads and writes
apps/api/src/routes/movements.ts - Warehouse routes → Prisma client: reads and writes
apps/api/src/routes/warehouses.ts - Payment routes → Prisma client: reads and writes
apps/api/src/routes/pagos.ts - Report routes → Prisma client: queries
apps/api/src/routes/reports.ts - Team routes → Prisma client: reads and writes
apps/api/src/routes/team.ts - Customer routes → Prisma client: reads and writes
apps/api/src/routes/clientes.ts - Notifications → Prisma client: reads and writes
apps/api/src/routes/notifications.ts - Prisma client → PostgreSQL: persists records
- Inventory routes → Workspace scope: resolves workspace
apps/api/src/routes/inventory.ts - Movement routes → Workspace scope: resolves workspace
apps/api/src/routes/movements.ts - Payment routes → Workspace scope: resolves workspace
apps/api/src/routes/pagos.ts - Report routes → Workspace scope: resolves workspace
apps/api/src/routes/reports.ts - Inventory routes → Realtime hub: publishes changes
apps/api/src/routes/inventory.ts - Movement routes → Realtime hub: publishes changes
apps/api/src/routes/movements.ts - Customer routes → Realtime hub: publishes changes
apps/api/src/routes/clientes.ts - Authentication and roles → Prisma client: checks permissions
apps/api/src/plugins/auth.ts - Team routes → Transactional email: sends invitations
apps/api/src/routes/team.ts - Authentication and roles → Transactional email: sends account mail
- Transactional email → SMTP mail service: sends mail
- Payment routes → Receipt analysis: analyzes receipts
apps/api/src/routes/pagos.ts - Receipt analysis → Gemini analysis: runs prompts
apps/api/src/lib/bancos.ts - Gemini analysis → Gemini API: analyzes images
- Inventory routes → Product image storage: manages images
apps/api/src/routes/inventory.ts - Product image storage → R2 storage: stores images
- Report routes → PDF generation: generates PDFs
apps/api/src/routes/reports.ts - Telegram routes → Telegram integration: uses integration
apps/api/src/routes/telegram.ts - Telegram routes → Product image storage: accesses media
apps/api/src/routes/telegram.ts - Telegram integration → Telegram: connects to