generated from corrad-software/corrad-af-2024

Create folder function now properly works to send data to the backend and is reflected in the database. The frontend still displays hierarchy from dummy data.
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%