generated from corrad-software/corrad-af-2024
202 lines
5.8 KiB
Markdown
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**
|