EDMS/README.md
2025-06-05 14:57:08 +08:00

202 lines
5.8 KiB
Markdown

# 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
```bash
# 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:
```env
# 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
```bash
# 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
```bash
# Start development server
npm run dev
# The application will be available at http://localhost:3000
```
### 5. Production Build
```bash
# Build for production
npm run build
# Preview production build
npm run preview
```
## 📖 Documentation
- **[Technical Guide](docs/Technical_Guide.md)** - Comprehensive technical documentation
- **[User Guide](docs/User_Guide.md)** - End-user documentation
- **[DMS Settings](docs/DMS_SETTINGS.md)** - System configuration guide
- **[Site Settings](docs/SITE_SETTINGS.md)** - Site customization guide
## 🗂 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
```bash
# 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**