How dantoulis/assetflow works
AssetFlow is an internal asset-management application: employees authenticate, view assigned equipment, submit requests, and track support tickets; administrators manage users, inventory, requests, and ticket workflows. The Nuxt frontend uses a NestJS API backed by PostgreSQL/Prisma. Password recovery uses email, social sign-in is optional, and dashboard briefs can use Gemini. The README also documents asset-management capabilities whose implementation is absent from the supplied tree. Relationships below are limited to sampled calls and README statements; some frontend and unsampled feature wiring is not shown.
Main entry points: admin Admin workspace · auth.service.ts Authentication · prisma.service.ts PostgreSQL · app Employee workspace
Components 24
Web application
- Nuxt application
apps/web/app/app.vue - Auth client
apps/web/app/composables/useAuth.ts - API client
apps/web/app/composables/useAssetFlowApi.ts - Employee workspace
apps/web/app/pages/app - Admin workspace
apps/web/app/pages/admin - Asset state
apps/web/app/stores/assets.ts - Request state
apps/web/app/stores/assetRequests.ts - Ticket state
apps/web/app/stores/tickets.ts - Brief state
apps/web/app/stores/aiDashboardBrief.ts
Identity and accounts
- Auth endpoints
apps/api/src/auth/auth.controller.ts - Authentication
apps/api/src/auth/auth.service.ts - User endpoints
apps/api/src/users/users.controller.ts - User management
apps/api/src/users/users.service.ts
Asset and support operations
- Asset requests
apps/api/src/asset-requests/asset-requests.service.ts - Ticket workflows
apps/api/src/tickets/tickets.service.ts - Ticket messages
apps/api/src/tickets/ticket-messages.service.ts - Inventory management
apps/api/src - Dashboard briefs
apps/api/src/ai/ai.service.ts
API and persistence
- PostgreSQL
apps/api/src/prisma/prisma.service.ts
External integrations
- Mail service
apps/api/src/mail/mail.service.ts - Gemini API
- Google / GitHub
Other components
- Employee
- Administrator
Connections 26
- Employee → Nuxt application: uses
README.md - Administrator → Nuxt application: uses
README.md - Nuxt application → Employee workspace: serves
- Nuxt application → Admin workspace: serves
- Auth client → Auth endpoints: requests auth
apps/web/app/composables/useAuth.ts - Auth endpoints → Authentication: delegates to
apps/api/src/auth/auth.controller.ts - Authentication → User management: looks up users
apps/api/src/auth/auth.service.ts - Authentication → Mail service: sends reset email
apps/api/src/auth/auth.service.ts - Authentication → Google / GitHub: accepts provider profile
README.md - User endpoints → User management: delegates to
apps/api/src/users/users.controller.ts - Asset requests → PostgreSQL: reads and writes
apps/api/src/asset-requests/asset-requests.service.ts - Ticket workflows → PostgreSQL: reads and writes
apps/api/src/tickets/tickets.service.ts - Ticket messages → PostgreSQL: reads and writes
- User management → PostgreSQL: reads and writes
apps/api/src/users/users.service.ts - Authentication → PostgreSQL: via user service
- Dashboard briefs → Gemini API: generates briefs
README.md - Brief state → Dashboard briefs: sends dashboard snapshot
README.md - Employee workspace → Asset state: browses assets
- Employee workspace → Request state: submits requests
- Employee workspace → Ticket state: opens tickets
- Admin workspace → Inventory management: manages inventory
README.md - Admin workspace → User endpoints: manages users
README.md - Admin workspace → Asset requests: reviews requests
README.md - Admin workspace → Ticket workflows: manages tickets
README.md - API client → Asset requests: calls API
- API client → Ticket workflows: calls API