shb 47d3ea4987 Updated dms-api.md
Added documentation for new API endpoints. Some endpoints have goofy messages for now.
2025-06-18 12:49:08 +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-17 13:22:12 +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-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-06-18 12:49:08 +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-06-17 13:22:12 +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-17 13:22:12 +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%