A modern, full-stack digital asset management system built with a monorepo architecture.
- Asset Management: Upload, organize, and manage digital assets with ease
- Folder Organization: Hierarchical folder structure for better asset organization
- Public API: Share assets via public URLs with view tracking
- Modern UI: Built with Nuxt 3 and DaisyUI for a beautiful, responsive interface
- Type-Safe: Full TypeScript support across the entire stack
- Monorepo Architecture: Organized codebase with Turborepo
AsetFlow-App/
├── apps/
│ └── web/ # Frontend Nuxt application
├── packages/
│ ├── database/ # Prisma database schemas and migrations
│ ├── logger/ # Shared Logger for services
│ ├── shared/ # Shared utilities and helpers
│ ├── shared-types/ # Shared TypeScript types
│ └── validators/ # Zod validation schemas
├── services/
│ ├── backend-app/ # Backend API service
│ ├── public-service/ # Public asset delivery service
└── package.json
- Nuxt 4 - Vue.js framework
- TypeScript - Type safety
- Tailwind CSS - CSS Framewrok
- DaisyUI - Tailwind CSS component library
- Pinia - State management
- Node.js - Runtime environment
- Prisma - Database ORM
- Express (implied) - API framework
- Zod - Schema validation
- Swagger - API documentation
- Multer - File upload handling
- Turborepo - Monorepo build system
- pnpm - Package manager
- ESLint - Code linting
- Prettier - Code formatting
- Node.js 18+
- pnpm 10.17.1+
- PostgreSQL database
- Upload and store digital assets
- Support for multiple file types (images, documents, etc.)
- Automatic thumbnail generation
- Asset metadata tracking (views, dimensions, size)
- Folder-based organization
- Slug-based URLs for clean asset links
- Asset search and filtering
- Public asset delivery via slugs
- View count tracking
- CORS support for cross-origin requests
- User authentication
- Role-based access control
- Secure file storage