LeexDoc is a comprehensive document management and storage system built with modern web technologies.
leexcode/
├── bin/ # Development and startup scripts
├── prisma/ # Database schema and migrations
├── public/ # Static files (icons, manifest, PWA files)
├── scripts/ # System setup and validation scripts
├── source_files/ # Docker and deployment files
└── src/ # Main application source code
package.json- Project dependencies and scriptsnext.config.ts- Next.js configurationtsconfig.json- TypeScript configurationeslint.config.mjs- ESLint rulespostcss.config.mjs- PostCSS configurationcomponents.json- UI component configuration
prisma/
├── migrations/ # Database migrations
├── schema.prisma # Database schema
└── seed.ts # Database seed data
Main Models:
User- User informationDocument- Document metadataDownload- Download status trackingUserSetting- User preferencesPasswordResetToken- Password reset tokens
app/
├── (auth)/ # Authentication pages
│ ├── forgot-password/
│ └── reset-password/
├── admin/ # Admin panel
├── api/ # API endpoints
│ ├── admin/ # Admin APIs
│ ├── auth/ # Authentication APIs
│ ├── documents/ # Document APIs
│ ├── storage/ # Storage APIs
│ └── user/ # User APIs
├── documents/ # Document listing page
├── downloads/ # Downloaded files
├── upload/ # File upload page
├── settings/ # User settings
└── archive/ # Archive page
components/
├── document-viewer/ # Document viewing components
│ ├── PDFViewer.tsx
│ ├── ImageViewer.tsx
│ ├── VideoPlayer.tsx
│ ├── AudioPlayer.tsx
│ └── TextViewer.tsx
├── layout/ # Layout components
├── offline/ # Offline functionality components
├── upload/ # Upload components
└── ui/ # Basic UI components
lib/
├── auth/ # Authentication
├── hooks/ # React hooks
├── security/ # Security functions
├── storage/ # Storage management
├── offline/ # Offline database
├── audio-processing/ # Audio processing
└── validations/ # Form validations
start-dev.mjs- Development server startupdiagnose.mjs- System diagnosisenv-validate.mjs- Environment variable validationload-env.mjs- Environment variable loading
setup.sh- System setupinit-minio.sh- MinIO storage setupcreate-admin.js- Admin user creationvalidate-system.js- System validation
- PDF, image, video, audio file support
- Category-based organization
- Tag system
- Search and filtering
- JWT-based authentication
- Password reset system
- File security validation
- Rate limiting
- S3-compatible storage (MinIO/AWS S3)
- Local disk storage option
- Thumbnail generation
- File metadata management
- Offline functionality
- Service Worker
- App manifest
- Push notifications
- Audio file waveform generation
- Video thumbnail extraction
- FFmpeg integration
- Metadata extraction
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS, Radix UI
- Backend: Next.js API Routes
- Database: PostgreSQL, Prisma ORM
- Storage: AWS S3 / MinIO
- Cache: Redis, BullMQ
- Authentication: NextAuth.js
- PWA: Next-PWA, Workbox
- Media Processing: FFmpeg, Sharp
- Testing: Vitest, Playwright
- Next.js and React ecosystem
- Prisma ORM and PostgreSQL client
- AWS SDK (S3 integration)
- NextAuth.js (authentication)
- BullMQ (queue management)
- FFmpeg (media processing)
- Radix UI components
- Lucide React (icons)
- React Dropzone (file upload)
- Zustand (state management)
This project is a scalable and secure document management system designed according to modern web development standards.