generated from corrad-software/corrad-af-2024
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
- Technical Guide - Comprehensive technical documentation
- User Guide - End-user documentation
- DMS Settings - System configuration guide
- Site Settings - 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
# 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - 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
Languages
Vue
63.4%
JavaScript
25.8%
CSS
6.8%
SCSS
2.9%
TypeScript
1.1%