{"id":28533308,"url":"https://github.com/gastikopp/backend-proyecto-final-tp2","last_synced_at":"2025-07-09T04:05:39.460Z","repository":{"id":297115861,"uuid":"995672497","full_name":"GastiKopp/backend-proyecto-final-tp2","owner":"GastiKopp","description":"API RESTful para gestión de tareas y categorías. Hecho con Node.js, Express y Sequelize.","archived":false,"fork":false,"pushed_at":"2025-06-29T23:50:17.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-30T00:28:42.478Z","etag":null,"topics":["backend","express","mysql","nodejs","sequelize"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GastiKopp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-06-03T20:58:04.000Z","updated_at":"2025-06-29T23:50:20.000Z","dependencies_parsed_at":"2025-06-04T07:03:20.456Z","dependency_job_id":null,"html_url":"https://github.com/GastiKopp/backend-proyecto-final-tp2","commit_stats":null,"previous_names":["gastikopp/backend-proyecto-final-tp2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GastiKopp/backend-proyecto-final-tp2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GastiKopp%2Fbackend-proyecto-final-tp2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GastiKopp%2Fbackend-proyecto-final-tp2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GastiKopp%2Fbackend-proyecto-final-tp2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GastiKopp%2Fbackend-proyecto-final-tp2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GastiKopp","download_url":"https://codeload.github.com/GastiKopp/backend-proyecto-final-tp2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GastiKopp%2Fbackend-proyecto-final-tp2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264142597,"owners_count":23563526,"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":["backend","express","mysql","nodejs","sequelize"],"created_at":"2025-06-09T17:06:35.738Z","updated_at":"2025-07-09T04:05:39.455Z","avatar_url":"https://github.com/GastiKopp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📦 Backend - Proyecto Final TP2\n\nEste repositorio contiene el backend del Proyecto Final de Taller de Programación 2.\n\nDesarrollado con **Node.js**, **Express** y **Sequelize**, conectado a una base de datos **MySQL**.\n\n## 🚀 Tecnologías utilizadas\n\n- Node.js\n- Express\n- Sequelize\n- MySQL\n- dotenv\n- cors\n\n## 🔧 Instalación y configuración\n\n1. **Clonar el repositorio**\n\n```bash\ngit clone https://github.com/GastiKopp/backend-proyecto-final-tp2.git\ncd backend-proyecto-final-tp2\n```\n2. **Instalar dependencias**\n\n```bash\nnpm install\n```\n\n3. **Configurar las variables de entorno**\n\nCrear un archivo .env en la raíz con el siguiente contenido:\n\n```bash\nDB_HOST=localhost\nDB_USER=tu_usuario\nDB_PASSWORD=tu_contraseña\nDB_NAME=nombre_de_la_base\nDB_PORT=3306\n```\n\n4. **Inicializar la base de datos**\n\nAsegurate de tener creada la base de datos en MySQL con el nombre que configuraste en .env.\n\nEl modelo se sincroniza automáticamente al ejecutar el servidor.\n\n## ▶️ Ejecutar el servidor\n\n```bash\nnpm run dev\n```\nEl backend se levantará en http://localhost:3000\n\n\n## 🧱 Arquitectura aplicada\n\nEl proyecto utiliza una arquitectura basada en capas con separación clara de responsabilidades:\n\n- **Modelos (models/)**: Definición de las entidades (`Task`, `Category`) usando Sequelize.\n- **Servicios (services/)**: Encapsulan la lógica de negocio en clases reutilizables.\n- **Controladores (controllers/)**: Se encargan de manejar las peticiones HTTP y delegar la lógica a los servicios.\n- **Rutas (routes/)**: Definen los endpoints y conectan con los métodos del controlador.\n\nTambién se implementa **inyección de dependencias**, pasando instancias de servicios a los controladores desde las rutas. Esto mejora el desacoplamiento y la mantenibilidad del código.\n\n ## 📚 Endpoints principales\n\n### Tareas (`/api/tareas`)\n- `GET /`: Obtener todas las tareas\n- `GET /:id`: Obtener tarea por ID\n- `POST /`: Crear nueva tarea\n- `PUT /:id`: Actualizar tarea\n- `DELETE /:id`: Eliminar tarea\n\n### Categorías (`/api/categorias`)\n- `GET /`: Obtener todas las categorías\n- `POST /`: Crear nueva categoría\n- `DELETE /:id`: Eliminar categoría\n\n🌐 **Relación con el frontend**\nEste backend es consumido por el frontend disponible en:\n\n🔗 https://github.com/fedecotler/proyecto-final-pnt2\n\n## 👨‍💻 Autor\n\nGastón Kopplin Alva\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgastikopp%2Fbackend-proyecto-final-tp2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgastikopp%2Fbackend-proyecto-final-tp2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgastikopp%2Fbackend-proyecto-final-tp2/lists"}