{"id":22202443,"url":"https://github.com/fabiliria280802/salem","last_synced_at":"2026-02-10T18:31:05.423Z","repository":{"id":265717126,"uuid":"895327990","full_name":"fabiliria280802/SALEM","owner":"fabiliria280802","description":"Project SALEM is an advanced web application designed for the automatic review and validation of documents using cutting-edge machine learning techniques. The application leverages Convolutional Neural Networks (CNNs) and Faster R-CNN for object detection and classification tasks, ensuring high accuracy in document processing.","archived":false,"fork":false,"pushed_at":"2025-02-04T22:32:21.000Z","size":161745,"stargazers_count":2,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T09:21:23.657Z","etag":null,"topics":["cnn","convolutional-neural-networks","faster-rcnn","ia","javascript","machine-learning","mern-stack","model-view-controller","mongodb-atlas","nodejs","ocr","python","pytorch","reactjs","tesseract-ocr"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabiliria280802.png","metadata":{"files":{"readme":"README-frontend-esp.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-28T02:06:36.000Z","updated_at":"2025-02-04T22:32:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"f270f8f6-8485-4228-8690-20a13ed4ff3c","html_url":"https://github.com/fabiliria280802/SALEM","commit_stats":null,"previous_names":["fabiliria280802/salem"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiliria280802%2FSALEM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiliria280802%2FSALEM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiliria280802%2FSALEM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiliria280802%2FSALEM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabiliria280802","download_url":"https://codeload.github.com/fabiliria280802/SALEM/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248404598,"owners_count":21097780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnn","convolutional-neural-networks","faster-rcnn","ia","javascript","machine-learning","mern-stack","model-view-controller","mongodb-atlas","nodejs","ocr","python","pytorch","reactjs","tesseract-ocr"],"created_at":"2024-12-02T16:20:49.980Z","updated_at":"2026-02-10T18:31:05.384Z","avatar_url":"https://github.com/fabiliria280802.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Lea esto en otro idioma\n- [Read this in English](README.md)\n\n# Proyecto SALEM\nEl Proyecto SALEM es una aplicación web avanzada diseñada para la revisión y validación automática de documentos utilizando técnicas de aprendizaje automático de última generación. La aplicación aprovecha Redes Neuronales Convolucionales (CNNs) y Faster R-CNN para tareas de detección y clasificación de objetos, garantizando una alta precisión en el procesamiento de documentos. Al emplear estos algoritmos, SALEM puede extraer y validar de manera eficiente información clave de diversos tipos de documentos, como facturas y hojas de entrega de servicios.\n\nLa elección de las CNNs, específicamente ResNet50, permite que la aplicación se beneficie de un modelo de aprendizaje profundo preentrenado en un vasto conjunto de datos, ofreciendo capacidades robustas de extracción de características. Se utiliza Faster R-CNN debido a su rendimiento superior en detección de objetos, lo que permite la identificación precisa de campos en los documentos. Además, la aplicación incorpora técnicas como aumento de datos y early stopping para mejorar la generalización del modelo y evitar el sobreajuste.\n\nLa arquitectura de SALEM está construida sobre el patrón MVC (Modelo-Vista-Controlador), asegurando una clara separación de responsabilidades y facilitando el mantenimiento. La integración de Tesseract OCR mejora aún más la capacidad del sistema para extraer información textual de imágenes, convirtiéndolo en una solución integral para la validación de documentos.\n\n## ¿Qué significa SALEM?\n\n- **S** de **Reconocimiento Inteligente** (*Smart Recognition*): Implementación de algoritmos avanzados de inteligencia artificial para el reconocimiento automático de facturas, contratos e informes de recepción, garantizando alta precisión en la extracción de datos.\n\n- **A** de **Procesamiento Automático** (*Automated Processing*): Optimización de flujos de trabajo de procesamiento de documentos mediante la automatización de la validación y clasificación de datos, reduciendo el esfuerzo manual y los errores.\n\n- **L** de **Adaptabilidad de Aprendizaje** (*Learning Adaptability*): Uso de aprendizaje automático para mejorar los modelos de reconocimiento con el tiempo, adaptándose a diferentes formatos y lenguajes de documentos.\n\n- **E** de **Validación Eficiente** (*Efficient Validation*): Garantía de consistencia y precisión en los datos mediante mecanismos inteligentes de validación y detección de errores.\n\n- **M** de **Integración de Gestión** (*Management Integration*): Integración perfecta con sistemas de gestión empresarial para facilitar la sincronización de datos y la generación de información procesable.\n\nPor: Fabiana Liria \u0026 Mateo Ávila\n\n## Prerrequisitos\n- Python 3.8\n- Node.js\n- npm (Node Package Manager)\n- Cuenta en MongoDB Atlas o tener MongoDB instalado en tu máquina\n- Tesseract OCR\n\n## Instalación\n\n1. **Clona el repositorio:**\n    ```bash\n    git clone https://github.com/fabiliria280802/SALEM.git\n    ```\n\n2. **Abre dos terminales:**\n\n    - **Terminal 1 (Configuración del Backend):**\n      Navega al directorio del backend (ajusta la ruta si es necesario):\n      ```bash\n      cd ../SALEM/backend\n      ```\n        El servidor correrá en el puerto 5000.\n\n      Si estás usando POSTMAN, copia y pega esta URL [http://localhost:5000/api/auth/login](http://localhost:5000/api/auth/login).\n\n    - **Terminal 2 (Configuración del Frontend):**\n      En la segunda terminal, navega al directorio del frontend (ajusta la ruta si es necesario):\n      ```bash\n      cd ../SALEM/frontend\n      ```\n        Abre [http://localhost:3000](http://localhost:3000) en tu navegador.\n\n3. **Instala las dependencias:**\n\n    - **Para el Backend:**\n      En la terminal del backend:\n      ```bash\n      npm install\n      ```\n\n        **Note:** Para más información mira [esta página](https://github.com/fabiliria280802/SALEM/blob/development/backend/Readme-backend-esp.md)\n\n    - **Para el Frontend:**\n      En la terminal del frontend:\n      ```bash\n      npm install\n      ```\n\n## Ejecución del Proyecto\n\n1. **Inicia el Backend:**\n    En la terminal del backend, ejecuta:\n    ```bash\n    npm start\n    ```\n\n2. **Inicia el Frontend:**\n    En la terminal del frontend, ejecuta:\n    ```bash\n    npm start\n    ```\n\n## Flujo de Trabajo para Transiciones entre Ramas\n\nEl proyecto utiliza un flujo personalizado para la transición entre ramas mediante pull requests.\n\n- **Transición de Desarrollo a QA:**\n  Para pasar de la rama `development` a la rama `qa`, escribe lo siguiente en tu mensaje de commit:\n    ```bash\n    QA transition: TU_MENSAJE_AQUÍ\n    ```\n\n- **Transición de QA a Producción:**\n  Para pasar de la rama `qa` a la rama `main`, escribe lo siguiente en tu mensaje de commit:\n    ```bash\n    Production transition: TU_MENSAJE_AQUÍ\n    ```\n\nEsto automatizará el proceso de creación de pull requests para las respectivas transiciones de rama.\n\n## Pruebas y Calidad de Código\n\nPara garantizar la calidad del código, se utilizan los siguientes scripts:\n\n1. **Ejecutar Pruebas (Jest):**\n  ```bash\n  npm run test\n```\n\n2. **Ejecuta Linter (ESLint with Auto-fix):**\n  ```bash\n  npm run lint\n  ```\n\n3. **Ejecutar el Formateador de codigo (Prettier):**\n  ```bash\n  npm run format\n  ```\n\nEstos comandos te ayudarán a mantener un código limpio y consistente a lo largo del proyecto.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiliria280802%2Fsalem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabiliria280802%2Fsalem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiliria280802%2Fsalem/lists"}