Este repositorio contiene el backend de la aplicación Death Note, desarrollado en Go y corriendo sobre PostgreSQL. Está diseñado para ser consumido por un frontend en React a través de una API REST.
• main.go: Punto de entrada.• server/: Implementación del servidor, routers y handlers.• repository/: Repositorios para acceso a datos (GORM + PostgreSQL).• models/: EntidadesPersonyKillcon conversores a DTO.• api/: DTOs de request/response.• config/config.json: Configuración (puerto, DB, duraciones de kill).• Dockerfile,docker-compose.yml: Para contenerización Docker.• server/server.go: Inicialización, migraciones y setup de rutas.• server/task_queue.go: Cola de tareas asincrónicas.• tests/(o integrados en **repository/,server/): Pruebas unitarias e integración.
- Go 1.24+
- Docker & Docker Compose
- Node.js (para frontend)
-
Clona el repositorio:
git clone https://github.com/tu-usuario/deathnote-backend.git cd deathnote-backend -
cp .env
POSTGRES_HOST=localhost
POSTGRES_DB=deathnote
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres-
Levanta los contenedores Docker:
docker-compose up --build -d
-
Verifica que los servicios están corriendo:
docker ps
-
El backend estará disponible en
http://localhost:8000.
-
PowerShell:
$env:POSTGRES_HOST = "localhost" $env:POSTGRES_USER = "postgres" $env:POSTGRES_PASSWORD = "postgres" $env:POSTGRES_DB = "deathnote"
-
Bash/Zsh:
export POSTGRES_HOST=localhost export POSTGRES_USER=postgres export POSTGRES_PASSWORD=postgres export POSTGRES_DB=deathnote
Desde la raíz del proyecto:
# Pruebas de repositorios
go test ./repository
# Pruebas de servidor y handlers
go test ./server -v
# Todo junto
go test ./...Con la bandera
-vverás logs detallados durante la ejecución.
| Método | Ruta | Descripción |
|---|---|---|
| POST | /people |
Crear persona (multipart: name,age,photo) |
| GET | /people |
Listar todas las personas |
| GET | /people/{id} |
Obtener persona por ID |
| POST | /people/{id}/cause |
Agregar causa (JSON {cause}) |
| POST | /people/{id}/details |
Agregar detalles (JSON {details}) |
| GET | /people/{id}/status |
Obtener estado actual |
| GET | /kills |
Listar kills |
| POST | /kills/{id} |
Crear kill manual (JSON {description}) |
Consulta la Guía de Integración Frontend para ver ejemplos de formularios, llamadas HTTP y componentes.
MIT © KevinAPN, UtadLuis msOspina