shb 40cf8ebab5 Added file upload functionality
Backend works when trying to use Postman to request the API endpoint. File upload in the frontend also works since the data is parsed properly as multi-part form data. The issue is the frontend seems to cannot directly send request to backend and is outright rejected.
2025-06-16 14:29:33 +08:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-06-06 12:50:24 +08:00
2025-05-30 04:23:17 +00:00
2025-06-16 14:29:33 +08:00
2025-05-30 04:23:17 +00:00
2025-06-12 09:31:47 +08:00
2025-05-30 04:23:17 +00:00
2025-06-16 14:29:33 +08:00
2025-06-06 12:50:24 +08:00
2025-05-30 04:23:17 +00:00
2025-06-16 14:29:33 +08:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-06-16 14:29:33 +08:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-05-30 04:23:17 +00:00
2025-06-16 14:29:33 +08:00

Electronic Document Management System (EDMS)

A comprehensive Electronic Document Management System built with Nuxt.js 3, Vue.js 3, and modern web technologies. This system provides organizations with a sophisticated platform for managing documents with role-based access control, advanced search capabilities, and enterprise-grade security features.

🚀 Features

Core Document Management

  • Hierarchical Organization: Cabinet → Drawer → Folder → Subfolder structure
  • File Upload & Storage: Multi-format support with metadata tagging
  • Version Control: Document versioning with history tracking
  • Advanced Search: Full-text search with filters and faceted search
  • Document Preview: In-browser preview for multiple file formats

Access Control & Security

  • Role-Based Access Control (RBAC): Granular permission management
  • Access Request Workflow: Automated approval processes
  • Audit Trail: Comprehensive logging and activity tracking
  • External Authentication: Authentik integration support
  • Data Encryption: Secure file storage and transmission

User Experience

  • Modern UI: Responsive design with TailwindCSS
  • Real-time Updates: Live notifications and status updates
  • Advanced Analytics: Usage metrics and performance dashboards
  • Mobile Responsive: Full functionality across all devices
  • Accessibility: WCAG compliant with screen reader support

Administration

  • System Settings: Comprehensive configuration management
  • User Management: User roles and permissions administration
  • Performance Monitoring: System metrics and health monitoring
  • Backup & Recovery: Automated backup systems

🛠 Technology Stack

Frontend

  • Nuxt.js 3 - Vue.js meta-framework with SSR/SPA support
  • Vue.js 3 - Modern reactive framework with Composition API
  • TailwindCSS - Utility-first CSS framework
  • FormKit - Advanced form handling and validation
  • Pinia - State management with persistence
  • TypeScript - Type-safe development

Backend & Database

  • Prisma ORM - Database toolkit with MySQL support
  • JSON Web Tokens - Secure authentication
  • File System API - Server-side file management
  • REST API - RESTful API endpoints

Development Tools

  • ESLint - Code linting and quality assurance
  • Prettier - Code formatting
  • Husky - Git hooks for quality control
  • PWA Support - Progressive web app capabilities

📋 Prerequisites

  • Node.js 18+
  • npm/yarn/pnpm
  • MySQL 8.0+
  • Modern web browser

🚀 Quick Start

1. Installation

# Clone the repository
git clone <repository-url>
cd EDMS

# Install dependencies
npm install
# or
yarn install
# or
pnpm install --shamefully-hoist

2. Environment Setup

Create a .env file in the root directory:

# Database
DATABASE_URL="mysql://username:password@localhost:3306/edms_db"

# Authentication
NUXT_ACCESS_TOKEN_SECRET="your-access-token-secret"
NUXT_REFRESH_TOKEN_SECRET="your-refresh-token-secret"

# Metabase (optional)
NUXT_METABASE_SECRET_KEY="your-metabase-secret"
NUXT_METABASE_SITE_URL="http://your-metabase-url"

3. Database Setup

# Initialize the database schema
npx prisma db push

# Generate Prisma client
npx prisma generate

# (Optional) Seed the database
npx prisma db seed

4. Development Server

# Start development server
npm run dev

# The application will be available at http://localhost:3000

5. Production Build

# Build for production
npm run build

# Preview production build
npm run preview

📖 Documentation

🗂 Project Structure

EDMS/
├── components/           # Vue components
│   ├── dms/             # DMS-specific components
│   │   ├── dialogs/     # Modal dialogs
│   │   ├── explorer/    # File exploration
│   │   ├── workflows/   # Access management
│   │   └── ...
│   ├── base/            # Base UI components
│   └── layouts/         # Layout components
├── pages/               # Nuxt.js pages
│   ├── dms/            # DMS pages
│   └── ...
├── stores/              # Pinia stores
├── composables/         # Vue composables
├── server/              # Server-side API
├── prisma/              # Database schema
├── docs/                # Documentation
└── ...

🔧 Key Scripts

# Development
npm run dev              # Start development server
npm run build            # Build for production
npm run preview          # Preview production build

# Database
npm run prisma           # Full Prisma workflow (pull, generate, dev)
npx prisma studio        # Open Prisma Studio
npx prisma db push       # Push schema to database

# Code Quality
npm run lint             # Run ESLint
npm run format           # Format code with Prettier

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is proprietary software. All rights reserved.

🆘 Support

For support, please contact the development team or refer to the documentation in the docs/ directory.

🔄 Version History

  • v1.0.0 - Initial release with core DMS functionality
  • v1.1.0 - Added advanced access control and audit trails
  • v1.2.0 - Enhanced search capabilities and performance improvements

Built with ❤️ by the EDMS Development Team

Description
No description provided
Readme 9.8 MiB
Languages
Vue 63.4%
JavaScript 25.8%
CSS 6.8%
SCSS 2.9%
TypeScript 1.1%