{"id":27096105,"url":"https://github.com/sebas-man/is2-ecommerce","last_synced_at":"2026-04-11T01:43:41.931Z","repository":{"id":286236666,"uuid":"957610802","full_name":"SebAs-man/IS2-Ecommerce","owner":"SebAs-man","description":"Monorepo del proyecto E-commerce para Ingeniería del Software II. Contiene microservicios Backend (Java, Spring Boot) y microfrontends (Angular).","archived":false,"fork":false,"pushed_at":"2025-04-05T05:49:56.000Z","size":89,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-05T06:27:11.385Z","etag":null,"topics":["angular","ecommerce","java","maven","microfrontends","microservice","mongodb","monorepo","rabbitmq","redis","scrum","software-engineering","spring-boot","university-project"],"latest_commit_sha":null,"homepage":"","language":"Java","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/SebAs-man.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}},"created_at":"2025-03-30T19:30:23.000Z","updated_at":"2025-04-05T05:50:00.000Z","dependencies_parsed_at":"2025-04-05T06:37:21.763Z","dependency_job_id":null,"html_url":"https://github.com/SebAs-man/IS2-Ecommerce","commit_stats":null,"previous_names":["sebas-man/is2-ecommerce"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebAs-man%2FIS2-Ecommerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebAs-man%2FIS2-Ecommerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebAs-man%2FIS2-Ecommerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebAs-man%2FIS2-Ecommerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SebAs-man","download_url":"https://codeload.github.com/SebAs-man/IS2-Ecommerce/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247458749,"owners_count":20942084,"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":["angular","ecommerce","java","maven","microfrontends","microservice","mongodb","monorepo","rabbitmq","redis","scrum","software-engineering","spring-boot","university-project"],"created_at":"2025-04-06T09:20:54.860Z","updated_at":"2026-04-11T01:43:41.450Z","avatar_url":"https://github.com/SebAs-man.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proyecto E-commerce Monorepo - Ingeniería del Software II\n\n## 1. Introducción\n\nBienvenido al Monorepo del proyecto de E-commerce desarrollado para la asignatura Ingeniería del Software II. Este repositorio contiene el código fuente completo de la plataforma, incluyendo múltiples microservicios backend y microfrontends.\n\nEl objetivo principal es construir una aplicación de e-commerce funcional aplicando principios de arquitectura moderna, metodologías ágiles (Scrum) y fomentando la colaboración en equipo.\n\n## 2. Arquitectura General\n\nLa plataforma sigue una arquitectura distribuida:\n\n* **Backend:** Implementado como un conjunto de **Microservicios** desarrollados con Java y Spring Boot. Cada servicio se enfoca en una capacidad de negocio específica (Catálogo, Carrito, Pedidos, Usuarios, etc.). Se comunican entre sí mediante APIs REST y/o mensajería asíncrona (RabbitMQ). Un API Gateway (Kong) gestiona el acceso externo.\n* **Frontend:** Implementado usando **Microfrontends** desarrollados con Angular y potencialmente orquestados mediante Webpack Module Federation a través de una aplicación Shell principal.\n\nPara más detalles sobre cada parte, consulta:\n\n* [README del Backend](./backend/README.md)\n* [README del Frontend](./frontend/README.md) (Pendiente)\n\n## 3. Estructura del Monorepo\n\nEste repositorio organiza los diferentes componentes de la siguiente manera:\n\n```text\n/\n├── backend/                # Microservicios Backend (Java/Spring Boot)\n│   ├── catalog-service/\n│   ├── cart-service/\n│   └── ...\n├── frontend/               # Microfrontends (Angular)\n│   ├── navbar-mf/\n│   ├── catalog-mf/\n│   └── ...\n├── libs/                   # (Opcional) Librerías compartidas entre servicios/frontends\n│   └── shared-dtos/        # Ejemplo: DTOs comunes para comunicación\n├── .gitignore              # Reglas globales para ignorar archivos\n└── README.md               # Este archivo (Visión General)\n```\n\nPara detalles específicos sobre cómo configurar, ejecutar o probar cada microservicio o microfrontend, consulta el archivo README.md dentro de su respectivo directorio.\n\n## Tecnologías principales\n-   **Backend:** Java 17+, Spring Boot 3+, Spring Data (MongoDB, JPA), RabbitMQ, gRPC, Kong API Gateway\n-   **Frontend:** Angular 16+, TypeScript\n-   **Base de Datos:** MongoDB, Redis, Bases de Datos Relacionales\n-   **Build:** Maven (Backend), Angular CLI (Frontend)\n-   **Control de Versiones:** Git, GitHub\n-   **Metodología:** Scrum\n\n## Prerrequisitos Globales\n\n-   Git\n-   JDK 17+\n-   Maven\n-   Node.js y NPM\n-   Docker (Recomendado, para bases de datos y otros servicios)\n-   Una instancia de MongoDB, Redis, y BD Relacional (pueden correr en Docker)\n-   RabbitMQ, Kong\n\n## Cómo Empezar\n\n 1. **Clonar el Repositorio:**\n\t```\n\tgit clone \u003cURL_DEL_REPOSITORIO_GITHUB\u003e \n\tcd tu-proyecto-ecommerce\n\t```\n 2. **Configurar Ramas:** La rama principal de desarrollo es `develop`. Asegúrate de estar en ella:\n\t```\n\tgit checkout develop\n\tgit pull origin develop # Para obtener lo último\n\t```\n3.  **Dependencias:**\n    -   Backend: Revisa los `pom.xml` o `build.gradle` de cada servicio. Un `mvn install` dentro de cada servicio podría ser necesario.\n    -   Frontend: Ve a cada directorio de microfrontend (`cd frontend/navbar-mf`) y ejecuta `npm install`.\n4.  **Variables de Entorno / Configuración:** Revisa los archivos `application.properties` de cada servicio backend para configurar las conexiones a bases de datos, RabbitMQ, etc. Pueden requerir variables de entorno o perfiles de Spring.\n5.  **Ejecutar Servicios/Frontends:** Consulta el `README.md` específico de cada componente para instrucciones detalladas de ejecución.\n\n## Estrategia de Ramificación\n\nEste repositorio utiliza un flujo **Gitflow Simplificado**:\n\n-   `main`: Contiene el código estable y probado, potencialmente desplegable. No se hace push directo.\n-   `develop`: Rama principal de integración. Todo el nuevo desarrollo se fusiona aquí mediante Pull Requests. Es la rama de trabajo por defecto.\n-   `feature/\u003carea\u003e/\u003cdescripcion\u003e`: Ramas para desarrollar nuevas funcionalidades o arreglos. Se crean desde `develop` y vuelven a `develop` vía Pull Request (ej: `feature/catalog/agregar-validacion-atributo`).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebas-man%2Fis2-ecommerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebas-man%2Fis2-ecommerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebas-man%2Fis2-ecommerce/lists"}