Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ECommerce Backend Java

Aplicación de línea de comandos desarrollada en Java para gestionar usuarios, artículos y compras. El proyecto implementa una arquitectura por capas basada en modelos de dominio, repositorios en memoria, servicios de aplicación y una interfaz de comandos.

Fue desarrollado como trabajo académico por Alejandro Corona Ballester y Mario Reyes Morales.

Funcionalidades

  • Alta, consulta, listado, actualización y eliminación de usuarios.
  • Validación del formato del correo electrónico y del nombre completo.
  • Prevención de usuarios duplicados mediante la dirección de correo.
  • Alta, consulta, listado y eliminación de artículos.
  • Gestión de artículos con nombre, precio y categoría.
  • Creación y eliminación de compras.
  • Asociación de compras con usuarios y artículos.
  • Consulta de compras por usuario.
  • Consulta de usuarios y compras relacionadas con un artículo.
  • Carga inicial de datos de ejemplo mediante un seeder.
  • Interfaz de línea de comandos con ayuda integrada.
  • Excepciones específicas para errores de validación, duplicados y elementos inexistentes.

Arquitectura

El proyecto separa las responsabilidades en varios niveles:

  • Modelos de dominio: representan usuarios, artículos, compras y líneas de compra.
  • Repositorios: proporcionan operaciones de persistencia en memoria mediante colecciones Java.
  • Servicios: contienen las reglas de negocio y coordinan el acceso a los repositorios.
  • Interfaz de comandos: permite ejecutar las operaciones de la aplicación desde la terminal.
  • Inyección de dependencias: configura y conecta los repositorios, servicios y comandos mediante DependencyInjector.
  • Seeder: inserta usuarios, artículos y una compra inicial para facilitar la ejecución de la aplicación.

La clase upm.App actúa como punto de entrada y pone en marcha la aplicación a través del inyector de dependencias.

Comandos disponibles

La interfaz de línea de comandos incluye operaciones para trabajar con las entidades principales:

Comando Descripción
help Muestra la ayuda disponible.
create-user Crea un usuario a partir de su correo y nombre completo.
list-users Lista todos los usuarios.
create-article Crea un artículo con categoría, nombre y precio.
list-articles Lista todos los artículos.
delete-article Elimina un artículo mediante su identificador.
create-order Crea una compra para un usuario y un artículo.
list-orders Lista todas las compras.
list-orders-by-user Lista las compras asociadas a un usuario.
delete-order Elimina una compra mediante su identificador.

Tecnologías

  • Java 21
  • Maven
  • JUnit 5
  • Log4j 2
  • Colecciones y streams de Java
  • Arquitectura orientada a servicios y repositorios
  • Plantillas UML y documentación técnica

Ejecución

Requisitos

  • JDK 21 o compatible con Java 21.
  • Apache Maven.
  • IntelliJ IDEA u otro entorno compatible con proyectos Maven.

Desde IntelliJ IDEA

  1. Clonar el repositorio:

    git clone https://github.com/mario-reyes-morales/ECommerce-Backend-Java.git
  2. Abrir el proyecto como proyecto Maven.

  3. Esperar a que IntelliJ IDEA descargue las dependencias.

  4. Ejecutar la clase principal upm.App.

Desde la terminal

Para compilar el proyecto y ejecutar las pruebas:

mvn clean test

Para empaquetar la aplicación:

mvn package

La aplicación se inicia ejecutando la clase principal upm.App desde el entorno de desarrollo.

Estructura del proyecto

src/
  main/
    java/upm/
      App.java
      data/
        models/          modelos y excepciones de dominio
        repositories/    repositorios en memoria y datos iniciales
      presentation/
        cli/              interfaz y comandos de terminal
        view/             presentación de resultados
      services/           reglas de negocio y servicios
    resources/            recursos de la aplicación
  test/
    java/                 pruebas automatizadas
    resources/            recursos de pruebas
docs/                     diagramas UML y documentación técnica
pom.xml                   configuración Maven
LICENSE.md                licencia MIT

Documentación

La carpeta docs contiene los diagramas UML y los materiales utilizados para documentar la evolución del diseño del sistema. También incluye las convenciones de código Java empleadas en el proyecto.

Equipo

  • Alejandro Corona Ballester
  • Mario Reyes Morales

El proyecto se desarrolló de forma colaborativa, compartiendo el análisis, el diseño de la arquitectura, la implementación de las funcionalidades y la elaboración de la documentación.

Licencia

Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE.md para conocer sus condiciones de uso.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages