Loading repository data…
Loading repository data…
jcristancho2 / repository
Colombian Coffee es una aplicación de escritorio en C# (.NET 9) que gestiona un catálogo de variedades de café colombiano. Permite explorar, filtrar y gestionar datos. El sistema usa arquitectura Vertical Slicing, principios SOLID, Entity Framework Core con MySQL y exporta a PDF.
Colombian Coffee es una aplicación de escritorio desarrollada en C# (.NET 9) con Entity Framework Core y MySQL, diseñada para catalogar, filtrar y gestionar las principales variedades de café cultivadas en Colombia.
La aplicación sigue principios SOLID y arquitectura Puertos y Adaptadores (Vertical Slicing), con módulos independientes para autenticación, gestión de variedades y exportación a PDF.
ColombianCoffee/
├── Src/
│ ├── Modules/
│ │ ├── Auth/ # Gestión de usuarios y autenticación
│ │ │ ├── Application/
│ │ │ │ ├── Interfaces/
│ │ │ │ ├── Services/
│ │ │ │ └── UI/
│ │ │ ├── Domain/
│ │ │ │ └── Entities/
│ │ │ └── Infrastructure/
│ │ │ └── Repositories/
│ │ ├── MainMenu/ # Menú principal de la aplicación
│ │ │ └── UI/
│ │ ├── PDFExport/ # Generación de PDFs de informes
│ │ │ ├── Application/
│ │ │ │ ├── Interfaces/
│ │ │ │ ├── Services/
│ │ │ │ └── UI/
│ │ │ ├── Domain/
│ │ │ │ └── Entities/
│ │ │ └── Infrastructure/
│ │ │ └── Repositories/
│ │ └── Varieties/ # Gestión de variedades de café
│ │ ├── Application/
│ │ │ ├── Interfaces/
│ │ │ ├── Services/
│ │ │ └── UI/
│ │ ├── Domain/
│ │ │ └── Entities/
│ │ └── Infrastructure/
│ │ └── Repositories/
│ └── Shared/
│ ├── Configuration/ # Configuración de entidades
│ ├── Contexts/ # DbContext para EF Core
│ ├── Db/ # Scripts SQL (DDL y DML)
│ ├── Helpers/ # Clases de ayuda para la app
│ └── Utils/ # Utilidades generales
├── assets/ # Recursos estáticos (imágenes, logos)
├── appsettings.json # Configuración de conexión a base de datos
├── ColombianCoffee.csproj
├── ColombianCoffee.sln # Solución de Visual Studio
├── Program.cs
└── README.md # Documentación del proyecto
Pomelo.EntityFrameworkCore.MySql - Proveedor MySQL para EF CoreQuestPDF - Generación de documentos PDFSpectre.Console - Interfaz de consola avanzadaBCrypt.Net - Hash seguro de contraseñasgit clone https://github.com/jcristancho2/ColombianCoffee.git
cd ColombianCoffee
dotnet restore
CREATE DATABASE ColombianCoffeeDb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Edita el archivo appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=ColombianCoffeeDb;User=root;Password=tu_password;"
}
}
dotnet ef database update
dotnet run
~/Documents/ColombianCoffee/Exports/Variedad_{ID}_{timestamp}.pdfgraph TB
subgraph "Presentation Layer"
UI["Spectre.Console UI"]
MainMenu["Main Menu"]
end
subgraph "Application Layer"
AuthApp["Auth Services"]
VarietiesApp["Varieties Services"]
PDFApp["PDF Services"]
end
subgraph "Domain Layer"
AuthDomain["Auth Entities"]
VarietiesDomain["Varieties Entities"]
PDFDomain["PDF Entities"]
end
subgraph "Infrastructure Layer"
EF["Entity Framework"]
MySQL[("MySQL Database")]
QuestPDF["QuestPDF"]
end
UI --> MainMenu
MainMenu --> AuthApp
MainMenu --> VarietiesApp
MainMenu --> PDFApp
AuthApp --> AuthDomain
VarietiesApp --> VarietiesDomain
PDFApp --> PDFDomain
AuthApp --> EF
VarietiesApp --> EF
PDFApp --> QuestPDF
EF --> MySQL
| Tecnología | Versión | Propósito |
|---|---|---|
| C# | .NET 9 | Lenguaje principal de desarrollo |
| Entity Framework Core | Latest | ORM para acceso a datos |
| MySQL | 8.0+ | Sistema de gestión de base de datos |
| Spectre.Console | Latest | Interfaz de consola avanzada |
| BCrypt.Net | Latest | Hash seguro de contraseñas |
| QuestPDF | Latest | Generación de documentos PDF |
| Git Flow | - | Metodología de control de versiones |
| Conventional Commits | - | Estándar de mensajes de commit |
¡Las contribuciones son bienvenidas! Si deseas mejorar el proyecto, sigue estas directrices:
git checkout -b feature/nueva-caracteristicagit push origin feature/nueva-caracteristicaappsettings.jsonColombianCoffeeDb existeSrc/assets/dotnet clean
dotnet restore
dotnet build
Este proyecto está bajo la licencia MIT