# DV-001: Configuración del Repositorio

**Proyecto:** Sistema de Registro de Estudiantes
**Fecha:** 2026-01-07

---

## 1. Estructura de Carpetas

```
/
├── src/
│   ├── backend/
│   │   ├── Domain/
│   │   ├── Application/
│   │   ├── Adapters/
│   │   │   ├── Driving/Api/
│   │   │   └── Driven/Persistence/
│   │   └── Host/
│   └── frontend/
│       └── src/app/
│           ├── core/
│           ├── shared/
│           └── features/
├── tests/
│   ├── Domain.Tests/
│   ├── Application.Tests/
│   ├── Adapters.Tests/
│   └── e2e/
├── docs/
│   └── entregables/
├── database/
│   ├── scripts/
│   └── migrations/
├── deploy/
│   └── docker/
├── DEV-GUIDE.md
├── README.md
└── .gitignore
```

---

## 2. .gitignore

```gitignore
# .NET
bin/
obj/
*.user
*.suo
.vs/
*.csproj.user

# Angular
node_modules/
dist/
.angular/
.nx/

# IDE
.idea/
.vscode/
*.swp

# Logs
*.log
logs/

# Environment
.env
.env.*
!.env.example
appsettings.*.json
!appsettings.json
!appsettings.Development.json.example

# Database
*.mdf
*.ldf

# OS
.DS_Store
Thumbs.db

# Test
coverage/
TestResults/

# Build
publish/
```

---

## 3. Comandos de Inicialización

```bash
# Crear repositorio
git init
git add .
git commit -m "chore: initial project structure"

# Crear rama de desarrollo
git checkout -b develop

# Estructura de ramas
# main     → producción
# develop  → integración
# feature/ → nuevas funcionalidades
# fix/     → correcciones
```

---

## 4. Convenciones de Commits

```
<tipo>(<alcance>): <descripción>

Tipos:
- feat:     Nueva funcionalidad
- fix:      Corrección de bug
- refactor: Refactorización
- test:     Tests
- docs:     Documentación
- chore:    Tareas de mantenimiento

Ejemplos:
feat(students): add create student mutation
fix(enrollment): validate professor constraint
test(domain): add enrollment policy tests
```
