Repositorio digital colaborativo donde los usuarios pueden almacenar, buscar y calificar materiales de apoyo académico organizados por asignaturas, semestres y temas específicos.
- Lenguaje: TypeScript
- Framework: NestJS
- Entorno: Node.js 18+
- Documentación: Swagger/OpenAPI
- Testing: Jest
- Contenedorización: Docker
- CI/CD: Azure DevOps
- Despliegue: Azure Container Instances
- Node.js 18 o superior
- npm o yarn
- Docker (opcional, para contenedorización)
git clone <repository-url>
cd wise_banco_materialnpm installcp .env.example .envEditar el archivo .env con tus configuraciones:
# Application
NODE_ENV=development
PORT=3000
# Database
DB_CONNECTION_STRING=your-database-connection-string
# File Upload
MAX_FILE_SIZE=10485760
UPLOAD_PATH=./uploads# La configuración de base de datos se definirá posteriormente
# Editar .env con la cadena de conexión correspondiente# Modo desarrollo con hot reload
npm run start:dev
# Modo debug
npm run start:debug# Compilar
npm run build
# Ejecutar
npm run start:prod# Tests unitarios
npm run test
# Tests con watch mode
npm run test:watch
# Tests con coverage
npm run test:cov
# Tests e2e
npm run test:e2e# Linting
npm run lint
# Formateo de código
npm run formatnpm run docker:buildnpm run docker:run# Crear docker-compose.yml para desarrollo local
docker-compose up -dUna vez ejecutada la aplicación, la documentación Swagger estará disponible en:
http://localhost:3000/api
src/
├── common/ # Utilidades compartidas
│ ├── decorators/ # Decoradores personalizados
│ ├── guards/ # Guards personalizados
│ ├── interceptors/ # Interceptores
│ └── dto/ # DTOs compartidos
├── config/ # Configuraciones
├── modules/ # Módulos de la aplicación
│ ├── users/ # Gestión de usuarios
│ └── materials/ # Gestión de materiales
├── app.module.ts # Módulo principal
└── main.ts # Punto de entrada
- ✅ Carga de materiales (PDF)
- ✅ Organización por curso, docente, semestre
- ✅ Filtros de búsqueda avanzada
- ✅ Sistema de calificación y popularidad
- ✅ Prevención de duplicados
- ✅ Control de versiones
- ✅ Registro de actividad de usuarios
- ✅ Moderación automática de contenido
- Crear proyecto en SonarCloud
- Configurar
sonar-project.propertiescon tu organización - Agregar SonarCloud service connection en Azure DevOps
- El pipeline ejecutará automáticamente el análisis
El proyecto usa Azure DevOps para CI/CD, no GitHub Actions.
- Crear proyecto en Azure DevOps
- Conectar el repositorio de código
- Configurar el archivo
azure-pipelines.yml(ya incluido) - Configurar service connections:
- Azure Container Registry
- SonarCloud
- Azure Subscription
- Configurar variables de entorno en Azure DevOps
DB_CONNECTION_STRING: Cadena de conexión a la base de datos- Otras variables según
.env.example
- Fork del proyecto
- Crear rama feature (
git checkout -b feature/nueva-funcionalidad) - Commit cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crear Pull Request
npm run build- Compilar el proyectonpm run start- Ejecutar en modo producciónnpm run start:dev- Ejecutar en modo desarrollonpm run start:debug- Ejecutar en modo debugnpm run test- Ejecutar testsnpm run test:watch- Tests en modo watchnpm run test:cov- Tests con coveragenpm run test:e2e- Tests end-to-endnpm run lint- Linting del códigonpm run format- Formatear código
La configuración de base de datos se definirá en las siguientes iteraciones del proyecto.
Por el momento, configurar la variable DB_CONNECTION_STRING en el archivo .env.
Para soporte técnico o preguntas sobre el proyecto, contactar al equipo de desarrollo.
Este proyecto sigue Conventional Commits para mantener un historial claro y consistente.
<tipo>(<alcance>): <descripción>
feat- Nueva funcionalidadfix- Corrección de bugdocs- Cambios en documentaciónstyle- Cambios de formatorefactor- Refactorización de códigotest- Añadir o modificar testschore- Tareas de mantenimiento
Este proyecto es privado y pertenece a DOSW2025.
DOSW2025 - Desarrollo de Aplicaciones Web
daf8df33dbd73188c4de9974bc029572f6737613