https://github.com/eduardoprofe666/aicadocsapi
📝 Proyecto de Prácticas I de Sistema de Documentación de Aica en Asp.Net 8.0
https://github.com/eduardoprofe666/aicadocsapi
aica api-rest aspnet aspnet-core docs dotnet minimal-api webapi
Last synced: about 2 months ago
JSON representation
📝 Proyecto de Prácticas I de Sistema de Documentación de Aica en Asp.Net 8.0
- Host: GitHub
- URL: https://github.com/eduardoprofe666/aicadocsapi
- Owner: EduardoProfe666
- License: mit
- Created: 2024-01-20T01:30:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-23T13:36:29.000Z (about 2 years ago)
- Last Synced: 2025-12-29T05:50:37.475Z (6 months ago)
- Topics: aica, api-rest, aspnet, aspnet-core, docs, dotnet, minimal-api, webapi
- Language: C#
- Homepage: https://aicadocsapi.onrender.com
- Size: 34.4 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AicaDocsApi








Proyecto de Práctica I de Ingeniería Informática.
Se creó un sistema de para el control de la documentación para el Sistema
de Gestión de Calidad de la Empresa Laboratorios Farmacéuticos de AICA+.
Se creó una minimal API en Asp.Net Core 8 cumpliendo con todos los requisitos
capturados.
Se creó una base de datos en `PostgreSql` robusta con dichos requisitos, y para
el almacenamiento de los ficheros se empleó [MinIO](https://min.io/)
## 📖 Problemática
En los Laboratorios Aica se desea llevar un control de la documentación del
Sistema de Gestión de Calidad de la empresa. Esta documentación se organiza
de acuerdo a un alcance, que puede ser Rector (aplica en toda la empresa) o
específico (aplica en una UEB); un proceso, que corresponde con uno de los
procesos definidos en el mapa de procesos de la organización; y un
tipo de documento, que es definido por los especialistas del Área de Calidad.
De estos documentos se conoce el código, título, edición, páginas, fecha
de vigencia y dos archivos asociados, uno en formato pdf y otro en word.
Se desea crear un sistema que permita la creación y visualización de esta
documentación. Para ello, se definen los siguientes requisitos:
- Creación de documentos
- Búsqueda de documentos, con filtros asociados a cada propiedad del documento
- Descargar documentos, donde se especifica que archivo se desea descargar (pdf o word) y un motivo de la descarga
## 🖼️ Modelo físico de la base de datos

## 📶 Configuración de la conexión a la base de datos
Para poder configurar la conexión a la base de datos en PostgreSQL siga los siguientes pasos:
1. Cree/Actualice en la ruta raíz del proyecto un archivo `appsettings.json`
2. En dicho archivo coloque las siguientes líneas, sustituyendo `INFO` por la información
correspondiente en cada caso:
``` json
}
(...),
"ConnectionStrings": {
"PostgreSQLConnection": "Server=INFO;Port=INFO;Database=INFO;User Id=INFO;password=INFO"
}
}
```
3. Si no tiene la base de datos de Aica, en la consola escriba el siguiente comando: `dotnet ef database update`.
Asegúrese que tiene las `Migrations`, si no ejecute antes el comando: `dotnet ef migrations add InitialCreate`
## 📶 Configuración de la conexión a MinIO
> [!IMPORTANT]
> Se debe tener instalado `MinIO Server` y tener configurado el usuario necesario
> con permiso de escritura-lectura y el `bucket` en el cual se almacenarán los datos
> con la estructura de carpetas `/pdf` y `/word`
Para poder configurar la conexión a MinIO siga los siguientes pasos:
1. Cree/Actualice en la ruta raíz del proyecto un archivo `appsettings.json`
2. En dicho archivo coloque las siguientes líneas, sustituyendo `INFO` por la información
correspondiente en cada caso:
``` json
}
(...),
"Minio": {
"Endpoint": "INFO",
"AccessKey": "INFO",
"SecretKey": "INFO",
"Bucket": "INFO"
}
}
```
Otra posible forma de probar la api es usando el servidor de prueba en la nube de MinIO,
usando los siguientes datos en el archivo `appsettings.json`:
``` json
}
(...),
"Minio": {
"Endpoint": "play.min.io",
"AccessKey": "testuser",
"SecretKey": "testuser",
"Bucket": "aica-docs"
}
}
```
## 🚀 Despliegue
> [!NOTE]
> Estos despliegues son solamente para probar la Api en entornos de despliegue,
> no es para el uso extensivo de la misma.
Se realizó un despliegue de prueba de los 3 servicios básicos de la API:
- Despliegue del servidor Asp.Net en [Render](https://aicadocs.onrender.com/)
- Despliegue de la base de datos en [ElephantSQL](https://api.elephantsql.com/)
- Despliegue del servidor de MinIO en [Railway](https://railway.app/)
## 🎦 AicaDocs UI
Se realizó una prueba en `Razor Pages` para ilustrar como sería un posible escenario
de consumo de la api. La página se encuentra en el [siguiente enlace](https://aica-docs-ui.onrender.com)
## 🎯 Pruebas de integración automatizadas
Se diseñaron y ejecutaron pruebas de integración automatizadas a la api en la rama .
El último resultado de las pruebas se encuentra en el 
## 👥 Autores

Lilian Rosa Rojas Rodríguez

Eduardo Alejandro González Martell
## 👥 Tutores
- Dr. Carlos Ramón López Paz
- Msc. Ana Lilian Infante Abreu
## 👥 Especialistas