How imdrkenzo/oasis works
OASIS manages office IT assets from inventory and accountability through deployment, return/transfer, and historical audit. Users work through the Next.js app, whose API client sends requests to NestJS controllers; controllers enforce access and delegate domain operations to services. The README also documents session security, notifications, role-based access, and file integration. The sampled source confirms several controller-to-service calls and session handling; wiring inside unsampled services is shown only where supported by the documented Prisma/PostgreSQL stack, and uncertain details are omitted.
Main entry points: api-client.ts API client · prisma.service.ts Prisma database access · layout.tsx OASIS interface · deployments.controller.ts Deployment endpoints
Components 25
Web application
- OASIS interface
client/src/app/(app)/layout.tsx - API client
client/src/lib/api-client.ts - Login page
client/src/app/(auth)/login/page.tsx - Inventory and dashboard
client/src/app/(app)/inventory/page.tsx - Deployment history
client/src/app/(app)/deployment-history/page.tsx - Reports and alerts
client/src/app/(app)/reports/page.tsx
Identity and access
- Authentication endpoints
server/src/auth/auth.controller.ts - Session and login service
server/src/auth/auth.service.ts - User management endpoints
server/src/users/users.controller.ts - User service
server/src/users/users.service.ts
Asset operations
- Inventory endpoints
server/src/items/items.controller.ts - Inventory service
server/src/items/items.service.ts - Deployment endpoints
server/src/deployments/deployments.controller.ts - Deployment service
server/src/deployments/deployments.service.ts - Accountability records
server/src/accountable-persons/accountable-persons.controller.ts - Asset classifications
server/src/classifications/classifications.controller.ts
Governance and support
- Audit log endpoints
server/src/audit/audit-logs.controller.ts - Audit service
server/src/audit/audit.service.ts - Notification endpoints
server/src/notifications/notifications.controller.ts - Notification service
server/src/notifications/notifications.service.ts - Photo upload endpoints
server/src/photos/photos.controller.ts
Persistence and files
- Prisma database access
server/src/common/prisma.service.ts - PostgreSQL
- Local upload files
Other components
- Office users
Connections 33
- Office users → OASIS interface: uses
- OASIS interface → Login page: opens login
- OASIS interface → Inventory and dashboard: opens inventory
- OASIS interface → Deployment history: opens deployments
- OASIS interface → Reports and alerts: opens reports
- Login page → API client: sends auth requests
- Inventory and dashboard → API client: requests inventory
- Deployment history → API client: requests deployment data
- Reports and alerts → API client: requests summaries
- API client → Authentication endpoints: calls auth routes
- API client → Inventory endpoints: calls inventory routes
- API client → Deployment endpoints: calls deployment routes
- API client → Audit log endpoints: calls audit routes
- API client → Notification endpoints: calls notification routes
- API client → Photo upload endpoints: calls photo routes
- Authentication endpoints → Session and login service: delegates login and sessions
- Session and login service → User service: looks up user
- Authentication endpoints → User service: loads user data
- User management endpoints → User service: delegates user operations
- Inventory endpoints → Inventory service: delegates item operations
- Deployment endpoints → Deployment service: delegates deployment operations
- Deployment endpoints → Audit service: records deployment creation
- User management endpoints → Audit service: records user changes
- Audit log endpoints → Audit service: queries audit records
- Notification endpoints → Notification service: delegates notification actions
- Photo upload endpoints → Local upload files: stores uploaded images
- Session and login service → Prisma database access: reads and writes sessions
- User management endpoints → Prisma database access: checks roles and user data
- Inventory endpoints → Prisma database access: checks access
- Deployment endpoints → Prisma database access: checks access
- Photo upload endpoints → Prisma database access: checks access
- Audit log endpoints → Prisma database access: checks access
- Prisma database access → PostgreSQL: persists application data