Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/gradlew text eol=lf
*.bat text eol=crlf
*.jar binary
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/
69 changes: 8 additions & 61 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,13 @@
# Reto Técnico: Procesamiento de Transacciones Bancarias (CLI)
# Procesamiento de Transacciones Bancarias CLI

## Objetivo:
## 💡 Introducción

Desarrolla una aplicación de línea de comandos (CLI) que procese un archivo CSV con transacciones bancarias y genere un reporte que incluya:
Este proyecto es una aplicación de línea de comandos desarrollada en Java 21+ con Spring Boot. Procesa un archivo CSV de transacciones bancarias para generar un reporte detallado con balance, estadísticas y transacción destacada.

- **Balance Final:**
Suma de los montos de las transacciones de tipo "Crédito" menos la suma de los montos de las transacciones de tipo "Débito".
## 🚀 Instrucciones de Ejecución

- **Transacción de Mayor Monto:**
Identificar el ID y el monto de la transacción con el valor más alto.
1. Clona el repositorio:

- **Conteo de Transacciones:**
Número total de transacciones para cada tipo ("Crédito" y "Débito").

---

## Instrucciones

1. **Repositorio Base:**
Clona o haz un fork del repositorio base disponible en:
`https://github.com/codeableorg/interbank-academy-25`

2. **Entrada de Datos:**
La aplicación deberá leer un archivo CSV. Ejemplo de contenido:

```
id,tipo,monto
1,Crédito,100.00
2,Débito,50.00
3,Crédito,200.00
4,Débito,75.00
5,Crédito,150.00
```

3. **Salida del Programa:**
La aplicación debe mostrar el reporte final en la terminal.
Ejemplo de salida:

```
Reporte de Transacciones
---------------------------------------------
Balance Final: 325.00
Transacción de Mayor Monto: ID 3 - 200.00
Conteo de Transacciones: Crédito: 3 Débito: 2
```

4. **Lenguaje de Programación:**
Utiliza el lenguaje de tu preferencia. Opciones recomendadas:

- Python
- Java
- C#
- JavaScript (Node.js)

5. **README del Proyecto:**
Incluye un archivo `README.md` con la siguiente estructura:

- **Introducción:** Breve descripción del reto y su propósito.
- **Instrucciones de Ejecución:** Cómo instalar dependencias y ejecutar la aplicación.
- **Enfoque y Solución:** Lógica implementada y decisiones de diseño.
- **Estructura del Proyecto:** Archivos y carpetas principales.

6. **Documentación y Calidad del Código:**
- Código bien documentado y fácil de leer.
- Comentarios explicando pasos clave y lógica del programa.
```bash
git clone https://github.com/codeableorg/interbank-academy-25.git
cd interbank-academy-25
38 changes: 38 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.4'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(22)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webflux'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading