# ARCH - Sistema de Gestión de Documentos para Proyectos de Ingeniería ARCH es un sistema de gestión documental diseñado específicamente para equipos de ingeniería, con el propósito de almacenar, organizar y versionar los archivos críticos de cada proyecto. La aplicación proporciona una estructura jerárquica para proyectos, control de versiones para documentos, y esquemas personalizables según el tipo de proyecto. ## Características Principales - **Gestión de Proyectos**: Creación y organización jerárquica de proyectos - **Control de Versiones**: Histórico completo de todas las versiones de documentos - **Esquemas Personalizables**: Definición de tipos de documentos por proyecto - **Sistema de Permisos**: Control de acceso granular basado en niveles de usuario - **Arquitectura Simple**: Basada en archivos JSON para facilitar el mantenimiento y backups - **Seguridad**: Validación de archivos y autenticación de usuarios ## Requisitos del Sistema - Python 3.8 o superior - Dependencias listadas en `requirements.txt` - 500MB de espacio en disco para la instalación inicial ## Instalación 1. Clonar el repositorio: ``` git clone https://github.com/tu-usuario/arch-document-manager.git cd arch-document-manager ``` 2. Crear y activar un entorno virtual: ``` python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows ``` 3. Instalar dependencias: ``` pip install -r requirements.txt ``` 4. Inicializar el sistema: ``` python init_app.py ``` 5. Crear archivo `.env` con la configuración: ``` FLASK_APP=app.py FLASK_ENV=development SECRET_KEY=clave_secreta_generada_aleatoriamente STORAGE_PATH=storage ``` ## Ejecución 1. Iniciar la aplicación: ``` flask run ``` 2. Acceder a la aplicación en el navegador: ``` http://localhost:5000 ``` 3. Iniciar sesión con las credenciales por defecto: - Usuario: `admin` - Contraseña: `admin123` **IMPORTANTE**: Cambiar la contraseña del administrador después del primer inicio de sesión. ## Estructura de Directorios ``` document_manager/ │ ├── app.py # Punto de entrada de la aplicación ├── config.py # Configuración global ├── requirements.txt # Dependencias del proyecto ├── README.md # Este archivo │ ├── services/ # Lógica de negocio ├── utils/ # Utilidades generales ├── middleware/ # Middleware para Flask ├── routes/ # Endpoints de la API ├── static/ # Archivos estáticos (CSS, JS) ├── templates/ # Plantillas HTML ├── tests/ # Pruebas unitarias └── storage/ # Almacenamiento de datos ``` ## Niveles de Usuario - **Nivel 0-999**: Usuario básico (solo lectura) - **Nivel 1000-4999**: Editor (puede subir documentos) - **Nivel 5000-8999**: Gestor (puede crear y editar proyectos) - **Nivel 9000-9999**: Administrador (acceso completo al sistema) ## Backups Se recomienda realizar backups regulares del directorio `storage/`: ```bash # Script simple de backup tar -czf backup-$(date +%Y%m%d).tar.gz storage/ ``` ## Soporte Si encuentra algún problema o tiene alguna sugerencia, por favor abra un issue en el repositorio del proyecto. ## Licencia Este proyecto está licenciado bajo los términos de la licencia MIT. ## Running Tests To run the test suite: ``` Credenciales de acceso por defecto: Usuario: admin Contraseña: admin123